Dela via


Självstudie: Synkronisera data från SQL Edge till Azure Blob Storage med hjälp av Azure Data Factory

Viktigt!

Azure SQL Edge dras tillbaka den 30 september 2025. Mer information och migreringsalternativ finns i meddelandet Om pensionering.

Kommentar

Azure SQL Edge stöder inte längre ARM64-plattformen.

Den här självstudien visar hur du använder Azure Data Factory för att inkrementellt synkronisera data till Azure Blob Storage från en tabell i en instans av Azure SQL Edge.

Innan du börjar

Om du inte redan har skapat en databas eller tabell i azure SQL Edge-distributionen använder du någon av följande metoder för att skapa en:

  • Använd SQL Server Management Studio eller Azure Data Studio för att ansluta till SQL Edge. Kör ett SQL-skript för att skapa databasen och tabellen.

  • Skapa en databas och tabell med hjälp av sqlcmd genom att ansluta direkt till SQL Edge-modulen. Mer information finns i Ansluta till databasmotorn med hjälp av sqlcmd.

  • Använd SQLPackage.exe för att distribuera en DAC-paketfil till SQL Edge-containern. Du kan automatisera den här processen genom att ange SqlPackage-fil-URI:n som en del av modulens önskade egenskapskonfiguration. Du kan också använda klientverktyget SqlPackage.exe direkt för att distribuera ett DAC-paket till SQL Edge.

    Information om hur du laddar ned SqlPackage.exe finns i Ladda ned och installera sqlpackage. Följande är några exempelkommandon för SqlPackage.exe. Mer information finns i dokumentationen om SqlPackage.exe.

    Skapa ett DAC-paket

    sqlpackage /Action:Extract /SourceConnectionString:"Data Source=<Server_Name>,<port>;Initial Catalog=<DB_name>;User ID=<user>;Password=<password>" /TargetFile:<dacpac_file_name>
    

    Använda ett DAC-paket

    sqlpackage /Action:Publish /Sourcefile:<dacpac_file_name> /TargetServerName:<Server_Name>,<port> /TargetDatabaseName:<DB_Name> /TargetUser:<user> /TargetPassword:<password>
    

Skapa en SQL-tabell och -procedur för att lagra och uppdatera vattenstämpelnivåerna

En vattenstämpeltabell används för att lagra den senaste tidsstämpeln upp till vilken data redan har synkroniserats med Azure Storage. En lagrad transact-SQL-procedur (T-SQL) används för att uppdatera vattenstämpeltabellen efter varje synkronisering.

Kör följande kommandon på SQL Edge-instansen:

CREATE TABLE [dbo].[watermarktable] (
    TableName VARCHAR(255),
    WatermarkValue DATETIME,
);
GO

CREATE PROCEDURE usp_write_watermark @timestamp DATETIME,
    @TableName VARCHAR(50)
AS
BEGIN
    UPDATE [dbo].[watermarktable]
    SET [WatermarkValue] = @timestamp
    WHERE [TableName] = @TableName;
END
GO

Skapa en Data Factory-pipeline

I det här avsnittet skapar du en Azure Data Factory-pipeline för att synkronisera data till Azure Blob Storage från en tabell i Azure SQL Edge.

Skapa en datafabrik med hjälp av Användargränssnittet för Data Factory

Skapa en datafabrik genom att följa anvisningarna i den här självstudien.

Skapa en Data Factory-pipeline

  1. På sidan Kom igång i Data Factory-användargränssnittet väljer du Skapa pipeline.

    Skärmbild av skapa en Data Factory-pipeline.

  2. På sidan Allmänt i fönstret Egenskaper för pipelinen anger du PeriodicSync som namn.

  3. Lägg till uppslagsaktiviteten för att hämta det gamla vattenstämpelvärdet. I fönstret Aktiviteter expanderar du Allmänt och drar uppslagsaktiviteten till pipelinedesignytan. Ändra namnet på aktiviteten till OldWatermark.

    Skärmbild av att lägga till den gamla vattenstämpelsökningen.

  4. Växla till fliken Inställningar och välj Nytt för Källdatauppsättning. Nu ska du skapa en datauppsättning som representerar data i vattenstämpeltabellen. Den här tabellen innehåller den gamla vattenstämpeln som användes i den tidigare kopieringen.

  5. I fönstret Ny datauppsättning väljer du Azure SQL Server och sedan Fortsätt.

  6. I fönstret Ange egenskaper för datauppsättningen går du till Namn och anger WatermarkDataset.

  7. För Länkad tjänst väljer du Ny och slutför sedan följande steg:

    1. Under Namn anger du SQLDBEdgeLinkedService.

    2. Under Servernamn anger du din SQL Edge-serverinformation.

    3. Välj ditt databasnamn i listan.

    4. Ange användarnamn och lösenord.

    5. Om du vill testa anslutningen till SQL Edge-instansen väljer du Testa anslutning.

    6. Välj Skapa.

      Skärmbild av hur du skapar en länkad tjänst.

    7. Välj OK.

  8. På fliken Inställningar väljer du Redigera.

  9. På fliken Anslutning väljer du [dbo].[watermarktable] tabell. Om du vill förhandsgranska data i tabellen väljer du Förhandsgranska data.

  10. Växla till pipelineredigeraren genom att välja fliken pipeline överst eller genom att välja namnet på pipelinen i trädvyn till vänster. I egenskapsfönstret för uppslagsaktiviteten bekräftar du att WatermarkDataset har valts i listan Källdatauppsättning .

  11. I fönstret Aktiviteter expanderar du Allmänt och drar en annan sökningsaktivitet till pipelinedesignytan. Ange namnet till NewWatermarkfliken Allmänt i egenskapsfönstret. Den här uppslagsaktiviteten hämtar det nya vattenstämpelvärdet från tabellen som innehåller källdata så att den kan kopieras till målet.

  12. I egenskapsfönstret för den andra sökningsaktiviteten växlar du till fliken Inställningar och väljer Ny för att skapa en datauppsättning som pekar på källtabellen som innehåller det nya vattenstämpelvärdet.

  13. I fönstret Ny datauppsättning väljer du SQL Edge-instans och väljer sedan Fortsätt.

    1. I fönstret Ange egenskaper , under Namn, anger du SourceDataset. Under Länkad tjänst väljer du SQLDBEdgeLinkedService.

    2. Under Tabell väljer du den tabell som du vill synkronisera. Du kan också ange en fråga för den här datamängden enligt beskrivningen senare i den här självstudien. Frågan har företräde framför den tabell som du anger i det här steget.

    3. Välj OK.

  14. Växla till pipelineredigeraren genom att välja fliken pipeline överst eller genom att välja namnet på pipelinen i trädvyn till vänster. I egenskapsfönstret för uppslagsaktiviteten bekräftar du att SourceDataset har valts i listan Källdatauppsättning .

  15. Välj Fråga under Använd fråga. Uppdatera tabellnamnet i följande fråga och ange sedan frågan. Du väljer bara det maximala värdet timestamp för i tabellen. Se till att endast välja Första raden.

    SELECT MAX(timestamp) AS NewWatermarkValue
    FROM [TableName];
    

    Skärmbild av en select-fråga.

  16. I fönstret Aktiviteter expanderar du Flytta och transformera och drar aktiviteten Kopiera från fönstret Aktiviteter till designerytan. Ange namnet på aktiviteten till IncrementalCopy.

  17. Anslut båda sökningsaktiviteterna till kopieringsaktiviteten genom att dra den gröna knappen som är ansluten till sökningsaktiviteterna till kopieringsaktiviteten. Släpp musknappen när du ser kantfärgen på aktiviteten Kopiera ändras till blå.

  18. Välj aktiviteten Kopiera och bekräfta att du ser egenskaperna för aktiviteten i fönstret Egenskaper.

  19. Växla till fliken Källa i fönstret Egenskaper och slutför följande steg:

    1. I rutan Källdatauppsättning väljer du SourceDataset.

    2. Under Använd fråga väljer du Fråga.

    3. Ange SQL-frågan i rutan Fråga . Här är en exempelfråga:

    SELECT *
    FROM TemperatureSensor
    WHERE timestamp > '@{activity(' OldWaterMark ').output.firstRow.WatermarkValue}'
        AND timestamp <= '@{activity(' NewWaterMark ').output.firstRow.NewWatermarkvalue}';
    
  20. På fliken Mottagare väljer du Nytt under Datauppsättning för mottagare.

  21. I den här självstudien är datalagret för mottagare ett Azure Blob Storage-datalager. Välj Azure Blob Storage och välj sedan Fortsätt i fönstret Ny datauppsättning .

  22. I fönstret Välj format väljer du formatet för dina data och väljer sedan Fortsätt.

  23. I fönstret Ange egenskaper under Namn anger du SinkDataset. Under Länkad tjänst väljer du Ny. Nu ska du skapa en anslutning (en länkad tjänst) till Azure Blob Storage.

  24. I fönstret Ny länkad tjänst (Azure Blob Storage) utför du följande steg:

    1. I rutan Namn anger du AzureStorageLinkedService.

    2. Under Lagringskontonamn väljer du Azure Storage-kontot för din Azure-prenumeration.

    3. Testa anslutningen och välj sedan Slutför.

  25. I fönstret Ange egenskaper bekräftar du att AzureStorageLinkedService har valts under Länkad tjänst. Välj Skapa och OK.

  26. fliken Mottagare väljer du Redigera.

  27. Gå till fliken Anslutning i SinkDataset och slutför följande steg:

    1. Under Filsökväg anger du asdedatasync/incrementalcopy, där asdedatasync är namnet på blobcontainern och incrementalcopy är mappnamnet. Skapa containern om den inte finns eller använd 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äg för att navigera till en mapp i en blobcontainer.

    2. För fildelen av filsökvägen väljer du Lägg till dynamiskt innehåll [Alt+P] och anger @CONCAT('Incremental-', pipeline().RunId, '.txt') sedan i fönstret som öppnas. Välj Slutför. Filnamnet genereras dynamiskt av uttrycket. Varje pipelinekörning har ett unikt ID. Kopieringsaktiviteten använder körnings-ID för att generera filnamnet.

  28. Växla till pipelineredigeraren genom att välja fliken pipeline överst eller genom att välja namnet på pipelinen i trädvyn till vänster.

  29. I fönstret Aktiviteter expanderar du Allmänt och drar aktiviteten Lagrad procedur från fönstret Aktiviteter till pipelinedesignytan. Anslut de gröna (lyckade) utdata från aktiviteten Kopiera till aktiviteten Lagrad procedur.

  30. Välj Lagrad proceduraktivitet i pipelinedesignern och ändra namnet till SPtoUpdateWatermarkActivity.

  31. Växla till fliken SQL-konto och välj *QLDBEdgeLinkedService under Länkad tjänst.

  32. Växla till fliken Lagrad procedur och slutför följande steg:

    1. Under Namn på lagrad procedur väljer du [dbo].[usp_write_watermark].

    2. Om du vill ange värden för parametrarna för lagrad procedur väljer du Importera parameter och anger följande värden för parametrarna:

    Namn Typ Värde
    LastModifiedTime Datum/tid @{activity('NewWaterMark').output.firstRow.NewWatermarkvalue}
    TableName String @{activity('OldWaterMark').output.firstRow.TableName}
  33. Om du vill verifiera pipelineinställningarna väljer du Verifiera i verktygsfältet. Kontrollera att det inte finns några verifieringsfel. Om du vill stänga fönstret PipelineVerifieringsrapport väljer du >>.

  34. Publicera entiteterna (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 som bekräftar att publiceringsåtgärden har slutförts.

Utlösa en pipeline baserat på ett schema

  1. I verktygsfältet pipeline väljer du Lägg till utlösare, ny /redigera och sedan Ny.

  2. Ge utlösaren namnet HourlySync. Under Typ väljer du Schema. Ange Upprepning till var 1 timme.

  3. Välj OK.

  4. Välj Publicera alla.

  5. Välj Utlös nu.

  6. Växla till fliken Övervaka till vänster. Du kan se status för den pipelinekörning som utlöstes av den manuella utlösaren. Om du vill uppdatera listan väljer du Refresh (Uppdatera).

  • Azure Data Factory-pipelinen i den här självstudien kopierar data från en tabell på en SQL Edge-instans till en plats i Azure Blob Storage en gång i timmen. Mer information om hur du använder Data Factory i andra scenarier finns i de här självstudierna.