SQL Server Change Tracking för SQL Server-replikering i realtid

vad är SQL Server Change Tracking?

SQL Server Change Tracking är ett sätt att fånga alla ändringar som gjorts i en Microsoft SQL Server-databas. Alla inlägg, uppdateringar eller raderingar som gjorts i någon av tabellerna som gjorts i ett angivet tidsfönster fångas. Denna information görs tillgänglig för SQL Server-replikering. SQL Change Tracking läser transaktionsloggarna för att hitta dataändringar och registrerar ändringarna för enkel användning. Det är en extremt lätt mekanism för att fånga de inkrementella förändringarna i ett angivet fönster. Lär dig också om SQL Server CDC och Oracle CDC

SQL Change Tracking är en integrerad del av SQL Server replication

när data behöver överföras eller replikeras till data lakes eller data warehouse från en SQL Server-databas, är SQL Change Tracking-funktionen särskilt användbar eftersom den hjälper till att replikera inkrementella data effektivt, så att data lake/ warehouse alltid är uppdaterad och är en centraliserad plats för dataåtkomst från olika SQL Server-repositorier.

SQL Server är ett relationsdatabashanteringssystem utvecklat av Microsoft. Dess primära funktion är att lagra och hämta data effektivt och används vanligtvis av applikationer för datalagring och hämtning. SQL Server-versioner 2008 och framåt stöder Förändringsspårningsfunktionalitet.

SQL Server ändra spårning-poäng att notera:

  • alla versioner av SQL Server stöder denna funktion
  • du måste aktivera Ändringsspårning på databasnivå och på tabellnivå för alla tabeller som måste spåras
  • tabellerna måste ha en primärnyckel definierad i databasen

dessa steg förklaras i djupet nedan:

för att aktivera Ändringsspårning

ändra databas databasnamn
ange Change_tracking = på
(change_retention = 7 dagar, Auto_cleanup = på)

till exempel:

ALTER DATABASE Adventureworks2019
Ställ CHANGE_TRACKING = på
(CHANGE_RETENTION = 7 dagar, AUTO_CLEANUP = på)

på tabellnivå:

använd <databasnamn>

ändra tabellnamn
aktivera change_tracking
med (TRACK_COLUMNS_UPDATED = på);

till exempel:

använd ADVENTUREWORKS2019

ändra tabell dimcustomer
aktivera change_tracking
med (track_columns_updated = på);

kontrollera om förändring spårning har aktiverats på databasnivå

Välj *
från sys.change_tracking_databases
där database_id = DB_ID(’databasnamn’);

till exempel:

välj *
från sys.change_tracking_databases
där database_id = DB_ID (’Adventureworks2019’);

resultat:

kontrollera om Ändringsspårning är aktiverad på tabellnivå

använd databasnamn;
välj sys.schemas.name som schemanamn, sys.tables.name som tabellnamn
från sys.change_tracking_tables
gå med i sys.tabeller på sys.tabell.object_id = sys.change_tracking_tables.object_id
gå med i sys.scheman på sys.scheman.schema_id = sys.tabell.schema_id;

till exempel:

använd Adventureworks2019;
välj sys.schemas.name som schemanamn, sys.tables.name som tabellnamn
från sys.change_tracking_tables
gå med i sys.tabeller på sys.tabell.object_id = sys.change_tracking_tables.object_id
gå med i sys.scheman på sys.scheman.schema_id = sys.tabell.schema_id;

resultat:

SQL Server Change Tracking: fördelar och nackdelar

  • tabellen måste ha en primärnyckel definierad. Det går inte att använda ändringsspårning för tabeller utan en primärnyckel.

fördelar

  • en extremt lätt lösning, ändra spårning är mycket användbar i de flesta scenarier.
  • det stöds av alla versioner av SQL Server, vilket gör detta till en mycket mångsidig lösning.

SQL Server Change Tracking begränsningar eller utmaningar med anpassad kodning

  • även om den inbyggda SQL Server Change Tracking-funktionen hjälper till att fånga ändringar, finns det betydande kodning att göra, för att fånga dessa ändringar och använda dem för SQL-replikering till ett datalager eller Data Lake.
  • inte bara behöver tillförlitlighet och robusthet tillgodoses, men pågående underhåll, dataproblem och hantering av nya tabeller och datatyper blir en pågående Fråga för företag.
  • varnings-och övervakningslösningen måste också handkodas, och när man tittar på de olika komponenterna som krävs för att få detta att fungera, erbjuder en handkodad lösning inte snabb tid att värdera och kan vara dyr att utveckla och underhålla.

ingen kod, automatiserat sätt att fånga ändringar från SQL Server är att använda BryteFlow

  • BryteFlow är ett GUI-baserat verktyg som hjälper till att fånga ändringarna från SQL Server med Förändringsspårning och flera andra mekanismer. Läs mer om lösningen
  • det är en no-kod sätt att överföra dina data till olika datalager och data sjöar
  • det skapar scheman automatiskt på målet med de optimala datatyper och implementerar bästa praxis för målet
  • data replikeras till målet kan hållas automatiskt med SCD typ 2 historia om konfigurerad
  • automatiserad, sofistikerad data avstämning – detta är en annan enterprise grade funktion som normalt inte erbjuds på marknaden
  • bryteflow erbjuder enterprise grade SQL Server replikering och vattentät säkerhet för installationer lokalt, i molnet eller med hjälp av en hybridmetod.

slutsats

till skillnad från det kodningsintensiva tillvägagångssättet erbjuder vi enkel SQL Server-replikering i realtid med Ändringsspårning med BryteFlow. Bara peka och klicka för att ställa in. Replikera stora datamängder enkelt med parallell gängad initial synkronisering och partitionering följt av delta sync. Tabeller skapas automatiskt med data upserted eller med SCD typ 2 Historia. Du får flera ändringsdatafångstalternativ som är lämpliga för SQL Server-versionen eller utgåvan du använder (alla versioner/utgåvor stöds). Gör dig redo att använda data på destinationen om S3, Redshift, Snowflake, Azure Synapse eller SQL Server.

Lämna ett svar

Din e-postadress kommer inte publiceras.