Sdílet prostřednictvím


Kurz: Synchronizace dat z SQL Edge do úložiště objektů blob v Azure pomocí Azure Data Factory

Důležité

Azure SQL Edge bude vyřazeno 30. září 2025. Další informace a možnosti migrace najdete v oznámení o vyřazení.

Poznámka:

Azure SQL Edge už nepodporuje platformu ARM64.

V tomto kurzu se dozvíte, jak pomocí služby Azure Data Factory přírůstkově synchronizovat data do služby Azure Blob Storage z tabulky v instanci Azure SQL Edge.

Než začnete

Pokud jste ještě v nasazení Azure SQL Edge nevytvořili databázi nebo tabulku, vytvořte ji některou z těchto metod:

  • K připojení k SQL Edgi použijte SQL Server Management Studio nebo Azure Data Studio . Spuštěním skriptu SQL vytvořte databázi a tabulku.

  • Vytvořte databázi a tabulku pomocí sqlcmd tak, že se přímo připojíte k modulu SQL Edge. Další informace naleznete v tématu Připojení k databázovému stroji pomocí sqlcmd.

  • Pomocí SQLPackage.exe nasaďte soubor balíčku DAC do kontejneru SQL Edge. Tento proces můžete automatizovat zadáním identifikátoru URI souboru SqlPackage v rámci konfigurace požadovaných vlastností modulu. Můžete také přímo použít klientský nástroj SqlPackage.exe k nasazení balíčku DAC do SQL Edge.

    Informace o tom, jak stáhnout SqlPackage.exe, naleznete v tématu Stažení a instalace sqlpackage. Následuje několik ukázkových příkazů pro SqlPackage.exe. Další informace najdete v SqlPackage.exe dokumentaci.

    Vytvoření balíčku DAC

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

    Použití balíčku DAC

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

Vytvoření tabulky a procedury SQL pro ukládání a aktualizaci úrovní meze

Tabulka vodoznaků slouží k uložení posledního časového razítka, do kterého se data už synchronizovala se službou Azure Storage. Uložená procedura jazyka Transact-SQL (T-SQL) slouží k aktualizaci tabulky vodoznaků po každé synchronizaci.

V instanci SQL Edge spusťte tyto příkazy:

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

Vytvoření kanálu služby Data Factory

V této části vytvoříte kanál Azure Data Factory pro synchronizaci dat do úložiště objektů blob v Azure z tabulky v Azure SQL Edge.

Vytvoření datové továrny pomocí uživatelského rozhraní služby Data Factory

Vytvořte datovou továrnu podle pokynů v tomto kurzu.

Vytvoření kanálu služby Data Factory

  1. Na stránce Začínáme s uživatelským rozhraním služby Data Factory vyberte Vytvořit kanál.

    Snímek obrazovky s kanálem vytvoření služby Data Factory

  2. Na stránce Obecné v okně Vlastnosti kanálu zadejte pro název hodnotu PeriodicSync.

  3. Přidejte aktivitu Vyhledávání, abyste získali starou hodnotu meze. V podokně Aktivity rozbalte položku Obecné a přetáhněte aktivitu Vyhledávání na plochu návrháře kanálu. Změňte název aktivity na OldWatermark.

    Snímek obrazovky s přidáním starého vyhledávání vodoznaku

  4. Přepněte na kartu Nastavení a vyberte Nový pro zdrojovou datovou sadu. Teď vytvoříte datovou sadu, která bude představovat data v tabulce vodoznaků. Tato tabulka obsahuje starou mez, která se použila v předchozí operaci kopírování.

  5. V okně Nová datová sada vyberte Azure SQL Server a pak vyberte Pokračovat.

  6. V okně Nastavit vlastnosti datové sady v části Název zadejte WatermarkDataset.

  7. V části Propojená služba vyberte Nový a pak proveďte následující kroky:

    1. V části Název zadejte SQLDBEdgeLinkedService.

    2. V části Název serveru zadejte podrobnosti o serveru SQL Edge.

    3. Ze seznamu vyberte název databáze.

    4. Zadejte svoje uživatelské jméno a heslo.

    5. Pokud chcete otestovat připojení k instanci SQL Edge, vyberte Test připojení.

    6. Vyberte Vytvořit.

      Snímek obrazovky s vytvořením propojené služby

    7. Vyberte OK.

  8. Na kartě Nastavení vyberte Upravit.

  9. Na kartě Připojení vyberte [dbo].[watermarktable] položku Tabulka. Pokud chcete zobrazit náhled dat v tabulce, vyberte Náhled dat.

  10. Přepněte do editoru kanálů tak, že vyberete kartu kanálu v horní části nebo vyberete název kanálu ve stromovém zobrazení vlevo. V okně vlastností aktivity Vyhledávání ověřte, že je v seznamu zdrojových datových sad vybraná sada WatermarkDataset.

  11. V podokně Aktivity rozbalte položku Obecné a přetáhněte další aktivitu Vyhledávání na plochu návrháře kanálu. Nastavte název na NewWatermark na kartě Obecné v okně vlastností. Tato aktivita vyhledávání získá novou hodnotu meze z tabulky, která obsahuje zdrojová data, aby bylo možné ji zkopírovat do cíle.

  12. V okně vlastností druhé aktivity vyhledávání přepněte na kartu Nastavení a výběrem možnosti Nový vytvořte datovou sadu, která bude odkazovat na zdrojovou tabulku, která obsahuje novou hodnotu meze.

  13. V okně Nová datová sada vyberte instanci SQL Edge a pak vyberte Pokračovat.

    1. V okně Nastavit vlastnosti v části Název zadejte SourceDataset. V části Propojená služba vyberte SQLDBEdgeLinkedService.

    2. V části Tabulka vyberte tabulku, kterou chcete synchronizovat. Můžete také zadat dotaz pro tuto datovou sadu, jak je popsáno dále v tomto kurzu. Dotaz má přednost před tabulkou, kterou zadáte v tomto kroku.

    3. Vyberte OK.

  14. Přepněte do editoru kanálů tak, že vyberete kartu kanálu v horní části nebo vyberete název kanálu ve stromovém zobrazení vlevo. V okně vlastností aktivity Vyhledávání ověřte, že je v seznamu zdrojových datových sad vybraná vlastnost SourceDataset.

  15. V části Použít dotaz vyberte Dotaz. Aktualizujte název tabulky v následujícím dotazu a zadejte dotaz. Vybíráte jenom maximální hodnotu timestamp z tabulky. Nezapomeňte vybrat jenom první řádek.

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

    Snímek obrazovky s výběrovým dotazem

  16. V podokně Aktivity rozbalte položku Přesunout a transformovat a přetáhněte aktivitu kopírování z podokna Aktivity na plochu návrháře. Nastavte název aktivity na IncrementalCopy.

  17. Propojte obě aktivity vyhledávání s aktivitou kopírování přetažením zeleného tlačítka připojeného k aktivitám vyhledávání na aktivitu kopírování. Uvolněte tlačítko myši, když uvidíte barvu ohraničení aktivita Copy změnit na modrou.

  18. Vyberte aktivita Copy a potvrďte, že se v okně Vlastnosti zobrazí vlastnosti aktivity.

  19. V okně Vlastnosti přepněte na kartu Zdroj a proveďte následující kroky:

    1. V poli Zdrojová datová sada vyberte SourceDataset.

    2. V části Použít dotaz vyberte Dotaz.

    3. Do pole Dotaz zadejte dotaz SQL. Tady je ukázkový dotaz:

    SELECT *
    FROM TemperatureSensor
    WHERE timestamp > '@{activity(' OldWaterMark ').output.firstRow.WatermarkValue}'
        AND timestamp <= '@{activity(' NewWaterMark ').output.firstRow.NewWatermarkvalue}';
    
  20. Na kartě Jímka vyberte Možnost Nový v části Datová sada jímky.

  21. V tomto kurzu je úložiště dat jímky úložiště dat Úložiště objektů blob v Azure. Vyberte Azure Blob Storage a pak v okně Nová datová sada vyberte Pokračovat.

  22. V okně Vybrat formát vyberte formát dat a pak vyberte Pokračovat.

  23. V okně Nastavit vlastnosti v části Název zadejte SinkDataset. V části Propojená služba vyberte Nový. Teď vytvoříte připojení (propojenou službu) ke službě Azure Blob Storage.

  24. V okně Nová propojená služba (Azure Blob Storage) proveďte následující kroky:

    1. Do pole Název zadejte AzureStorageLinkedService.

    2. V části Název účtu úložiště vyberte účet úložiště Azure pro vaše předplatné Azure.

    3. Otestujte připojení a pak vyberte Dokončit.

  25. V okně Nastavit vlastnosti ověřte, že je v části Propojená služba vybraná služba AzureStorageLinkedService. Vyberte Vytvořit a OK.

  26. Na kartě Jímka vyberte Upravit.

  27. Přejděte na kartu Připojení sinkDataset a proveďte následující kroky:

    1. V části Cesta k souboru zadejte asdedatasync/incrementalcopy, kde asdedatasync je název kontejneru objektů blob a incrementalcopy je název složky. Vytvořte kontejner, pokud neexistuje, nebo použijte název existujícího kontejneru. Azure Data Factory automaticky vytvoří výstupní složku incrementalcopy , pokud neexistuje. Můžete také použít tlačítko Procházet u možnosti Cesta k souboru a přejít ke složce v kontejneru objektů blob.

    2. V části Soubor v cestě k souboru vyberte Přidat dynamický obsah [Alt+P] a pak zadejte @CONCAT('Incremental-', pipeline().RunId, '.txt') do okna, které se otevře. Vyberte Dokončit. Název souboru se dynamicky generuje výrazem. Každé spuštění kanálu má jedinečné ID. Aktivita kopírování používá ID spuštění k vygenerování názvu souboru.

  28. Přepněte do editoru kanálů tak, že vyberete kartu kanálu v horní části nebo vyberete název kanálu ve stromovém zobrazení vlevo.

  29. V podokně Aktivity rozbalte položku Obecné a přetáhněte aktivitu Uložená procedura z podokna Aktivity na plochu návrháře kanálu. Připojte zelený výstup (úspěch) aktivita Copy k aktivitě Uložená procedura.

  30. V návrháři kanálu vyberte aktivitu Uložená procedura a změňte jeho název na SPtoUpdateWatermarkActivity.

  31. Přepněte na kartu Účet SQL a v části Propojená služba vyberte *QLDBEdgeLinkedService.

  32. Přepněte na kartu Uložená procedura a proveďte tyto kroky:

    1. V části Název uložené procedury vyberte [dbo].[usp_write_watermark].

    2. Pokud chcete zadat hodnoty parametrů uložené procedury, vyberte Importovat parametr a zadejte tyto hodnoty parametrů:

    Name Typ Hodnota
    LastModifiedTime DateTime @{activity('NewWaterMark').output.firstRow.NewWatermarkvalue}
    TableName String @{activity('OldWaterMark').output.firstRow.TableName}
  33. Pokud chcete ověřit nastavení kanálu, vyberte Na panelu nástrojů možnost Ověřit . Ověřte, že se nezobrazí žádné chyby ověření. Chcete-li zavřít okno sestavy ověření kanálu, vyberte >>.

  34. Výběrem tlačítka Publikovat vše publikujte entity (propojené služby, datové sady a kanály) do služby Azure Data Factory. Počkejte, až se zobrazí zpráva s potvrzením, že operace publikování byla úspěšná.

Aktivace kanálu na základě plánu

  1. Na panelu nástrojů kanálu vyberte Přidat trigger, vyberte Nový/Upravit a pak vyberte Nový.

  2. Pojmenujte trigger HourlySync. V části Typ vyberte Plán. Nastavte opakování na každou 1 hodinu.

  3. Vyberte OK.

  4. Vyberte Publikovat vše.

  5. Vyberte aktivační událost.

  6. Vlevo přepněte na kartu Monitorování. Zobrazí se stav ručně aktivovaného spuštění kanálu. Seznam můžete aktualizovat kliknutím na Aktualizovat.

  • Kanál Služby Azure Data Factory v tomto kurzu kopíruje data z tabulky v instanci SQL Edge do umístění ve službě Azure Blob Storage jednou za hodinu. Další informace o používání služby Data Factory v jiných scénářích najdete v těchto kurzech.