Adatok növekményes betöltése az Azure SQL Database-ből az Azure Blob Storage-ba változáskövetési információk használatával a PowerShell használatával
A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics
Tipp.
Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!
Ebben az oktatóanyagban egy Azure Data Factoryt hoz létre egy folyamattal, amely az Azure SQL Database forrásadatbázisában lévő változáskövetési információk alapján betölti a változásadatokat egy Azure Blob Storage-ba.
Az oktatóanyagban az alábbi lépéseket fogja végrehajtani:
- A forrásadattár előkészítése
- Adat-előállító létrehozása
- Társított szolgáltatások létrehozása.
- Forrás, fogadó és változáskövetési adatkészletek létrehozása.
- A teljes másolási folyamat létrehozása, futtatása és figyelése
- A forrástáblában szereplő adatok hozzáadása vagy frissítése
- A növekményes másolási folyamat létrehozása, futtatása és figyelése
Megjegyzés:
We recommend that you use the Azure Az PowerShell module to interact with Azure. See Install Azure PowerShell to get started. To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.
Áttekintés
Adatintegrációs megoldások esetében gyakran használt forgatókönyv az adatok növekményes betöltése egy kezdeti, teljes adatbetöltést követően. Bizonyos esetekben a forrásadattárban lévő adott időszakbeli módosított adatok egyszerűen felszeletelhetők (például: LastModifyTime, CreationTime). Bizonyos esetekben nincs kifejezett módja a legutóbbi adatfeldolgozásból származó változásadatok azonosításának. A változásadatok a változáskövetési technológiával azonosíthatóak, amelyeket egyes adattárak támogatnak, például az Azure SQL Database vagy az SQL Server. Ez az oktatóanyag bemutatja, hogy az Azure Data Factory és az SQL változáskövetési technológia segítségével hogyan tölthetők be növekményesen az Azure SQL Database változásadatai az Azure Blob Storage-ba. Az SQL változáskövetési technológiával kapcsolatos részletesebb információért lásd: Változáskövetés az SQL Serveren.
Teljes körű munkafolyamat
Íme az adatok változáskövetési technológiával történő növekményes betöltési munkafolyamatának részletes lépései.
Megjegyzés:
Az Azure SQL Database és az SQL Server is támogatja a változáskövetési technológiát. Ez az oktatóanyag az Azure SQL Database-t használja forrásadattárként. SQL Server-példányt is használhat.
- Az előzményadatok kezdeti betöltése (egyszeri futtatás):
- A változáskövetési technológia engedélyezése a forrásadatbázisban az Azure SQL Database-ben.
- Kérje le a SYS_CHANGE_VERSION kezdeti értékét az adatbázisban a módosított adatok rögzítésének alapkonfigurációjaként.
- Töltsön be teljes adatokat a forrásadatbázisból egy Azure Blob Storage-ba.
- A deltaadatok növekményes betöltése ütemezés szerint (az adatok kezdeti betöltése után rendszeres időközönként fut):
- Kérje le a SYS_CHANGE_VERSION régi és új értékét.
- A változásadatok betöltéséhez egyesítse a sys.change_tracking_tables táblázat módosított sorainak (a két SYS_CHANGE_VERSION érték közötti) elsődleges kulcsait és a forrástábla adatait, majd helyezze át a módosított adatokat a célhelyre.
- A következő alkalommal frissítse a SYS_CHANGE_VERSION értékét a változásadatok betöltéséhez.
Összefoglaló jellegű megoldás
Ebben az oktatóanyagban két folyamatot hoz létre, amelyek az alábbi két műveletet hajtják végre:
Kezdeti betöltés: egy másolási tevékenységgel rendelkező folyamatot fog létrehozni, amely a forrásadattár (Azure SQL Database) összes adatát átmásolja a céladattárba (Azure Blob Storage).
Növekményes betöltés: a következő tevékenységeket tartalmazó folyamatot fog létrehozni, majd időszakosan futtatni.
- Hozzon létre két keresési tevékenységet a SYS_CHANGE_VERSION régi és új értékének lekéréséhez az Azure SQL Database-ből, majd adja azt át a másolási tevékenységnek.
- Hozzon létre egy másolási tevékenységet a két SYS_CHANGE_VERSION érték közötti beillesztett/frissített/törölt adatok az Azure SQL Database-ből az Azure Blob Storage-be való másolásához.
- Hozzon létre egy tárolt eljárási tevékenységet a SYS_CHANGE_VERSION értékének a következő folyamatfuttatáshoz való frissítéséhez.
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Előfeltételek
- Azure PowerShell. Kövesse az Azure PowerShell telepítését és konfigurálását ismertető cikkben szereplő utasításokat a legújabb Azure PowerShell-modulok telepítéséhez.
- Azure SQL Database Ezt az adatbázist használjuk forrásadattárként. Ha nem rendelkezik adatbázissal az Azure SQL Database-ben, a létrehozás lépéseit az Adatbázis létrehozása az Azure SQL Database-ben című cikkben találja.
- Egy Azure Storage-fiók. A blobtárolót használjuk majd fogadóadattárként. Ha még nem rendelkezik Azure Storage-fiókkal, a létrehozás folyamatáért lásd a tárfiók létrehozását ismertető cikket. Hozzon létre egy tárolót adftutorial néven.
Adatforrástábla létrehozása az adatbázisban
Indítsa el az SQL Server Management Studiót, és csatlakozzon az SQL Database-hez.
A Kiszolgálókezelőben kattintson a jobb gombbal az adatbázisra, és válassza az Új lekérdezés elemet.
Futtassa a következő SQL-parancsot az adatbázison egy adatforrástárként elnevezett
data_source_table
tábla létrehozásához.create table data_source_table ( PersonID int NOT NULL, Name varchar(255), Age int PRIMARY KEY (PersonID) ); INSERT INTO data_source_table (PersonID, Name, Age) VALUES (1, 'aaaa', 21), (2, 'bbbb', 24), (3, 'cccc', 20), (4, 'dddd', 26), (5, 'eeee', 22);
Engedélyezze a változáskövetési mechanizmust az adatbázisban és a forrástáblában (data_source_table) az alábbi SQL-lekérdezés futtatásával:
Megjegyzés:
- Cserélje le <az adatbázis nevét> a data_source_table tartalmazó adatbázis nevére.
- Ebben a példában a rendszer két napig tárolja a módosított adatokat. Ha a módosított adatokat három naponta vagy annál ritkábban tölti be, nem minden módosított adat jelenik meg. Növelje a CHANGE_RETENTION változó értékét, vagy ügyeljen arra, hogy a módosított adatok betöltései között ne teljen el két napnál több idő. További információk: Változáskövetés engedélyezése adatbázishoz.
ALTER DATABASE <your database name> SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON) ALTER TABLE data_source_table ENABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = ON)
Hozzon létre egy új táblát, és az alábbi lekérdezés futtatásával tárolja alapértelmezett értékkel a ChangeTracking_version változót:
create table table_store_ChangeTracking_version ( TableName varchar(255), SYS_CHANGE_VERSION BIGINT, ); DECLARE @ChangeTracking_version BIGINT SET @ChangeTracking_version = CHANGE_TRACKING_CURRENT_VERSION(); INSERT INTO table_store_ChangeTracking_version VALUES ('data_source_table', @ChangeTracking_version)
Megjegyzés:
Ha az adatok nem módosultak, miután engedélyezte a változáskövetést az SQL Database-ben, a változáskövetés verziójának értéke 0.
Futtassa a következő lekérdezést egy tárolt eljárás létrehozásához az adatbázisban. A folyamat ezt a tárolt eljárást hívja meg az előző lépésben létrehozott tábla változáskövetési verziójának frissítéséhez.
CREATE PROCEDURE Update_ChangeTracking_Version @CurrentTrackingVersion BIGINT, @TableName varchar(50) AS BEGIN UPDATE table_store_ChangeTracking_version SET [SYS_CHANGE_VERSION] = @CurrentTrackingVersion WHERE [TableName] = @TableName END
Azure PowerShell
Kövesse az Azure PowerShell telepítését és konfigurálását ismertető cikkben szereplő utasításokat a legújabb Azure PowerShell-modulok telepítéséhez.
Adat-előállító létrehozása
Adjon meg egy olyan változót, amelyet később a PowerShell-parancsokban az erőforráscsoport neveként fog használni. Másolja az alábbi parancsszöveget a PowerShellbe, adja meg az Azure-erőforráscsoport nevét idézőjelek között, majd futtassa a parancsot. For example:
"adfrg"
.$resourceGroupName = "ADFTutorialResourceGroup";
Ha az erőforráscsoport már létezik, előfordulhat, hogy nem kívánja felülírni. Rendeljen egy másik értéket a
$resourceGroupName
változóhoz, majd futtassa újra a parancsotAdjon meg egy változót az adat-előállító helyéhez:
$location = "East US"
Futtassa az alábbi parancsot az Azure-erőforráscsoport létrehozásához:
New-AzResourceGroup $resourceGroupName $location
Ha az erőforráscsoport már létezik, előfordulhat, hogy nem kívánja felülírni. Rendeljen egy másik értéket a
$resourceGroupName
változóhoz, majd futtassa újra a parancsot.Adjon meg egy változót az adat-előállító nevéhez.
Fontos
Frissítse az adat-előállító nevét, hogy globálisan egyedi legyen.
$dataFactoryName = "IncCopyChgTrackingDF";
Az adat-előállító létrehozásához futtassa a következő Set-AzDataFactoryV2 parancsmagot:
Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location $location -Name $dataFactoryName
Vegye figyelembe az alábbiakat:
Az Azure data factory nevének globálisan egyedinek kell lennie. Ha a következő hibaüzenetet kapja, módosítsa a nevet, majd próbálkozzon újra.
The specified Data Factory name 'ADFIncCopyChangeTrackingTestFactory' is already in use. Data Factory names must be globally unique.
Data Factory-példányok létrehozásához a felhasználói fióknak, amellyel belép az Azure-ba, a közreműködő vagy tulajdonos szerepkörök tagjának, vagy az Azure-előfizetés rendszergazdájának kell lennie.
Azon Azure-régiók megtekintéséhez, amelyekben jelenleg elérhető a Data Factory, a következő lapon válassza ki az Önt érdeklő régiókat, majd bontsa ki az Elemzés részt, és keresse meg a Data Factory: Elérhető termékek régiók szerint szakaszt. Az adat-előállítók által használt adattárak (Azure Storage, Azure SQL Database stb.) és számítási erőforrások (HDInsight stb.) más régiókban is lehetnek.
Társított szolgáltatások létrehozása
Társított szolgáltatásokat hoz létre egy adat-előállítóban az adattárak és a számítási szolgáltatások adat-előállítóval történő társításához. Ebben a szakaszban társított szolgáltatásokat hoz létre az Azure Storage-fiókjához és adatbázisához az Azure SQL Database-ben.
Azure Storage-beli társított szolgáltatás létrehozása
Ebben a lépésben az Azure Storage-fiókot társítja az adat-előállítóval.
Hozzon létre egy AzureStorageLinkedService.json nevű JSON-fájlt a C:\ADFTutorials\IncCopyChangeTrackingTutorial mappában a következő tartalommal (ha még nem létezik a mappa, hozza létre).
<accountKey>
A fájl mentése előtt cserélje le<accountName>
az Azure Storage-fiók nevét és kulcsát.{ "name": "AzureStorageLinkedService", "properties": { "type": "AzureStorage", "typeProperties": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>" } } }
Az Azure PowerShellben váltson a C:\ADFTutorials\IncCopyChangeTrackingTutorial mappára.
Futtassa a Set-AzDataFactoryV2LinkedService parancsmagot a társított szolgáltatás létrehozásához: AzureStorageLinkedService. A következő példában a ResourceGroupName és a DataFactoryName paraméter értékeit fogja megadni.
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"
Itt látható a minta kimenete:
LinkedServiceName : AzureStorageLinkedService ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Properties : Microsoft.Azure.Management.DataFactory.Models.AzureStorageLinkedService
Azure SQL Database-beli társított szolgáltatás létrehozása.
Ebben a lépésben az adatbázist az adat-előállítóhoz csatolja.
Hozzon létre egy AzureSQLDatabaseLinkedService.json nevű JSON-fájlt a C:\ADFTutorials\IncCopyChangeTrackingTutorial mappában a következő tartalommal: Cserélje le< a kiszolgáló<>adatbázisának nevét>, <felhasználói azonosítóját> és <jelszavát> a kiszolgáló nevére, az adatbázis nevére, a felhasználói azonosítóra és a jelszóra a fájl mentése előtt.
{ "name": "AzureSQLDatabaseLinkedService", "properties": { "type": "AzureSqlDatabase", "typeProperties": { "connectionString": "Server = tcp:<server>.database.windows.net,1433;Initial Catalog=<database name>; Persist Security Info=False; User ID=<user name>; Password=<password>; MultipleActiveResultSets = False; Encrypt = True; TrustServerCertificate = False; Connection Timeout = 30;" } } }
Az Azure PowerShellben futtassa a Set-AzDataFactoryV2LinkedService parancsmagot a társított szolgáltatás létrehozásához: AzureSQLDatabaseLinkedService.
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureSQLDatabaseLinkedService" -File ".\AzureSQLDatabaseLinkedService.json"
Itt látható a minta kimenete:
LinkedServiceName : AzureSQLDatabaseLinkedService ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlDatabaseLinkedService
Adatkészletek létrehozása
Ebben a lépésben adatkészleteket hoz létre, amelyek az adatforrást, az adatcél helyét és a SYS_CHANGE_VERSION változó tárolási helyét jelölik.
Forrásadatkészlet létrehozása
Ebben a lépésben egy adatkészletet hoz létre, amely a forrásadatokat jelöli.
Hozzon létre egy SourceDataset.json nevű JSON-fájlt ugyanebben a mappában az alábbi tartalommal:
{ "name": "SourceDataset", "properties": { "type": "AzureSqlTable", "typeProperties": { "tableName": "data_source_table" }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" } } }
Futtassa a Set-AzDataFactoryV2Dataset parancsmagot az adatkészlet létrehozásához: SourceDataset
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SourceDataset" -File ".\SourceDataset.json"
Itt látható a parancsmag mintakimenete:
DatasetName : SourceDataset ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlTableDataset
Fogadó adatkészlet létrehozása
Ebben a lépésben egy adatkészletet hoz létre, amely a forrásadattárból másolt adatokat jelöli.
Hozzon létre egy SinkDataset.json nevű JSON-fájlt ugyanebben a mappában az alábbi tartalommal:
{ "name": "SinkDataset", "properties": { "type": "AzureBlob", "typeProperties": { "folderPath": "adftutorial/incchgtracking", "fileName": "@CONCAT('Incremental-', pipeline().RunId, '.txt')", "format": { "type": "TextFormat" } }, "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" } } }
Előfeltételként hozzon létre egy adftutorial nevű tárolót az Azure Blob Storage-ben. Ha még nem létezik, hozza létre a tárolót, vagy állítsa be egy meglévő tároló nevét. Ebben az oktatóanyagban a kimeneti fájl neve dinamikusan jön létre a következő kifejezéssel: @CONCAT("Incremental-", pipeline(). RunId, '.txt').
Futtassa a Set-AzDataFactoryV2Dataset parancsmagot az adatkészlet létrehozásához: SinkDataset
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SinkDataset" -File ".\SinkDataset.json"
Itt látható a parancsmag mintakimenete:
DatasetName : SinkDataset ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureBlobDataset
Változáskövetési adatkészlet létrehozása
Ebben a lépésben egy adatkészletet hozunk létre a változáskövetés verziószámának tárolásához.
Hozzon létre egy ChangeTrackingDataset.json nevű JSON-fájlt ugyanebben a mappában az alábbi tartalommal:
{ "name": " ChangeTrackingDataset", "properties": { "type": "AzureSqlTable", "typeProperties": { "tableName": "table_store_ChangeTracking_version" }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" } } }
Előfeltételként hozzon létre egy table_store_ChangeTracking_version nevű táblát.
Futtassa a Set-AzDataFactoryV2Dataset parancsmagot az adathalmaz létrehozásához: ChangeTrackingDataset
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "ChangeTrackingDataset" -File ".\ChangeTrackingDataset.json"
Itt látható a parancsmag mintakimenete:
DatasetName : ChangeTrackingDataset ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlTableDataset
Folyamat létrehozása teljes másolat készítéséhez
Ebben a lépésben egy másolási tevékenységgel rendelkező folyamatot fog létrehozni, amely a forrásadattár (Azure SQL Database) összes adatát átmásolja a céladattárba (Azure Blob Storage).
Hozzon létre egy FullCopyPipeline.json nevű JSON-fájlt ugyanebben a mappában az alábbi tartalommal:
{ "name": "FullCopyPipeline", "properties": { "activities": [{ "name": "FullCopyActivity", "type": "Copy", "typeProperties": { "source": { "type": "SqlSource" }, "sink": { "type": "BlobSink" } }, "inputs": [{ "referenceName": "SourceDataset", "type": "DatasetReference" }], "outputs": [{ "referenceName": "SinkDataset", "type": "DatasetReference" }] }] } }
Futtassa a Set-AzDataFactoryV2Pipeline parancsmagot a folyamat létrehozásához: FullCopyPipeline.
Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "FullCopyPipeline" -File ".\FullCopyPipeline.json"
Itt látható a minta kimenete:
PipelineName : FullCopyPipeline ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Activities : {FullCopyActivity} Parameters :
A teljes másolási folyamat futtatása
Futtassa a folyamatot: FullCopyPipeline az Invoke-AzDataFactoryV2Pipeline parancsmaggal.
Invoke-AzDataFactoryV2Pipeline -PipelineName "FullCopyPipeline" -ResourceGroup $resourceGroupName -dataFactoryName $dataFactoryName
A teljes másolási folyamat megfigyelése
Jelentkezzen be az Azure Portalra.
Kattintson a Minden szolgáltatás elemre, végezzen keresést a
data factories
kulcsszóval, és válassza az Adat-előállítók lehetőséget.Keresse meg az adat-előállítóját az adat-előállítók listájában, és kattintson rá az Adat-előállító lap megnyitásához.
Az Adat-előállító lapon kattintson a Figyelés és felügyelet csempére.
A adatintegráció alkalmazás egy külön lapon indul el. Megtekintheti az összes folyamatfuttatást és azok állapotát. A következő példában a folyamatfuttatás állapota Sikeres. A Paraméterek oszlopban található hivatkozásra kattintva megtekintheti a folyamatnak átadott paramétereket. Hiba esetén egy hivatkozás jelenik meg a Hiba oszlopban. Kattintson a Műveletek oszlopban található hivatkozásra.
Ha a Műveletek oszlopban található hivatkozásra kattint, megjelenik a következő lap, amely megmutatja a folyamat összes tevékenységfuttatását.
A Folyamatfuttatások nézetre való visszaváltáshoz kattintson a Folyamatok lehetőségre a képen látható módon.
Az eredmények áttekintése
Egy incremental-<GUID>.txt
nevű fájl található az adftutorial
nevű tároló incchgtracking
mappájában.
A fájlnak az adatbázisból származó adatokkal kell rendelkeznie:
1,aaaa,21
2,bbbb,24
3,cccc,20
4,dddd,26
5,eeee,22
További adatok hozzáadása a forrástáblához
Futtassa az alábbi lekérdezést az adatbázison egy sor hozzáadásához és egy sor frissítéséhez.
INSERT INTO data_source_table
(PersonID, Name, Age)
VALUES
(6, 'new','50');
UPDATE data_source_table
SET [Age] = '10', [name]='update' where [PersonID] = 1
Folyamat létrehozása a változásadatok másolásához
Ebben a lépésben a következő tevékenységeket tartalmazó folyamatot fog létrehozni, majd időszakosan futtatni. A keresési tevékenységek lekérik a SYS_CHANGE_VERSION régi és új értékét az Azure SQL Database-ből, majd átadják azt a másolási tevékenységnek. A másolási tevékenység a két SYS_CHANGE_VERSION érték közötti beillesztett/frissített/törölt adatokat az Azure SQL Database-ből az Azure Blob Storage-be másolja. A tárolt eljárási tevékenység frissíti a SYS_CHANGE_VERSION értékét a következő folyamatfuttatáshoz.
Hozzon létre egy IncrementalCopyPipeline.json nevű JSON-fájlt ugyanebben a mappában az alábbi tartalommal:
{ "name": "IncrementalCopyPipeline", "properties": { "activities": [ { "name": "LookupLastChangeTrackingVersionActivity", "type": "Lookup", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "select * from table_store_ChangeTracking_version" }, "dataset": { "referenceName": "ChangeTrackingDataset", "type": "DatasetReference" } } }, { "name": "LookupCurrentChangeTrackingVersionActivity", "type": "Lookup", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "SELECT CHANGE_TRACKING_CURRENT_VERSION() as CurrentChangeTrackingVersion" }, "dataset": { "referenceName": "SourceDataset", "type": "DatasetReference" } } }, { "name": "IncrementalCopyActivity", "type": "Copy", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "select data_source_table.PersonID,data_source_table.Name,data_source_table.Age, CT.SYS_CHANGE_VERSION, SYS_CHANGE_OPERATION from data_source_table RIGHT OUTER JOIN CHANGETABLE(CHANGES data_source_table, @{activity('LookupLastChangeTrackingVersionActivity').output.firstRow.SYS_CHANGE_VERSION}) as CT on data_source_table.PersonID = CT.PersonID where CT.SYS_CHANGE_VERSION <= @{activity('LookupCurrentChangeTrackingVersionActivity').output.firstRow.CurrentChangeTrackingVersion}" }, "sink": { "type": "BlobSink" } }, "dependsOn": [ { "activity": "LookupLastChangeTrackingVersionActivity", "dependencyConditions": [ "Succeeded" ] }, { "activity": "LookupCurrentChangeTrackingVersionActivity", "dependencyConditions": [ "Succeeded" ] } ], "inputs": [ { "referenceName": "SourceDataset", "type": "DatasetReference" } ], "outputs": [ { "referenceName": "SinkDataset", "type": "DatasetReference" } ] }, { "name": "StoredProceduretoUpdateChangeTrackingActivity", "type": "SqlServerStoredProcedure", "typeProperties": { "storedProcedureName": "Update_ChangeTracking_Version", "storedProcedureParameters": { "CurrentTrackingVersion": { "value": "@{activity('LookupCurrentChangeTrackingVersionActivity').output.firstRow.CurrentChangeTrackingVersion}", "type": "INT64" }, "TableName": { "value": "@{activity('LookupLastChangeTrackingVersionActivity').output.firstRow.TableName}", "type": "String" } } }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" }, "dependsOn": [ { "activity": "IncrementalCopyActivity", "dependencyConditions": [ "Succeeded" ] } ] } ] } }
Futtassa a Set-AzDataFactoryV2Pipeline parancsmagot a folyamat létrehozásához: FullCopyPipeline.
Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "IncrementalCopyPipeline" -File ".\IncrementalCopyPipeline.json"
Itt látható a minta kimenete:
PipelineName : IncrementalCopyPipeline ResourceGroupName : ADFTutorialResourceGroup DataFactoryName : IncCopyChgTrackingDF Activities : {LookupLastChangeTrackingVersionActivity, LookupCurrentChangeTrackingVersionActivity, IncrementalCopyActivity, StoredProceduretoUpdateChangeTrackingActivity} Parameters :
A növekményes másolási folyamat futtatása
Futtassa a folyamatot: IncrementalCopyPipeline az Invoke-AzDataFactoryV2Pipeline parancsmaggal.
Invoke-AzDataFactoryV2Pipeline -PipelineName "IncrementalCopyPipeline" -ResourceGroup $resourceGroupName -dataFactoryName $dataFactoryName
A növekményes másolási folyamat figyelése
Az adatintegrációs alkalmazásban frissítse a Folyamatfuttatások nézetet. Ellenőrizze, hogy az IncrementalCopyPipeline szerepel-e a listában. Kattintson a Műveletek oszlopban található hivatkozásra.
Ha a Műveletek oszlopban található hivatkozásra kattint, megjelenik a következő lap, amely megmutatja a folyamat összes tevékenységfuttatását.
A Folyamatfuttatások nézetre való visszaváltáshoz kattintson a Folyamatok lehetőségre a képen látható módon.
Az eredmények áttekintése
A második fájl az adftutorial
nevű tároló incchgtracking
mappájában található.
A fájlnak csak az adatbázis különbözeti adataival kell rendelkeznie. Az U
karaktert tartalmazó rekord a frissített sor az adatbázisban, az I
karaktert tartalmazó rekord pedig a hozzáadott sor.
1,update,10,2,U
6,new,50,1,I
Az első három oszlop a data_source_table táblából származó módosított adatokat tartalmazza. Az utolsó két oszlop a változáskövetési rendszer táblájából származó metaadatokat tartalmazza. A negyedik oszlop az egyes módosított sorokra vonatkozó SYS_CHANGE_VERSION értéket tartalmazza. Az ötödik oszlop a műveletet tartalmazza: U = frissítés, I = beszúrás. A változáskövetési adatokkal kapcsolatos információért lásd: CHANGETABLE.
==================================================================
PersonID Name Age SYS_CHANGE_VERSION SYS_CHANGE_OPERATION
==================================================================
1 update 10 2 U
6 new 50 1 I
Kapcsolódó tartalom
A következő oktatóanyagban megismerheti, hogyan másolhat új és módosított fájlokat csak a LastModifiedDate alapján: