CDC Flow-komponenter
gäller för:SQL Server
SSIS Integration Runtime i Azure Data Factory
Viktig
CDC Flow-komponenter, inklusive CDC Control Task, CDC Source och CDC Splitter, är inaktuella. Mer information finns i meddelandet.
Komponenterna för ändringsdatafångst av Attunity för Microsoft SQL Server 2019 Integration Services (SSIS) underlättar SSIS-utvecklares arbete med CDC och minskar komplexiteten i CDC-paket.
SSIS CDC-komponenterna är utformade för att fungera med SQL Server CDC-funktionen där källtabellerna antingen är samma SQL Server-databas eller en Oracle-databas (när du använder Oracle CDC-tjänsten för SQL Server). Partitionerade tabeller stöds.
Komponenterna innehåller komponenterna Kontroll och Dataflöde som effektiviserar upplevelsen av att läsa och bearbeta ändringsdata i SSIS-paket. Komponenterna kan läggas till i komponentbiblioteket i Microsoft SQL Server, men installeras separat.
Följande är komponenter för förändringsdatainsamling av Attunity:
CDC-kontrollflödeskomponenten:
CDC-dataflödeskomponenter:
Installation
I det här avsnittet beskrivs installationsprocedurerna för CDC-komponenterna för Microsoft SQL Server 2019 Integration Services (SSIS).
CDC-komponenterna för SSIS är paketerade med Microsoft Change Data Capture Designer och Service for Oracle by Attunity för SQL Server. Den här nedladdningen är en del av SQL Server-funktionspaketet. Ladda ned komponenter i funktionspaketet från webbsidan SQL Server 2016 Feature Pack.
Versionsstöd
Stöd för SQL Server-version
CDC-komponenterna för SSIS stöds i alla versioner av Microsoft SQL Server som stöds. För närvarande omfattar de versioner av SQL Server som stöds SQL Server 2012 via SQL Server 2017.
Stöd för operativsystemversion
CDC-komponenterna för SSIS stöds på följande operativsystem och plattformar:
- Windows 8 och 8.1
- Windows 10
- Windows Server 2012 och 2012 R2
- Windows Server 2016
Köra installationsprogrammet
Innan du kör installationsguiden måste du se till att SQL Server SQL Server Data Tools är stängt. Följ sedan anvisningarna i installationsguiden.
Starta om SSIS-tjänsten
När du har installerat CDC-komponenterna måste du starta om SSIS-tjänsten för att se till att komponenterna fungerar korrekt när du utvecklar paket i SQL SQL Server Data Tools.
Ett meddelande visas när du har installerat komponenterna. Klicka på Ja när du uppmanas att göra det.
Avinstallera Microsoft CDC-komponenter
Du avinstallerar CDC-källan, CDC-splitter- eller CDC-kontrolluppgiften med hjälp av avinstallationsguiden. Om du använder SQL Server SQL Server Data Tools för paketutveckling kontrollerar du att SQL Server Data Tools är stängt innan du kör avinstallationsguiden.
Fördelar
CDC-komponenterna för SQL Server Integration Services-komponenter gör det möjligt för SSIS-utvecklare att enkelt skapa SSIS-paket som bearbetar ändringsdata. Dessa komponenter förbättrar SSIS-utvecklarnas förmåga att hantera CDC och minska komplexiteten i CDC-paket.
SSIS CDC-komponenterna används för att tillhandahålla ändringsdata på ett sätt som är enkelt att ytterligare bearbeta dem för replikering, läsa in ett informationslager, uppdatera långsamt föränderliga dimensioner för OLAP, granska ändringar eller för ytterligare möjliga användningsområden. Vilken typ av ytterligare bearbetning som används bestäms av SSIS-utvecklaren.
SSIS CDC-komponenterna är utformade för att fungera med SQL Server CDC-funktionen med ändringstabeller som finns i samma SQL Server-databas.
Komma igång med ändringsdatainsamlingskomponenterna
Ett typiskt CDC-paket bearbetar ändringar i en grupp tabeller. Den grundläggande kontrollflödesdelen av den här typen av CDC-paket visas i följande bild. Det här paketet kallas för ett trickle-feed-bearbetningspaket.
Det här SQL Server Integration Services-kontrollflödet innehåller två CDC-kontrolluppgifter och dataflödesaktiviteten. Den första uppgiften med namnet Get CDC Processing Range upprättar LSN-intervallet för de ändringar som bearbetas i dataflödesaktiviteten som kallas Processändringar. Det här intervallet upprättas baserat på vad som bearbetades under den senaste paketkörningen och sparades i en beständig lagring.
Mer information om hur du använder CDC-kontrolluppgiften finns i CDC Control Task och CDC Control Task Editor.
Följande bild visar Processändringar dataflöde, som konceptuellt visar hur ändringarna bearbetas.
Stegen som illustreras i den här bilden är:
Förändringar för Tabell X är en CDC-källa som läser förändringar gjorda i tabell X inom det bearbetningsintervall som CDC bestämt i huvudkontrollflödet.
CDC Splitter X- används för att dela upp ändringarna i infogningar, borttagningar och uppdateringar. I det här scenariot antas det att CDC-källan har konfigurerats för att skapa nettoändringar så att olika ändringstyper kan bearbetas parallellt.
De specifika ändringarna bearbetas sedan ytterligare nedströms. I den här bilden infogas ändringarna i tabeller med flera ODBC-mål, men i faktiska fall kan bearbetningen vara annorlunda.
Mer information om CDC-källan finns i:
CDC-källredigerare (sida för anslutningshanterare)
CDC-källredigeraren (kolumnsidan)
CDC-källredigerare (Felutdatasida)
Mer information om CDC Splitter finns i:
Ett av de grundläggande problem som kräver uppmärksamhet när du skapar CDC-paket är hur ändringsbearbetningen interagerar med den inledande inläsningen (eller den inledande bearbetningen) av data.
CDC-komponenterna stöder tre distinkta scenarier för inledande inläsning och ändringsbearbetning:
Inledande inläsning klar med en ögonblicksbild av databasen. I det här fallet börjar ändringsbearbetningen med LSN för ögonblicksbildhändelsen.
Initial inläsning från en vilande databas. I det här fallet görs inga ändringar under den första inläsningen, så det aktuella LSN:et samplas någon gång under den inledande inläsningen och ändringsbearbetningen börjar med det LSN:n.
Inledande inläsning från en aktiv databas. I det här fallet, eftersom den inledande belastningen pågår, görs ändringar i databasen och det finns inget enskilt LSN som ändringsbearbetningen kan startas exakt från. I det här fallet kan den första inläsningspaketutvecklaren prova källdatabasens aktuella LSN före och efter den första inläsningen. När du bearbetar ändringar bör du sedan vara försiktig när du bearbetar ändringar som görs parallellt med den första belastningen eftersom vissa av de bearbetade ändringarna redan visas i den första belastningen (till exempel kan en Insert-ändring misslyckas med ett duplicerat nyckelfel eftersom den infogade raden lästes av den första inläsningsprocessen).
Följande bild visar ett SSIS-paket som kan hantera de två första scenarierna:
Följande bild visar ett SSIS-paket som kan hantera det tredje scenariot:
Efter det första inläsningspaketet körs ett trickle-feed-uppdateringspaket upprepade gånger enligt ett schema för att bearbeta ändringar när de blir tillgängliga för förbrukning.
Att överföra tillståndet för CDC-processing från det initiala laddningspaketet till trickle-feedpaketet och mellan olika uppgifter i varje paket sker med hjälp av en särskild SSIS-paketsträngvariabel. Värdet för den här variabeln kallas CDC-staten, vilket återspeglar det aktuella tillståndet för CDC-bearbetning för de grupper av tabeller som hanteras av de första last- och trickle-feed-paketen.
Värdet för CDC State-variabeln måste behållas i beständig lagring. Det bör läsas innan CDC-bearbetningen påbörjas och bör sparas med det aktuella tillståndet när bearbetningen har slutförts. Uppgiften att läsa in och lagra CDC-tillståndet kan hanteras av SSIS-utvecklaren, men CDC-kontrollkomponenten kan automatisera den här uppgiften genom att underhålla CDC State-värdet i en databastabell.
Säkerhetshänsyn
Det här avsnittet innehåller några säkerhetsöverväganden som rör användningen av CDC-komponenterna i SSIS.
Åtkomstauktorisering för att ändra data
Trickle-feed-uppdateringspaket behöver åtkomst till SQL Server CDC-funktioner. Sådan åtkomst beviljas som standard till medlemmar i den db_owner fasta databasrollen. Eftersom db_owner är en kraftfull roll rekommenderar vi att du associerar en säkerhetsroll till varje infångningsinstans så att SSIS CDC-paketet kan använda en mer begränsad användare för att bearbeta ändringarna.
Åtkomst till CDC Database Current LSN
CDC-kontrolluppgifterna för att markera start-LSN för ändringsbehandling måste kunna hitta CDC-databasens nuvarande LSN. Komponenterna hittar LSN med hjälp av proceduren sp_replincrementlsn från huvuddatabasen. Exekveringsbehörighet för den här proceduren måste ges till inloggningsuppgifterna som används för att ansluta till SQL Server CDC-databasen.
Åtkomst till CDC:s statstabell
Tabellen CDC States används för att automatiskt lagra CDC-stater som måste kunna uppdateras av den inloggning som används för att ansluta till SQL Server CDC-databasen. När den här tabellen skapas av SSIS-utvecklaren anger du SQL Server-systemadministratören som en användare som har behörighet att skapa SQL Server-databaser och utföra administrativa och underhållsaktiviteter. Dessutom måste en SQL Server-systemadministratör som arbetar med CDC-aktiverade databaser vara kunnig om SQL Server CDC-teknik och implementering.
Grupperingstabeller för CDC-bearbetning
Databasprojekt varierar i storlek från flera tabeller till tusentals tabeller. När man utformar initiala inläsnings- och CDC-paket är det nyttigt att gruppera tabeller i mycket mindre grupper för att underlätta hanteringen och öka effektiviteten. Det här avsnittet innehåller olika överväganden som påverkar sortering av tabeller i små grupper, där tabellerna i var och en först läses in och sedan uppdateras som en grupp.
CDC-mönstren som stöds av CDC-komponenterna förutsätter att den här grupperingen redan har fastställts. Varje grupp definierar en separat CDC-kontext som underhålls separat från andra grupper. För varje grupp skapas uppdateringspaketen initial-load och trickle-feed. Trickle-feed-uppdateringar schemaläggs för periodiska körningar baserat på ändringsbearbetningsbegränsningarna (till exempel CPU- och I/O-förbrukning, påverkan på andra system) och önskad svarstid.
Tabeller grupperas baserat på följande överväganden:
Enligt måldatabasen. Alla tabeller som skrivs till olika måldatabaser eller genomgår olika bearbetningar bör tilldelas till olika CDC-grupper.
Tabeller som berörs av referensintegritetsbegränsningar bör tilldelas till samma grupp för att undvika referensintegritetsproblem på målet.
Tabeller för vilka högre svarstid kan tolereras kan grupperas så att de kan bearbetas mindre ofta och minska den totala systembelastningen.
Tabeller där det finns en högre ändringstakt bör finnas i mindre grupper och tabeller med låg ändringstakt kan grupperas i större grupper.
Följande två paket skapas för varje CDC-grupp:
Ett initialt inläsningspaket som läser hela dataområdet från källtabellerna och tillämpar det på måltabellerna.
Ett trickle-feed-uppdateringspaket som läser ändringar som gjorts i källtabellerna och tillämpar ändringarna på måltabellerna. Det här paketet bör köras regelbundet.
CDC-tillstånd
Varje CDC-grupp har ett tillstånd som är associerat med den, vilket representeras av en sträng med ett visst format. Mer information finns i CDC Control Task. Följande tabell visar möjliga CDC-tillståndsvärden.
Stat | Beskrivning |
---|---|
0-(INITIAL) | Det tillstånd som finns innan några paket körs i den aktuella CDC-gruppen. Detta är också tillståndet när CDC-staten är tom. Mer information om cdc-kontrollåtgärder finns i CDC Control Task. |
1-ILSTART (Initial-Load-Started) | Det här är det tillstånd som råder när det första inläsningspaketet startar. Detta inträffar efter MarkInitialLoadStart åtgärdsanrop till CDC-kontrolluppgiften. Mer information om cdc-kontrollåtgärder finns i CDC Control Task. |
2- ILEND (initialt-Load-Ended) | Det här är det tillstånd som finns när det första inläsningspaketet avslutas framgångsrikt. Detta inträffar efter anropet MarkInitialLoadEnd till CDC-kontrolluppgiften. För mer information om CDC kontrolluppdrag, se CDC Control Task. |
3-ILUPDATE (inledande belastningsuppdatering) | Det här är tillståndet som uppstår efter den första körningen av uppdateringspaketet, efter den inledande inläsningen, medan det ursprungliga bearbetningsintervallet fortfarande hanteras. Detta inträffar efter GetProcessingRange- åtgärdsanrop till CDC-kontrolluppgiften. Om du använder kolumnen _$reprocessing, anges den till 1 för att indikera att paketet kan återbearbeta rader som redan finns i målsystemet. Mer information om cdc-kontrollåtgärder finns i CDC Control Task. |
4-TFEND (Trickle-Feed-Update-Ended) | Detta är det tillstånd som förväntas för regelbundna CDC-körningar. Det anger att den tidigare körningen har slutförts och att en ny körning med ett nytt bearbetningsintervall kan startas. |
5-TFSTART (Trickle-Feed-Update-Started) | Det här är tillståndet som finns vid efterföljande körningar av uppdateringspaketet efter GetProcessingRange åtgärdsanrop till CDC-kontrolluppgiften. Detta indikerar att en regelbunden CDC-körning har startats, men inte är avslutad eller ännu inte har fullbordats, på ett ordnat sätt (MarkProcessedRange). Mer information om cdc-kontrollåtgärder finns i CDC Control Task. |
6-TFREDO (Reprocessing-Trickle-Feed-Updates) | Det här är tillståndet på en GetProcessingRange- som inträffar efter TFSTART. Detta indikerar att den föregående körningen inte slutfördes korrekt. Om du använder kolumnen __$reprocessing anges den till 1 för att indikera att paketet kan ombehandla rader som redan finns vid målet. |
7-FEL | CDC-gruppen är i ett felaktigt tillstånd. |
Här är tillståndsdiagrammet för CDC-komponenterna. Ett feltillstånd nås när ett tillstånd nås som inte är förväntat. De förväntade tillstånden visas i följande diagram. Diagrammet visar dock inte feltillståndet.
Till exempel i slutet av ett initialt inläsningspaket, när du försöker ange tillståndet till ILEND, om tillståndet är TFSTART, är CDC-gruppen i ett feltillstånd och Trickle-Feed Uppdateringspaketet körs inte (det initiala inläsningspaketet körs).
När det inledande inläsningspaketet har körts körs Trickle-Feed Update-paketet upprepade gånger under ett fördefinierat schema för att bearbeta ändringar i källtabellerna. Varje körning av Trickle-Feed Update-paketet är en CDC-körning.
I det här avsnittet
Relaterade uppgifter
Relaterat innehåll
Teknisk artikel Installera Microsoft SQL Server 2012 Change Data Capture för Oracle av Attunitypå social.technet.microsoft.com.
Teknisk artikel Felsöka konfigurationsproblem i Microsoft Change Data Capture för Oracle av Attunitypå social.technet.microsoft.com.
Teknisk artikel: Felsöka CDC-instansfel i Microsoft Change Data Capture för Oracle av Attunitypå social.technet.microsoft.com.
Video: CDC för Oracle-databaser med hjälp av SQL Server Integration Services 2012 (SQL Server Video)på technet.microsoft.com.