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 andra uppgiften att separera insättningar, uppdateringar och raderingar. Sedan kan du använda lämpliga kommandon för att applicera dem på destinationen.
Note
Den första uppgiften i designen av dataflödet i ett paket som utför en inkrementell belastning av ändringsdata är att konfigurera källkomponenten som kör den fråga som hämtar ändringsdatan. För mer information om denna komponent, se Hämta och förstå förändringsdata. 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).
Att koppla vänliga värden till separata insättningar, uppdateringar och borttagningar
I exempelfrågan som hämtar förändringsdata returnerar funktionen cdc.fn_cdc_get_net_changes_<capture_instance> endast kolumnen med metadata som heter __$operation. Denna metadatakolumn innehåller ett ordinalt värde som anger vilken operation som orsakade ändringen.
Note
Mer information om frågan som anropar funktionen cdc.fn_cdc_get_net_changes_<capture_instance> finns i Skapa funktionen för att hämta ändringsdata.
Att matcha ett ordinalvärde med dess motsvarande operation är inte lika enkelt som att använda en mnemonik för operationen. Till exempel kan 'D' enkelt representera en borttagningsoperation och 'I' representera en insättningsoperation. Exempelfrågan som skapades i ämnet, Skapa funktionen för att hämta ändringsdata, gör denna konvertering från ett ordinalt värde till ett vänligt strängvärde som returneras i en ny kolumn. Följande kodsegment visar denna konvertering:
select
...
case __$operation
when 1 then 'D'
when 2 then 'I'
when 4 then 'U'
else null
end as CDC_OPERATION
Konfigurera en villkorsstyrd delningstransformering för att styra infogningar, uppdateringar och borttagningar
För att styra rader av förändringsdata till en av tre utdata är Conditional Split-transformationen idealisk. Transformationen kontrollerar bara värdet på den CDC_OPERATION kolumnen i varje rad och avgör om den ändringen var en insättning, uppdatering eller borttagning.
Note
Kolumnen CDC_OPERATION innehåller ett vänligt strängvärde som härstammar från det numeriska värdet i __$operation-kolumnen .
För att dela insättningar, uppdateringar och raderingar för bearbetning genom att använda en Conditional Split-transformation
På fliken Data Flow, lägg till en Conditional Split-transformation.
Koppla utgången från OLE DB-källkoden till Conditional Split-transformationen.
I Conditional Split Transformation Editorn, i redigerarens nedre fönsterruta, anger du följande tre rader för att definiera de tre utdata.
Ange en rad med villkoret
CDC_OPERATION == "I"för att styra infogade rader till utdata för infogningar.Ange en rad med villkoret
CDC_OPERATION == "U"för att styra uppdaterade rader till utdata för uppdateringar.Ange en rad med villkoret
CDC_OPERATION == "D"för att styra raderade rader till utgången vid borttagning.