2012-11-07 16 views
5

Czy wewnątrz przepływu danych możliwe jest wyszukiwanie, wstawianie niepasujących wierszy, ponowne wyszukiwanie, a następnie kontynuowanie pełnego (oryginalnego) zestawu danych?Jak kontynuować proces po wstawieniu niepasujących wierszy odnośników do tabeli?

nie widzę w jaki sposób można dostać/ponowne użyć wstawionych wierszy po pojechali do OLE DB Destination, nie mogę zobaczyć, że Multicast mógł czekać, aż zakończy wkładka odnośnika branży (i wtedy wszystko im związek z powrotem -w).

Jeśli nie można tego zrobić w ramach przepływu danych, czy muszę powtórzyć całą logikę filtrowania w poprzednim zadaniu przepływu danych, aby najpierw wstawić odnośnik?

To może być oczywiste/już udzielone pytanie, ale nie mogę znaleźć wiele po wyszukiwaniu.

+0

Nie rozumiem. Masz Dane pierwszego zapytania, masz również dane, które chcesz wstawić. Dlaczego ich nie łączysz i używasz osobno? Przeprowadź multiemisję danych wstawiania do miejsca docelowego OLEDB i do miejsca docelowego związku. Wyślij oryginalne dane do tego związku (i przesyłaj je w dowolne miejsce, gdzie chcesz), a teraz masz cały zestaw danych. –

+0

Czy nie powinienem czekać na zakończenie wstawiania, aby ponownie uruchomić wyszukiwanie, a następnie wznowić normalną ścieżkę? – PeterX

Odpowiedz

3

Nie jest to możliwe w pojedynczym przepływie danych. Istnieje wiele "rozwiązań", jeśli wystarczająco googlesz, ale przeoczają rzeczywistość architektoniczną, w której wiersze przemieszczają się w przepływie danych w buforach/partiach, przetwarzanych równolegle.

Więc obraz masz wiele "nowych" wierszy przybywających w 2 sąsiednich buforach. Nie ma sposobu, aby upewnić się, że obsługa "nowych" wierszy z bufora 1 została zakończona, zanim bufor 2 znajdzie się w wyszukiwaniu wyższego szczebla. Spowoduje to wstawienie wielu "nowych" wierszy do tabeli docelowej wyszukiwania dla tego samego klucza.

Potrzebne jest wcześniejsze zadanie przepływu danych, które wykonuje wszystkie wymagane operacje wyszukiwania. To będzie bardziej wydajne rozwiązanie ogólnie w czasie działania, ponieważ twoje odnośniki mogą korzystać z Szybkiego ładowania i blokady tabeli, a wyszukiwanie w dół może być Pełną pamięcią podręczną.

+0

Dzięki. Być może więc teraz pytanie musi skupić się na "jak ponownie użyć tej samej logiki przed wyszukiwaniem" zarówno w górnym strumieniu danych, jak i w dolnym strumieniu danych. Być może pakiet wielokrotnego użytku, który wykonuje te same kroki, ale nie widzę jeszcze możliwej do tego ścieżki. – PeterX

+0

Tak, "ponowne użycie logiki" byłoby miłe, ale realistycznie - to jest SSIS. Być może możesz przenieść kod SQL do zmiennych i przenieść odnośniki do wcześniejszego zadania przepływu danych, które buduje bufory wyszukiwania, ale prawdopodobnie chodzi o to do ponownego użycia. –