Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
VZTAHUJE SE NA:
Azure Data Factory
Azure Synapse Analytics
Tip
Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.
V tomto kurzu použijete Azure Data Factory k vytvoření pipeline, která načte rozdílová data z tabulky v Azure SQL Database do Azure Blob Storage.
V tomto kurzu provedete následující kroky:
- Připravte úložiště dat pro uložení hodnoty vodoznaku.
- Vytvoření datové továrny
- Vytvoření propojených služeb
- Vytvořte zdroj, ukládání a značkované datové sady.
- Vytvořit kanál.
- Spusťte pipeline.
- Sledujte spuštění kanálu.
Přehled
Tady je souhrnný diagram tohoto řešení:
Tady jsou důležité kroky pro vytvoření tohoto řešení:
Vyberte sloupec vodoznaku. Ve zdrojovém úložišti dat vyberte jeden sloupec, který je možné použít k rozlišení nových nebo aktualizovaných záznamů pro každé spuštění. Data v tomto vybraném sloupci (například čas_poslední_změny nebo ID) se při vytváření nebo aktualizaci řádků obvykle zvyšují. Maximální hodnota v tomto sloupci se používá jako horní mez.
Připravte úložiště dat pro uložení hodnoty vodotisku.
V tomto kurzu uložíte hodnotu vodoznaku do databáze SQL.Vytvořte kanál s následujícím pracovním postupem:
Datový tok v tomto řešení se skládá z následujících aktivit:
- Vytvořte dvě aktivity vyhledávání. První aktivitu vyhledávání použijte k načtení poslední hodnoty meze. Druhou aktivitu vyhledávání použijte k načtení nové hodnoty watermarku. Tyto hodnoty vodoznaku se předávají kopírovací aktivitě.
- Vytvořte aktivita Copy, která kopíruje řádky ze zdrojového úložiště dat s hodnotou sloupce vodoznaku větší než stará hodnota vodoznaku a menší nebo rovna nové hodnotě vodoznaku. Poté zkopíruje delta data ze zdroje dat do Blob Storage jako nový soubor.
- Vytvořte aktivitu uložené procedury, která aktualizuje hodnotu vodoznaku pro nadcházející spuštění kanálu.
Pokud nemáte předplatné Azure, vytvořte si účet free před tím, než začnete.
Požadavky
Poznámka:
K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Pokud chcete začít, přečtěte si téma Install Azure PowerShell. Informace o migraci do modulu Az PowerShell najdete v tématu Migrace Azure PowerShell z AzureRM do Az.
- Azure SQL Database. Tuto databázi použijete jako zdrojové úložiště dat. Pokud databázi v Azure SQL Database nemáte, přečtěte si téma Vytvoření databáze v Azure SQL Database postup jeho vytvoření.
- Azure Storage. Úložiště BLOB použijete jako cílové úložiště dat. Pokud nemáte účet úložiště, přečtěte si téma Vytvoření účtu úložiště, kde najdete kroky pro jeho vytvoření. Vytvořte kontejner s názvem adftutorial.
- Azure PowerShell. Postupujte podle pokynů v Install a nakonfigurujte Azure PowerShell.
Vytvoření tabulky zdroje dat v databázi SQL
Otevřete SQL Server Management Studio. V Průzkumníku serveru klikněte pravým tlačítkem na databázi a zvolte Nový dotaz.
Spuštěním následujícího příkazu SQL na vaší databázi SQL vytvořte tabulku s názvem
data_source_tablejako úložiště zdroje dat:create table data_source_table ( PersonID int, Name varchar(255), LastModifytime datetime ); INSERT INTO data_source_table (PersonID, Name, LastModifytime) VALUES (1, 'aaaa','9/1/2017 12:56:00 AM'), (2, 'bbbb','9/2/2017 5:23:00 AM'), (3, 'cccc','9/3/2017 2:36:00 AM'), (4, 'dddd','9/4/2017 3:21:00 AM'), (5, 'eeee','9/5/2017 8:06:00 AM');V tomto kurzu použijete LastModifytime jako sloupec vodoznaku. Data v úložišti zdroje dat zobrazuje následující tabulka:
PersonID | Name | LastModifytime -------- | ---- | -------------- 1 | aaaa | 2017-09-01 00:56:00.000 2 | bbbb | 2017-09-02 05:23:00.000 3 | cccc | 2017-09-03 02:36:00.000 4 | dddd | 2017-09-04 03:21:00.000 5 | eeee | 2017-09-05 08:06:00.000
Vytvoření další tabulky v databázi SQL pro ukládání hodnoty horní meze
Spuštěním následujícího příkazu SQL na databázi SQL vytvořte tabulku s názvem
watermarktablepro uložení hodnoty meze:create table watermarktable ( TableName varchar(255), WatermarkValue datetime, );Jako výchozí hodnotu horní meze nastavte název tabulky zdrojového úložiště dat. V tomto kurzu má tato tabulka název data_source_table.
INSERT INTO watermarktable VALUES ('data_source_table','1/1/2010 12:00:00 AM')Zkontrolujte data v tabulce
watermarktable.Select * from watermarktableVýstup:
TableName | WatermarkValue ---------- | -------------- data_source_table | 2010-01-01 00:00:00.000
Vytvoření uložené procedury v databázi SQL
Spuštěním následujícího příkazu vytvořte v databázi SQL uloženou proceduru:
CREATE PROCEDURE usp_write_watermark @LastModifiedtime datetime, @TableName varchar(50)
AS
BEGIN
UPDATE watermarktable
SET [WatermarkValue] = @LastModifiedtime
WHERE [TableName] = @TableName
END
Vytvoření datové továrny
Definujte proměnnou pro název skupiny prostředků, kterou použijete později v příkazech PowerShellu. Zkopírujte následující text příkazu do PowerShellu, zadejte název skupiny prostředků Azure v uvozovkách a spusťte příkaz. Příklad:
"adfrg".$resourceGroupName = "ADFTutorialResourceGroup";Pokud již skupina prostředků existuje, možná ji nebudete chtít přepsat. Přiřaďte proměnné
$resourceGroupNamejinou hodnotu a spusťte tento příkaz znovu.Definujte proměnnou pro umístění datové továrny.
$location = "East US"Pokud chcete vytvořit skupinu prostředků Azure, spusťte následující příkaz:
New-AzResourceGroup $resourceGroupName $locationPokud již skupina prostředků existuje, možná ji nebudete chtít přepsat. Přiřaďte proměnné
$resourceGroupNamejinou hodnotu a spusťte tento příkaz znovu.Definujte proměnnou pro název datové továrny.
Důležité
Aktualizujte název datové továrny tak, aby byl globálně jedinečný. Například ADFTutorialFactorySP1127.
$dataFactoryName = "ADFIncCopyTutorialFactory";Pokud chcete vytvořit datovou továrnu, spusťte následující rutinu Set-AzDataFactoryV2 :
Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location "East US" -Name $dataFactoryName
Mějte na paměti následující body:
Název datové továrny musí být globálně jedinečný. Pokud se zobrazí následující chyba, změňte název a zkuste to znovu:
The specified Data Factory name 'ADFv2QuickStartDataFactory' is already in use. Data Factory names must be globally unique.Aby bylo možné vytvářet instance služby Data Factory, uživatelský účet, který používáte k přihlášení k Azure, musí být členem role přispěvatele nebo vlastníka nebo správcem Azure předplatného.
Seznam Azure oblastí, ve kterých je služba Data Factory aktuálně dostupná, vyberte oblasti, které vás zajímají, na následující stránce a rozbalte Analytics a vyhledejte Data Factory: Products available by region. Úložiště dat (Storage, SQL Database, Azure SQL Managed Instance atd.) a výpočty (Azure HDInsight atd.) používané datová továrnou můžou být v jiných oblastech.
Vytvoření propojených služeb
V datové továrně vytvoříte propojené služby, abyste svá úložiště dat a výpočetní služby spojili s datovou továrnou. V této části vytvoříte propojené služby s účtem úložiště a službou SQL Database.
Vytvořte propojenou službu úložiště
Ve složce C:\ADF vytvořte soubor JSON s názvem AzureStorageLinkedService.json s následujícím kódem. (Pokud složka ADF ještě neexistuje, vytvořte ji.)
<accountName>Před uložením souboru nahraďte<accountKey>názvem a klíčem vašeho účtu úložiště.{ "name": "AzureStorageLinkedService", "properties": { "type": "AzureStorage", "typeProperties": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>" } } }V PowerShellu přejděte do složky ADF.
Spuštěním rutiny Set-AzDataFactoryV2LinkedService vytvořte propojenou službu AzureStorageLinkedService. V následujícím příkladu předáte hodnoty pro parametry ResourceGroupName a DataFactoryName:
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"Tady je ukázkový výstup:
LinkedServiceName : AzureStorageLinkedService ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> Properties : Microsoft.Azure.Management.DataFactory.Models.AzureStorageLinkedService
Vytvoření propojené služby databáze SQL
Ve složce C:\ADF vytvořte soubor JSON s názvem AzureSQLDatabaseLinkedService.json s následujícím kódem. (Pokud složka ADF ještě neexistuje, vytvořte ji.) Před uložením souboru nahraďte <název> serveru a <> databáze názvem vašeho serveru a databáze. cs-CZ: Musíte také nakonfigurovat Azure SQL Server tak, aby udělil přístup ke spravované identitě vaší datové továrny.
{ "name": "AzureSqlDatabaseLinkedService", "properties": { "type": "AzureSqlDatabase", "typeProperties": { "connectionString": "Server=tcp:<your-server-name>.database.windows.net,1433;Database=<your-database-name>;" }, "authenticationType": "ManagedIdentity", "annotations": [] } }V PowerShellu přejděte do složky ADF.
Spuštěním rutiny Set-AzDataFactoryV2LinkedService vytvořte propojenou službu AzureSQLDatabaseLinkedService.
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureSQLDatabaseLinkedService" -File ".\AzureSQLDatabaseLinkedService.json"Tady je ukázkový výstup:
LinkedServiceName : AzureSQLDatabaseLinkedService ResourceGroupName : ADF DataFactoryName : incrementalloadingADF Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlDatabaseLinkedService ProvisioningState :
Vytvoření datových sad
V tomto kroku vytvoříte datové sady, které reprezentují data zdroje a jímky.
Vytvoření zdrojové datové sady
Ve stejné složce vytvořte soubor JSON s názvem SourceDataset.json a s následujícím obsahem:
{ "name": "SourceDataset", "properties": { "type": "AzureSqlTable", "typeProperties": { "tableName": "data_source_table" }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" } } }V tomto kurzu se používá tabulka s názvem data_source_table. Pokud používáte tabulku s jiným názvem, nahraďte ho.
Spuštěním rutiny Set-AzDataFactoryV2Dataset vytvořte datovou sadu SourceDataset.
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SourceDataset" -File ".\SourceDataset.json"Tady je ukázkový výstup této cmdlet rutiny:
DatasetName : SourceDataset ResourceGroupName : ADF DataFactoryName : incrementalloadingADF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlTableDataset
Vytvoření datové sady jímky
Ve stejné složce vytvořte soubor JSON s názvem SinkDataset.json a s následujícím obsahem:
{ "name": "SinkDataset", "properties": { "type": "AzureBlob", "typeProperties": { "folderPath": "adftutorial/incrementalcopy", "fileName": "@CONCAT('Incremental-', pipeline().RunId, '.txt')", "format": { "type": "TextFormat" } }, "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" } } }Důležité
Tento kód předpokládá, že máte ve vašem úložišti blobů kontejner s názvem
adftutorial. Pokud tento kontejner neexistuje, vytvořte ho nebo použijte název existujícího kontejneru. Výstupní složkaincrementalcopyse v kontejneru vytvoří automaticky, pokud ještě neexistuje. V tomto kurzu se název souboru generuje dynamicky pomocí výrazu@CONCAT('Incremental-', pipeline().RunId, '.txt').Spuštěním rutiny Set-AzDataFactoryV2Dataset vytvořte datovou sadu SinkDataset.
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SinkDataset" -File ".\SinkDataset.json"Tady je ukázkový výstup této cmdlet rutiny:
DatasetName : SinkDataset ResourceGroupName : ADF DataFactoryName : incrementalloadingADF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureBlobDataset
Vytvoření datové sady pro vodoznak
V tomto kroku vytvoříte datovou sadu pro uložení hodnoty horní meze.
Ve stejné složce vytvořte soubor JSON s názvem WatermarkDataset.json a s následujícím obsahem:
{ "name": " WatermarkDataset ", "properties": { "type": "AzureSqlTable", "typeProperties": { "tableName": "watermarktable" }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" } } }Spuštěním rutiny Set-AzDataFactoryV2Dataset vytvořte datovou sadu WatermarkDataset.
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "WatermarkDataset" -File ".\WatermarkDataset.json"Tady je ukázkový výstup této cmdlet rutiny:
DatasetName : WatermarkDataset ResourceGroupName : ADF DataFactoryName : incrementalloadingADF Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.AzureSqlTableDataset
Vytvořit kanál
V tomto kurzu vytvoříte kanál se dvěma aktivitami vyhledávání, jednou aktivita Copy a jednou aktivitou StoredProcedure zřetězeným v jednom kanálu.
Ve stejné složce vytvořte soubor JSON s názvem IncrementalCopyPipeline.json s následujícím obsahem:
{ "name": "IncrementalCopyPipeline", "properties": { "activities": [ { "name": "LookupOldWaterMarkActivity", "type": "Lookup", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "select * from watermarktable" }, "dataset": { "referenceName": "WatermarkDataset", "type": "DatasetReference" } } }, { "name": "LookupNewWaterMarkActivity", "type": "Lookup", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "select MAX(LastModifytime) as NewWatermarkvalue from data_source_table" }, "dataset": { "referenceName": "SourceDataset", "type": "DatasetReference" } } }, { "name": "IncrementalCopyActivity", "type": "Copy", "typeProperties": { "source": { "type": "SqlSource", "sqlReaderQuery": "select * from data_source_table where LastModifytime > '@{activity('LookupOldWaterMarkActivity').output.firstRow.WatermarkValue}' and LastModifytime <= '@{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}'" }, "sink": { "type": "BlobSink" } }, "dependsOn": [ { "activity": "LookupNewWaterMarkActivity", "dependencyConditions": [ "Succeeded" ] }, { "activity": "LookupOldWaterMarkActivity", "dependencyConditions": [ "Succeeded" ] } ], "inputs": [ { "referenceName": "SourceDataset", "type": "DatasetReference" } ], "outputs": [ { "referenceName": "SinkDataset", "type": "DatasetReference" } ] }, { "name": "StoredProceduretoWriteWatermarkActivity", "type": "SqlServerStoredProcedure", "typeProperties": { "storedProcedureName": "usp_write_watermark", "storedProcedureParameters": { "LastModifiedtime": {"value": "@{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}", "type": "datetime" }, "TableName": { "value":"@{activity('LookupOldWaterMarkActivity').output.firstRow.TableName}", "type":"String"} } }, "linkedServiceName": { "referenceName": "AzureSQLDatabaseLinkedService", "type": "LinkedServiceReference" }, "dependsOn": [ { "activity": "IncrementalCopyActivity", "dependencyConditions": [ "Succeeded" ] } ] } ] } }Spuštěním rutiny Set-AzDataFactoryV2Pipeline vytvořte kanál IncrementalCopyPipeline.
Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "IncrementalCopyPipeline" -File ".\IncrementalCopyPipeline.json"Tady je ukázkový výstup:
PipelineName : IncrementalCopyPipeline ResourceGroupName : ADF DataFactoryName : incrementalloadingADF Activities : {LookupOldWaterMarkActivity, LookupNewWaterMarkActivity, IncrementalCopyActivity, StoredProceduretoWriteWatermarkActivity} Parameters :
Spuštění kanálu
Spusťte kanál IncrementalCopyPipeline pomocí rutiny Invoke-AzDataFactoryV2Pipeline . Nahraďte zástupné znaky vlastním názvem skupiny prostředků a názvem datové fabriky.
$RunId = Invoke-AzDataFactoryV2Pipeline -PipelineName "IncrementalCopyPipeline" -ResourceGroupName $resourceGroupName -dataFactoryName $dataFactoryNameSpuštěním rutiny Get-AzDataFactoryV2ActivityRun zkontrolujte stav kanálu, dokud se nezobrazí všechny aktivity, které byly úspěšně spuštěny. Zástupné znaky nahraďte vlastním odpovídajícím časem pro parametry RunStartedAfter a RunStartedBefore. V tomto kurzu se používá -RunStartedAfter "2017/09/14" a -RunStartedBefore "2017/09/15".
Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $RunId -RunStartedAfter "<start time>" -RunStartedBefore "<end time>"Tady je ukázkový výstup:
ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : LookupNewWaterMarkActivity PipelineRunId : d4bf3ce2-5d60-43f3-9318-923155f61037 PipelineName : IncrementalCopyPipeline Input : {source, dataset} Output : {NewWatermarkvalue} LinkedServiceName : ActivityRunStart : 9/14/2017 7:42:42 AM ActivityRunEnd : 9/14/2017 7:42:50 AM DurationInMs : 7777 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : LookupOldWaterMarkActivity PipelineRunId : d4bf3ce2-5d60-43f3-9318-923155f61037 PipelineName : IncrementalCopyPipeline Input : {source, dataset} Output : {TableName, WatermarkValue} LinkedServiceName : ActivityRunStart : 9/14/2017 7:42:42 AM ActivityRunEnd : 9/14/2017 7:43:07 AM DurationInMs : 25437 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : IncrementalCopyActivity PipelineRunId : d4bf3ce2-5d60-43f3-9318-923155f61037 PipelineName : IncrementalCopyPipeline Input : {source, sink} Output : {dataRead, dataWritten, rowsCopied, copyDuration...} LinkedServiceName : ActivityRunStart : 9/14/2017 7:43:10 AM ActivityRunEnd : 9/14/2017 7:43:29 AM DurationInMs : 19769 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : StoredProceduretoWriteWatermarkActivity PipelineRunId : d4bf3ce2-5d60-43f3-9318-923155f61037 PipelineName : IncrementalCopyPipeline Input : {storedProcedureName, storedProcedureParameters} Output : {} LinkedServiceName : ActivityRunStart : 9/14/2017 7:43:32 AM ActivityRunEnd : 9/14/2017 7:43:47 AM DurationInMs : 14467 Status : Succeeded Error : {errorCode, message, failureType, target}
Kontrola výsledků
V úložišti blobů (cílové úložiště) uvidíte, že data byla zkopírována do souboru definovaného v SinkDataset. V aktuálním kurzu má tento soubor název
Incremental- d4bf3ce2-5d60-43f3-9318-923155f61037.txt. Otevřete tento soubor. Zobrazí se záznamy, které jsou stejné jako data v databázi SQL.1,aaaa,2017-09-01 00:56:00.0000000 2,bbbb,2017-09-02 05:23:00.0000000 3,cccc,2017-09-03 02:36:00.0000000 4,dddd,2017-09-04 03:21:00.0000000 5,eeee,2017-09-05 08:06:00.0000000Zkontrolujte nejnovější hodnotu z
watermarktable. Uvidíte, že hodnota vodotisku byla aktualizována.Select * from watermarktableTady je ukázkový výstup:
NázevTabulky Hodnota vodoznaku tabulka_zdrojů_dat 2017-09-05 8:06:00.000
Vložte data do úložiště zdrojových dat pro ověření načítání rozdílových dat.
Do databáze SQL (úložiště zdroje dat) vložte nová data.
INSERT INTO data_source_table VALUES (6, 'newdata','9/6/2017 2:23:00 AM') INSERT INTO data_source_table VALUES (7, 'newdata','9/7/2017 9:01:00 AM')Aktualizovaná data v databázi SQL vypadají takto:
PersonID | Name | LastModifytime -------- | ---- | -------------- 1 | aaaa | 2017-09-01 00:56:00.000 2 | bbbb | 2017-09-02 05:23:00.000 3 | cccc | 2017-09-03 02:36:00.000 4 | dddd | 2017-09-04 03:21:00.000 5 | eeee | 2017-09-05 08:06:00.000 6 | newdata | 2017-09-06 02:23:00.000 7 | newdata | 2017-09-07 09:01:00.000Znovu spusťte kanál IncrementalCopyPipeline pomocí rutiny Invoke-AzDataFactoryV2Pipeline . Nahraďte zástupné znaky vlastním názvem skupiny prostředků a názvem datové fabriky.
$RunId = Invoke-AzDataFactoryV2Pipeline -PipelineName "IncrementalCopyPipeline" -ResourceGroupName $resourceGroupName -dataFactoryName $dataFactoryNameSpuštěním rutiny Get-AzDataFactoryV2ActivityRun zkontrolujte stav kanálu, dokud se nezobrazí všechny aktivity, které byly úspěšně spuštěny. Zástupné znaky nahraďte vlastním odpovídajícím časem pro parametry RunStartedAfter a RunStartedBefore. V tomto kurzu se používá -RunStartedAfter "2017/09/14" a -RunStartedBefore "2017/09/15".
Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $RunId -RunStartedAfter "<start time>" -RunStartedBefore "<end time>"Tady je ukázkový výstup:
ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : LookupNewWaterMarkActivity PipelineRunId : 2fc90ab8-d42c-4583-aa64-755dba9925d7 PipelineName : IncrementalCopyPipeline Input : {source, dataset} Output : {NewWatermarkvalue} LinkedServiceName : ActivityRunStart : 9/14/2017 8:52:26 AM ActivityRunEnd : 9/14/2017 8:52:58 AM DurationInMs : 31758 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : LookupOldWaterMarkActivity PipelineRunId : 2fc90ab8-d42c-4583-aa64-755dba9925d7 PipelineName : IncrementalCopyPipeline Input : {source, dataset} Output : {TableName, WatermarkValue} LinkedServiceName : ActivityRunStart : 9/14/2017 8:52:26 AM ActivityRunEnd : 9/14/2017 8:52:52 AM DurationInMs : 25497 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : IncrementalCopyActivity PipelineRunId : 2fc90ab8-d42c-4583-aa64-755dba9925d7 PipelineName : IncrementalCopyPipeline Input : {source, sink} Output : {dataRead, dataWritten, rowsCopied, copyDuration...} LinkedServiceName : ActivityRunStart : 9/14/2017 8:53:00 AM ActivityRunEnd : 9/14/2017 8:53:20 AM DurationInMs : 20194 Status : Succeeded Error : {errorCode, message, failureType, target} ResourceGroupName : ADF DataFactoryName : incrementalloadingADF ActivityName : StoredProceduretoWriteWatermarkActivity PipelineRunId : 2fc90ab8-d42c-4583-aa64-755dba9925d7 PipelineName : IncrementalCopyPipeline Input : {storedProcedureName, storedProcedureParameters} Output : {} LinkedServiceName : ActivityRunStart : 9/14/2017 8:53:23 AM ActivityRunEnd : 9/14/2017 8:53:41 AM DurationInMs : 18502 Status : Succeeded Error : {errorCode, message, failureType, target}V úložišti objektů blob uvidíte, že se vytvořil další soubor. V tomto kurzu je nový název souboru
Incremental-2fc90ab8-d42c-4583-aa64-755dba9925d7.txt. Otevřete tento soubor a uvidíte, že obsahuje dva řádky záznamů.Zkontrolujte nejnovější hodnotu z
watermarktable. Uvidíte, že hodnota vodoznaku byla znovu aktualizována.Select * from watermarktableUkázkový výstup:
NázevTabulky Hodnota vodoznaku tabulka_zdrojů_dat 2017-09-07 09:01:00.000
Související obsah
V tomto kurzu jste provedli následující kroky:
- Připravte úložiště dat pro uložení hodnoty vodoznaku.
- Vytvoření datové továrny
- Vytvoření propojených služeb
- Vytvořte zdroj, ukládání a značkované datové sady.
- Vytvořit kanál.
- Spusťte pipeline.
- Sledujte spuštění kanálu.
V tomto tutoriálu pipeline zkopírovala data z jedné tabulky v Azure SQL Database do úložiště objektů blob. V následujícím kurzu se dozvíte, jak zkopírovat data z více tabulek v databázi SQL Server do služby SQL Database.