Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
SSIS Integration Runtime i Azure Data Factory
I dataflödet i ett Integration Services-paket som utför en inkrementell belastning av ändringsdata är den tredje och sista uppgiften att tillämpa ändringarna på målet. Du behöver en komponent för att tillämpa infogningar, en för att tillämpa uppdateringar och en för att tillämpa borttagningar.
Note
Den andra uppgiften när det gäller att utforma dataflödet för ett paket som utför en inkrementell belastning av ändringsdata är att separera infogningar, uppdateringar och borttagningar. Mer information om den här komponenten finns i Processinfogningar, Uppdateringar och Borttagningar. En beskrivning av den övergripande processen för att skapa ett paket som utför en inkrementell belastning av ändringsdata finns i SSIS (Change Data Capture).
Tillämpa infogningar
För att infoga rader använder du en OLE DB-destination eftersom de nya raderna inte kräver någon särskild hantering.
Så här bearbetar du infogningar med hjälp av ett OLE DB-mål
På fliken Dataflöde lägger du till ett OLE DB-mål.
Anslut utdata som innehåller infogningar från omvandlingen för villkorsstyrd delning till OLE DB-målet.
Välj följande alternativ på sidan Správca pripojení i OLE DB-målredigeraren:
Välj eller skapa en OLE DB-Správca pripojení för måldatabasen.
Välj ett alternativ för dataåtkomstläge och välj sedan måltabellen eller ange en SQL-instruktion som innehåller målkolumnerna.
På sidan Mappningar i redigeraren mappar du lämpliga kolumner från ändringsdata till måltabellen.
Tillämpa uppdateringar
Om du vill tillämpa uppdateringar använder du en OLE DB-kommandotransformering. Du använder den här omvandlingen eftersom du måste använda en parameteriserad UPDATE instruktion för att uppdatera en rad i taget med de nya kolumnvärdena.
Note
Du kan också använda målkomponenter för att tillämpa uppdateringar. När du använder den här metoden använder du målkomponenterna för att spara raderna i temporära tabeller som du skapar för detta ändamål. Sedan använder du Execute SQL-aktiviteter för att utföra massuppdateringar och massraderingar på målet från de tillfälliga tabellerna.
Så här bearbetar du uppdateringar med hjälp av en OLE DB-kommandotransformering
På fliken Dataflöde lägger du till en OLE DB-kommandotransformering.
Anslut de utdata som innehåller uppdateringar från omvandlingen för villkorsstyrd delning till OLE DB-kommandotransformeringen.
I Rozšírený editor för OLE DB-kommandot går du till fliken Správca pripojení och väljer eller skapar en OLE DB-Správca pripojení för måldatabasen.
I Rozšírený editor för OLE DB-kommandot anger du en parameteriserad instruktion på fliken Komponentegenskaper för UPDATE.
Till exempel kan en UPDATE-instruktion för tabellen Customer ha följande syntax:
update CDCSample.Customer set TerritoryID = ?, CustomerType = ?, rowguid = ?, ModifiedDate = ? where CustomerID = ?På fliken Kolumnmappningar i redigeraren mappar du lämpliga kolumner från ändringsdata till parametrarna i -instruktionen UPDATE .
Verkställer borttagningar
Om du vill använda borttagningar använder du en OLE DB-kommandotransformering. Du använder den här omvandlingen eftersom du måste använda en parameteriserad DELETE instruktion som tar bort en enskild rad i taget baserat på kolumnvärdet som unikt identifierar raden.
Note
Du kan också använda målkomponenter för att utföra borttagningar. När du använder den här metoden använder du målkomponenterna för att spara raderna i temporära tabeller som du skapar för detta ändamål. Sedan använder du Kör SQL-uppgifter för att utföra massuppdaterings- och massborttagningsåtgärder mot målet från de tillfälliga tabellerna.
Så här bearbetar du borttagningar med hjälp av en OLE DB-kommandotransformering
På fliken Dataflöde lägger du till en OLE DB-kommandotransformering i dataflödet.
Anslut utdata som innehåller borttagningar från omvandlingen för villkorsstyrd delning till OLE DB-kommandotransformeringen.
Öppna Rozšírený editor för att konfigurera omvandlingen.
I Rozšírený editor för OLE DB-kommandot går du till fliken Správca pripojení och väljer eller skapar en OLE DB-Správca pripojení för måldatabasen.
I Rozšírený editor för OLE DB-kommandot anger du en parameteriserad instruktion på fliken Komponentegenskaper i redigeraren för DELETE.
Till exempel kan en DELETE-sats för tabellen Customer ha följande syntax:
delete from Customer where CustomerID = ?På fliken Kolumnmappningar i redigeraren mappar du lämplig kolumn från ändringsdata till parametern i -instruktionen DELETE .
Optimera infogningar och uppdateringar med hjälp MERGE av funktioner
Du kan optimera bearbetningen av infogningar och uppdateringar genom att kombinera vissa alternativ för insamling av ändringsdata med hjälp av nyckelordet Transact-SQL MERGE . Mer information om nyckelordet MERGEfinns i (Transact-SQL).
I Transact-SQL-instruktionen som hämtar ändringsdata kan du ange alla med sammanslagning som värdet för parametern row_filter_option när du anropar funktionen cdc.fn_cdc_get_net_changes_<capture_instance> . Den här funktionen för insamling av ändringsdata fungerar effektivare när den inte behöver utföra den extra bearbetning som krävs för att skilja infogningar från uppdateringar. När du anger parametervärdet all with merge är värdet för __$operation i ändringsdata 1 för borttagningar eller 5 för ändringar som orsakas av infogningar eller uppdateringar. Mer information om funktionen Transact-SQL som används för att hämta ändringsdata finns i Hämta och förstå ändringsdata. När du har hämtat ändringar med alla med kopplingsparametervärdet kan du använda borttagningar och mata ut de återstående raderna till en tillfällig tabell eller en mellanlagringstabell. Sedan kan du i en efterföljande Execute SQL Task använda en enda MERGE-sats för att utföra alla infogningar eller uppdateringar från mellanlagringstabellen i måltabellen.