Procesy wstawiania, aktualizacji i usuwania

Dotyczy:SQL Server Środowisko SSIS Integration Runtime w usłudze Azure Data Factory

W przepływie danych pakietu Integration Services, który wykonuje przyrostowe ładowanie danych zmian, drugim zadaniem jest rozdzielenie operacji wstawiania, aktualizacji i usuwania. Następnie możesz użyć odpowiednich poleceń, aby zastosować je do celu.

Note

Pierwszym zadaniem przy projektowaniu przepływu danych w pakiecie, który wykonuje dodatkowy ładunek danych zmian, jest skonfigurowanie komponentu źródłowego, który wykonuje zapytanie pobierające dane zmian. Więcej informacji o tym komponencie można znaleźć w artykule Pobierz i zrozum dane zmian. Opis ogólnego procesu tworzenia pakietu wykonującego przyrostowe obciążenie danych zmian można znaleźć w temacie Change Data Capture (SSIS).

Przypisywanie przyjaznych wartości do oddzielnych wstawek, aktualizacji i usuwań

W przykładowym zapytaniu pobierającym dane zmiany, funkcja cdc.fn_cdc_get_net_changes_<capture_instance> zwraca tylko kolumnę metadanych o nazwie __$operation. Ta kolumna metadanych zawiera wartość porządkową wskazującą, która operacja spowodowała zmianę.

Note

Aby uzyskać więcej informacji na temat zapytania, które wywołuje funkcję cdc.fn_cdc_get_net_changes_<capture_instance>, zobacz Tworzenie funkcji służącej do pobierania danych o zmianach.

Dopasowanie wartości porządkowej do odpowiadającej jej operacji nie jest tak proste, jak użycie mnemotechniki operacji. Na przykład 'D' może łatwo oznaczać operację usuwania, a 'I' operację wstawiania. Przykładowe zapytanie utworzone w temacie Tworzenie funkcji do pobierania danych o zmianach dokonuje tej konwersji z wartości porządkowej na czytelną wartość tekstową, która jest zwracana w nowej kolumnie. Poniższy fragment kodu pokazuje tę konwersję:

select   
    ...  
    case __$operation  
        when 1 then 'D'  
        when 2 then 'I'  
        when 4 then 'U'  
        else null  
     end as CDC_OPERATION  

Konfiguracja warunkowej transformacji rozdzielonej do bezpośredniego wstawiania, aktualizacji i usuwania

Aby skierować wiersze danych zmiany do jednego z trzech wyjść, idealna jest transformacja warunkowego podziału. Transformacja po prostu sprawdza wartość kolumny CDC_OPERATION w każdym wierszu i określa, czy ta zmiana była wstawiona, aktualizowana czy usuwana.

Note

Kolumna CDC_OPERATION zawiera przyjazną wartość ciągu wywodzoną z wartości liczbowej w kolumnie __$operation .

Rozdzielanie operacji wstawiania, aktualizacji i usuwania na potrzeby przetwarzania za pomocą transformacji Podział warunkowy

  1. Na zakładce Przepływ danych dodaj transformację warunkową (Conditional Split).

  2. Połącz wyjście ze źródła OLE DB z transformacją warunkowego podziału.

  3. W Conditional Split Transformation Editor, w dolnym panelu edytora, wpisz następujące trzy linie, aby oznaczyć trzy wyjścia

    1. Wprowadź linię z warunkiem CDC_OPERATION == "I" kierowania wstawionych wierszy do wyjścia dla insertów.

    2. Wprowadź linię z warunkiem CDC_OPERATION == "U" kierowania zaktualizowanych wierszy do wyjścia w celu aktualizacji.

    3. Wprowadź wiersz z warunkiem CDC_OPERATION == "D", aby kierować usunięte wiersze do danych wyjściowych dla operacji usuwania.