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:
Azure Data Factory
Azure Synapse Analytics
Tips
Data Factory i Microsoft Fabric är nästa generations Azure Data Factory, med en enklare arkitektur, inbyggd AI och nya funktioner. Om dataintegrering är nytt för dig börjar du med Fabric Data Factory. Befintliga ADF-arbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.
I den här självstudien skapar du en Azure Data Factory med en pipeline som laddar deltadata från en tabell i Azure SQL Database till Azure Blob Storage.
I de här självstudierna går du igenom följande steg:
- Förbered datalagringen för att lagra värdet för vattenstämpeln.
- Skapa en datafabrik.
- Skapa länkade tjänster.
- Skapa datauppsättningar för källa, mottagare och vattenstämpel.
- Skapa en pipeline.
- Kör pipelinen.
- Övervaka pipelinekörningen.
- Granska resultat
- Lägg till mer data i källan.
- Kör pipelinen igen.
- Övervaka den andra pipelinekörningen
- Granska resultatet från den andra körningen
Översikt
Här är diagrammet över lösningen på hög nivå:
Här är några viktiga steg för att skapa den här lösningen:
Välj vattenstämpelkolumnen Markera en kolumn i källdatalagringen som går att använda för att dela upp de nya eller uppdaterade posterna för varje körning. Vanligtvis ökar data i den markerade kolumnen (till exempel last_modify_time elle ID) när rader skapas eller uppdateras. Det maximala värdet i den här kolumnen används som vattenstämpel.
Förbered en databas för att lagra vattenstämpelvärdet. I den här självstudien lagrar du vattenstämpelvärdet i en SQL-databas.
Skapa en pipeline med följande arbetsflöde:
Pipelinen i den här lösningen har följande aktiviteter:
- Skapa två sökningsaktiviteter. Använd den första sökningsaktiviteten för att hämta det sista vattenstämpelvärdet. Använd den andra sökningsaktiviteten för att hämta det nya vattenstämpelvärdet. Dessa vattenstämpelvärden skickas till Copy activity.
- Skapa en Copy activity som kopierar rader från källdatalagret med värdet för vattenstämpelkolumnen större än det gamla vattenstämpelvärdet och mindre än det nya vattenstämpelvärdet. Sedan kopieras deltadata från källdatalagringen till Blob-lagring som en ny fil.
- Skapa en StoredProcedure-aktivitet som uppdaterar vattenstämpelvärdet för den pipeline som körs nästa gång.
Om du inte har en Azure-prenumeration skapar du ett free-konto innan du börjar.
Förutsättningar
- Azure SQL Database. Du använder databasen som källa för datalagringen. Om du inte har någon databas i Azure SQL Database kan du läsa Skapa en databas i Azure SQL Database för steg för att skapa en.
- Azure Storage. Du använder blob-lagringen som datautmatningslager. Om du inte har något lagringskonto kan du läsa Skapa ett lagringskonto för steg för att skapa ett. Skapa en container med namnet adftutorial.
Skapa en datakällatabell i din SQL-databas
Öppna SQL Server Management Studio. Högerklicka på databasen i Server Explorer och välj Ny fråga.
Kör följande SQL-kommando mot din SQL-databas för att skapa en tabell med namnet
data_source_tablesom datakällagringen: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');I den här handledningen använder du LastModifytime som vattenstämpelkolumnen. Data i datakällagringen visas i följande tabell:
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
Skapa en annan tabell i SQL-databasen för att lagra värdet för högvattenmärket
Kör följande SQL-kommando mot din SQL-databas för att skapa en tabell med namnet
watermarktableför att lagra värdet för högvattenmärket:create table watermarktable ( TableName varchar(255), WatermarkValue datetime, );Ställ in standardvärdet för högvattenmärket med tabellnamnet på källdatalagret. I den här självstudien är tabellnamnet data_source_table.
INSERT INTO watermarktable VALUES ('data_source_table','1/1/2010 12:00:00 AM')Granska informationen i tabellen
watermarktable.Select * from watermarktableUtdata:
TableName | WatermarkValue ---------- | -------------- data_source_table | 2010-01-01 00:00:00.000
Skapa en lagrad procedur i din SQL-databas
Kör följande kommando för att skapa en lagrad procedur i din SQL-databas:
CREATE PROCEDURE usp_write_watermark @LastModifiedtime datetime, @TableName varchar(50)
AS
BEGIN
UPDATE watermarktable
SET [WatermarkValue] = @LastModifiedtime
WHERE [TableName] = @TableName
END
Skapa en datafabrik
Starta Microsoft Edge eller Google Chrome webbläsare. Data Factory-användargränssnittet stöds för närvarande endast i Microsoft Edge- och Google Chrome-webbläsare.
Välj Skapa en resurs>Analys>Datafabrik på den översta menyn:
På sidan Ny datafabrik anger du ADFIncCopyTutorialDF som namn.
Namnet på Azure Data Factory måste vara globalt unikt. Om du ser ett rött utropstecken med följande fel ändrar du namnet på datafabriken (till exempel dittnamn ADF Inc Copy TutorialDF) och provar att skapa igen. Se artikeln Data Factory – Namngivningsregler för namngivningsregler för Data Factory-artefakter.
Datafabriksnamnet "ADFIncCopyTutorialDF" är inte tillgängligt
Välj din Azure subscription där du vill skapa datafabriken.
Gör något av följande för resursgruppen:
Välj Använd befintlig och välj en befintlig resursgrupp i listrutan.
Välj Skapa ny och ange namnet på en resursgrupp.
Mer information om resursgrupper finns i Använda resursgrupper för att hantera dina Azure resurser.
Välj V2 som version.
Välj platsen för datafabriken. Endast platser som stöds visas i listrutan. Datalager (Azure Storage, Azure SQL Database, Azure SQL Managed Instance och så vidare) och beräkningar (HDInsight osv.) som används av datafabriken kan finnas i andra regioner.
Klicka på Skapa.
När skapandet har slutförts visas sidan Data Factory enligt bilden.
Välj Open på panelen Öppna Azure Data Factory Studio för att starta Azure Data Factory användargränssnittet på en separat flik.
Skapa en pipeline
I den här självstudien skapar du en pipeline med två sökningsaktiviteter, en Copy activity och en StoredProcedure-aktivitet som är länkad i en pipeline.
På startsidan för Data Factory-användargränssnittet klickar du på orchestrate-panelen.
I panelen Allmänt under Egenskaper anger du IncrementalCopyPipeline som Namn. Dölj sedan panelen genom att klicka på ikonen Egenskaper i det övre högra hörnet.
Vi lägger till den första sökningsaktiviteten för att hämta det gamla vattenstämpelvärdet. I Aktiviteter-verktygslådan expanderar du Allmänt och drar och släpper uppslagsaktiviteten till pipeline-designytan. Ändra namnet på aktiviteten till LookupOldWaterMarkActivity.
Växla till fliken Inställningar och klicka på + Ny för Källdatauppsättning. I det här steget skapar du en dataset som representerar data i watermarktable. Den här tabellen innehåller den gamla vattenstämpeln som användes i den tidigare kopieringen.
I fönstret Ny datauppsättning väljer du Azure SQL Database och klickar på Continue. Ett nytt fönster öppnas för datauppsättningen.
I fönstret Ange egenskaper för datamängden anger du WatermarkDataset som Namn.
För Länkad tjänst väljer du Ny och utför sedan följande steg:
Ange AzureSqlDatabaseLinkedService som Namn.
Välj din server för Servernamn.
Välj ditt databasnamn i listrutan.
Ange användarnamnet och lösenordet.
Om du vill testa anslutningen till SQL-databasen klickar du på Testa anslutning.
Klicka på Slutför.
Bekräfta att AzureSqlDatabaseLinkedService har valts för länkad tjänst.
Välj Slutför.
På fliken Anslutning väljer du [dbo].[ watermarktable] för Table. Om du vill förhandsgranska data i tabellen klickar du på Förhandsgranska data.
Växla till pipeline-redigeringsprogrammet genom att klicka på pipelinefliken högst upp eller på pipelinenamnet i trädvyn till vänster. I egenskapsfönstret för uppslagsaktiviteten bekräftar du att WatermarkDataset har valts för fältet Källdatauppsättning .
I verktygslådan Aktiviteter expanderar du Allmänt och drar och släpper en annan sökningsaktivitet till pipelinedesignytan och anger namnet till LookupNewWaterMarkActivity på fliken Allmänt i egenskapsfönstret. Den här sökningsaktiviteten hämtar det nya vattenstämpelvärdet från tabellen med källdata för att kopieras till destinationen.
I egenskapsfönstret för den andra uppslagsaktiviteten växlar du till fliken Inställningar och klickar på Ny. Du skapar en datauppsättning för att peka på källtabellen som innehåller det nya vattenstämpelvärdet (det högsta värdet för LastModifyTime).
I fönstret Ny datauppsättning väljer du Azure SQL Database och klickar på Continue.
I fönstret Ange egenskaper anger du SourceDataset som Namn. Välj AzureSqlDatabaseLinkedService för länkad tjänst.
Välj [dbo].[ data_source_table] för Tabell. Du kan ange en fråga för den här datauppsättningen senare under kursen. Frågan åsidosätter den tabell som du anger i det här steget.
Välj Slutför.
Växla till pipeline-redigeringsprogrammet genom att klicka på pipelinefliken högst upp eller på pipelinenamnet i trädvyn till vänster. I egenskapsfönstret för sökningsaktiviteten bekräftar du att SourceDataset har valts för fältet Källdatauppsättning .
Välj Fråga för fältet Använd fråga och ange följande fråga: du väljer bara det maximala värdet för LastModifytime från data_source_table. Kontrollera att du också har markerat endast första raden.
select MAX(LastModifytime) as NewWatermarkvalue from data_source_table
I verktygslådan Aktiviteter expanderar du Flytta och transformerar och drar och släpper aktiviteten Kopiera från verktygslådan Aktiviteter och anger namnet till IncrementalCopyActivity.
Anslut båda uppslagsaktiviteterna till Copy activity genom att dra knappen green kopplad till uppslagsaktiviteterna till Copy activity. Släpp musknappen när du ser kantfärgen på Copy activity ändras till blå.
Välj Copy activity och bekräfta att du ser egenskaperna för aktiviteten i fönstret Egenskaper.
Växla till fliken Källa i fönstret Egenskaper och gör följande:
Välj SourceDataset för fältet Källdatauppsättning .
Välj Fråga för fältet Använd fråga .
Ange följande SQL-fråga för fältet Fråga .
select * from data_source_table where LastModifytime > '@{activity('LookupOldWaterMarkActivity').output.firstRow.WatermarkValue}' and LastModifytime <= '@{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}'
Växla till fliken Mottagare och klicka på + Ny för fältet Datauppsättning för mottagare .
I den här självstudien är datalagret för mottagare av typen Azure Blob Storage. Välj därför Azure Blob Storage och klicka på Continue i fönstret Ny datauppsättning.
I fönstret Välj format väljer du formattypen för dina data och klickar på Fortsätt.
I fönstret Ange egenskaper anger du SinkDataset som Namn. För Länkad tjänst väljer du + Ny. I det här steget skapar du en anslutning (länkad tjänst) till din Azure Blob Storage.
Gör följande i fönstret Ny länkad tjänst (Azure Blob Storage):
- Ange AzureStorageLinkedService som Namn.
- Välj ditt Azure Storage konto för Lagringskontonamn.
- Testa anslutningen och klicka sedan på Slutför.
I fönstret Ange egenskaper bekräftar du att AzureStorageLinkedService har valts för länkad tjänst. Välj sedan Slutför.
Gå till fliken Anslutning i SinkDataset och gör följande:
- För fältet Filsökväg anger du adftutorial/incrementalcopy. adftutorial är namnet på blobcontainern och incrementalcopy är mappnamnet. Det här kodfragmentet förutsätter att du har en blobcontainer med namnet adftutorial i din blob-lagring. Skapa containern om den inte finns, eller ange namnet på en befintlig. Azure Data Factory skapar automatiskt utdatamappen incrementalcopy om den inte finns. Du kan också använda knappen Bläddra för filsökvägen för att navigera till en mapp i en blobcontainer.
- För fildelen av fältet Filsökväg väljer du Lägg till dynamiskt innehåll [Alt+P] och anger
@CONCAT('Incremental-', pipeline().RunId, '.txt')sedan i det öppnade fönstret. Välj sedan Slutför. Filnamnet genereras dynamiskt med uttrycket. Varje pipelinekörning har ett unikt ID. Copy activity använder körnings-ID:t för att generera filnamnet.
Växla till pipelineredigeraren genom att klicka på pipelinefliken längst upp eller genom att klicka på namnet på pipelinen i trädvyn till vänster.
I verktygslådan Aktiviteter expanderar du Allmänt och drar och släpper aktiviteten Lagrad procedur från verktygslådan Aktiviteter till pipelinedesignytan. Anslut de gröna (lyckade) utdata från kopieringsaktiviteten till aktiviteten Lagrad procedur .
Välj Lagrad proceduraktivitet i pipelinedesignern och ändra namnet till StoredProceduretoWriteWatermarkActivity.
Växla till fliken SQL-konto och välj AzureSqlDatabaseLinkedService för länkad tjänst.
Växla till fliken Lagrad procedur och gör följande:
Som Namn på lagrad procedur väljer du usp_write_watermark.
Om du vill ange värden för parametrarna för lagrad procedur klickar du på Importera parameter och anger följande värden för parametrarna:
Namn Typ Värde SenastÄndradTid Datum/tid @{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue} Tabellnamn Sträng @{activity('LookupOldWaterMarkActivity').output.firstRow.TableName}
Om du vill verifiera pipelineinställningarna klickar du på Verifiera i verktygsfältet. Kontrollera att det inte finns några verifieringsfel. Om du vill stänga fönstret Pipelineverifieringsrapport klickar du på >>.
Publicera entiteter (länkade tjänster, datauppsättningar och pipelines) till Azure Data Factory-tjänsten genom att välja knappen Publicera alla. Vänta tills du ser ett meddelande om att publiceringen är klar.
Utlös en pipelinekörning
Klicka på Lägg till utlösare i verktygsfältet och klicka på Utlös nu.
I fönstret Pipelinekörning väljer du Slutför.
Övervaka pipelinekörningen
Växla till fliken Övervaka till vänster. Du ser status för pipelinekörningen som utlöses av en manuell utlösare. Du kan använda länkar under kolumnen PIPELINE NAME för att visa körningsinformation och köra pipelinen igen.
För att se aktivitetskörningar som är associerade med pipelinekörningen, välj länken under kolumnen PIPELINE NAME. Om du vill ha mer information om aktivitetskörningarna väljer du länken Information (glasögonikonen) under kolumnen AKTIVITETSNAMN . Välj Alla pipelinekörningar överst för att gå tillbaka till sidan Pipelinekörningar. Om du vill uppdatera vyn väljer du Uppdatera.
Granska resultaten
Anslut till ditt Azure Storage-konto med hjälp av verktyg som Azure Storage Explorer. Kontrollera att en utdatafil skapas i mappen incrementalcopy i containern adftutorial .
Öppna utdatafilen och observera att alla data kopieras från data_source_table till blobfilen.
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.0000000Kontrollera det senaste värdet från
watermarktable. Du ser att vattenstämpelvärdet har uppdaterats.Select * from watermarktableHär är resultatet:
| TableName | WatermarkValue | | --------- | -------------- | | data_source_table | 2017-09-05 8:06:00.000 |
Lägg till mer data i källan
Infoga nya data i databasen (datakälllagret).
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')
Uppdaterade data i databasen är:
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.000
Utlös ytterligare en pipelinekörning
Växla till fliken Redigera . Klicka på pipelinen i trädvyn om den inte öppnas i designern.
Klicka på Lägg till utlösare i verktygsfältet och klicka på Utlös nu.
Övervaka den andra pipelinekörningen
Växla till fliken Övervaka till vänster. Du ser status för pipelinekörningen som utlöses av en manuell utlösare. Du kan använda länkar under kolumnen PIPELINE NAME för att visa aktivitetsinformation och köra pipelinen igen.
För att se aktivitetskörningar som är associerade med pipelinekörningen, välj länken under kolumnen PIPELINE NAME. Om du vill ha mer information om aktivitetskörningarna väljer du länken Information (glasögonikonen) under kolumnen AKTIVITETSNAMN . Välj Alla pipelinekörningar överst för att gå tillbaka till sidan Pipelinekörningar. Om du vill uppdatera vyn väljer du Uppdatera.
Verifiera det andra resultatet
I blob-lagringen ser du att en annan fil har skapats. I den här handledningen är det nya filnamnet
Incremental-<GUID>.txt. När du öppnar filen ser du att det finns två rader med poster i den.6,newdata,2017-09-06 02:23:00.0000000 7,newdata,2017-09-07 09:01:00.0000000Kontrollera det senaste värdet från
watermarktable. Du ser att vattenstämpelvärdet har uppdaterats igen.Select * from watermarktableExempel på utdata:
| TableName | WatermarkValue | | --------- | -------------- | | data_source_table | 2017-09-07 09:01:00.000 |
Relaterat innehåll
I den här självstudiekursen utförde du följande steg:
- Förbered datalagringen för att lagra värdet för vattenstämpeln.
- Skapa en datafabrik.
- Skapa länkade tjänster.
- Skapa datauppsättningar för källa, mottagare och vattenstämpel.
- Skapa en pipeline.
- Kör pipelinen.
- Övervaka pipelinekörningen.
- Granska resultat
- Lägg till mer data i källan.
- Kör pipelinen igen.
- Övervaka den andra pipelinekörningen
- Granska resultatet från den andra körningen
I den här självstudien kopierade pipelinen data från en enda tabell i SQL Database till Blob Storage. Gå vidare till följande självstudie för att lära dig hur du kopierar data från flera tabeller i en SQL Server databas till SQL Database.