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

Důležité

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 najdete v tématu Připojení 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. K nasazení balíčku DAC do SQL Edge můžete také přímo použít klientský nástroj SqlPackage.exe.

    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 naleznete v dokumentaci SqlPackage.exe.

    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.

    Screenshot of the create a Data Factory pipeline.

  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.

    Screenshot of adding the old watermark lookup.

  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.

      Screenshot of creating a linked service.

    7. Vyberte OK.

  8. Na kartě Nastavení vyberte Upravit.

  9. Na kartě Připojení ion 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];
    

    Screenshot of a select query.

  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í ion 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řipojení zelený výstup (úspěch) aktivita Copy do aktivity 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.

Další kroky

  • 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.