Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
SSIS Integration Runtime w ramach usługi Azure Data Factory
W przepływie danych pakietu Integration Services, który wykonuje przyrostowe ładowanie danych o zmianach, trzecim i ostatnim zadaniem jest zastosowanie zmian w miejscu docelowym. Będziesz potrzebować jednego komponentu do wykonywania wstawień, jednego do wykonywania aktualizacji i jednego do wykonywania usunięć.
Note
Drugim zadaniem podczas projektowania przepływu danych pakietu, który wykonuje przyrostowe obciążenie danych zmian, jest oddzielenie wstawiania, aktualizacji i usuwania. Aby uzyskać więcej informacji na temat tego składnika, zobacz Process Inserts, Updates, and Deletes (Wstawianie procesów, aktualizacje i usuwanie). Opis ogólnego procesu tworzenia pakietu wykonującego przyrostowe obciążenie danych zmian można znaleźć w temacie Change Data Capture (SSIS).
Stosowanie wstawek
Aby wykonywać operacje wstawiania, należy użyć obiektu docelowego OLE DB, ponieważ nowe wiersze nie wymagają żadnego specjalnego przetwarzania.
Aby przetwarzać operacje wstawiania przy użyciu miejsca docelowego OLE DB
Na karcie Przepływ danych dodaj miejsce docelowe OLE DB.
Połącz dane wyjściowe zawierające wstawki z przekształcenia podziału warunkowego do miejsca docelowego OLE DB.
W Edytorze docelowym OLE DB na stronie Menedżer połączeń wybierz następujące opcje:
Wybierz lub utwórz Menedżer połączeń OLE DB dla docelowej bazy danych.
Wybierz opcję Tryb dostępu do danych , a następnie wybierz tabelę docelową lub wprowadź instrukcję SQL zawierającą kolumny docelowe.
Na stronie Mapowania w edytorze przypisz odpowiednie kolumny z danych zmian do tabeli docelowej.
Stosowanie aktualizacji
Aby zastosować aktualizacje, należy użyć przekształcenia polecenia OLE DB. Ta transformacja jest używana, ponieważ należy użyć sparametryzowanej UPDATE instrukcji w celu zaktualizowania jednego wiersza jednocześnie przy użyciu nowych wartości kolumn.
Note
Można również użyć komponentów docelowych do stosowania uaktualnień. W przypadku korzystania z tego podejścia należy użyć składników docelowych, aby zapisać wiersze w tabelach tymczasowych utworzonych w tym celu. Następnie używasz zadań Execute SQL do wykonywania operacji aktualizacji zbiorczej i zbiorczego usuwania w miejscu docelowym na podstawie danych z tabel tymczasowych.
Przetwarzanie aktualizacji przy użyciu transformacji Polecenie OLE DB
Na karcie Data flow dodaj przekształcenie OLE DB Command.
Połącz wyjście, które zawiera aktualizacje, z przekształcenia Conditional Split z przekształceniem OLE DB Command.
W Edytorze zaawansowanym polecenia OLE DB, na karcie Menedżer połączeń, wybierz lub utwórz menedżera połączeń OLE DB dla docelowej bazy danych.
W Edytorze zaawansowanym dla polecenia OLE DB, na karcie Właściwości składnika, dla elementu SqlCommand wprowadź instrukcję UPDATEz parametrami.
Na przykład instrukcja UPDATE dla tabeli Customer może mieć następującą składnię:
update CDCSample.Customer set TerritoryID = ?, CustomerType = ?, rowguid = ?, ModifiedDate = ? where CustomerID = ?Na karcie Mapowania kolumn w edytorze przypisz odpowiednie kolumny z danych zmian do parametrów w instrukcji UPDATE.
Wykonywanie usunięć
Aby wykonać operacje usuwania, należy użyć transformacji OLE DB Command. Ta transformacja jest używana, ponieważ należy użyć sparametryzowanej DELETE instrukcji, która usuwa jeden wiersz jednocześnie na podstawie wartości kolumny, która jednoznacznie identyfikuje wiersz.
Note
Można również użyć komponentów docelowych do stosowania usunięć. W przypadku korzystania z tego podejścia należy użyć składników docelowych, aby zapisać wiersze w tabelach tymczasowych utworzonych w tym celu. Następnie używasz zadań Execute SQL do wykonywania operacji zbiorczej aktualizacji i zbiorczego usuwania w miejscu docelowym na podstawie danych z tabel tymczasowych.
Aby przetwarzać operacje usuwania przy użyciu transformacji OLE DB Command
Na karcie Przepływ danych dodaj przekształcenie polecenia OLE DB do przepływu danych.
Połącz dane wyjściowe zawierające operacje usuwania z przekształcenia Conditional Split z przekształceniem OLE DB Command.
Otwórz Edytor zaawansowany, aby skonfigurować przekształcenie.
W Edytorze zaawansowanym dla polecenia OLE DB na karcie Menedżer połączeń wybierz lub utwórz menedżera połączeń OLE DB dla docelowej bazy danych.
W Edytorze zaawansowanym dla polecenia OLE DB, na karcie Właściwości składnika edytora, dla właściwości SqlCommand wprowadź DELETEinstrukcję sparametryzowaną.
Na przykład instrukcja DELETE dla tabeli Customer może mieć następującą składnię:
delete from Customer where CustomerID = ?Na karcie Mapowania kolumn w edytorze przypisz odpowiednią kolumnę z danych zmian do parametru w instrukcji DELETE.
Optymalizowanie wstawień i aktualizacji przy użyciu MERGE funkcji
Przetwarzanie wstawień i aktualizacji można zoptymalizować, łącząc niektóre opcje przechwytywania zmian danych z użyciem słowa kluczowego Transact-SQL MERGE . Aby uzyskać więcej informacji na temat słowa kluczowego MERGE , zobacz MERGE (Transact-SQL).
W instrukcji Transact-SQL, która pobiera dane o zmianach, można określić wszystkie wraz ze scalaniem jako wartość parametru row_filter_option podczas wywołania funkcji cdc.fn_cdc_get_net_changes_<capture_instance>. Ta funkcja przechwytywania danych zmiany działa wydajniej, gdy nie musi wykonywać dodatkowego przetwarzania wymaganego do odróżnienia wstawiania od aktualizacji. Gdy określisz wartość parametru all with merge, wartość __$operation dla danych zmian wynosi 1 w przypadku usunięć lub 5 w przypadku zmian spowodowanych przez operacje wstawienia albo aktualizacji. Aby uzyskać więcej informacji na temat funkcji Transact-SQL używanej do pobierania danych zmiany, zobacz Pobieranie i interpretacja danych zmian. Po pobraniu zmian ze wszystkimi wartościami parametrów scalania można zastosować operacje usuwania i wyświetlić pozostałe wiersze do tabeli tymczasowej lub tabeli przejściowej. Następnie w następującym dalej zadaniu Execute SQL Task można użyć pojedynczej instrukcji MERGE, aby wykonać wszystkie operacje wstawiania i aktualizacji z tabeli przejściowej w tabeli docelowej.