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
Na stránce Začínáme s uživatelským rozhraním služby Data Factory vyberte Vytvořit kanál.
Na stránce Obecné v okně Vlastnosti kanálu zadejte pro název hodnotu PeriodicSync.
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.
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í.
V okně Nová datová sada vyberte Azure SQL Server a pak vyberte Pokračovat.
V okně Nastavit vlastnosti datové sady v části Název zadejte WatermarkDataset.
V části Propojená služba vyberte Nový a pak proveďte následující kroky:
V části Název zadejte SQLDBEdgeLinkedService.
V části Název serveru zadejte podrobnosti o serveru SQL Edge.
Ze seznamu vyberte název databáze.
Zadejte svoje uživatelské jméno a heslo.
Pokud chcete otestovat připojení k instanci SQL Edge, vyberte Test připojení.
Vyberte Vytvořit.
Vyberte OK.
Na kartě Nastavení vyberte Upravit.
Na kartě Připojení vyberte
[dbo].[watermarktable]
položku Tabulka. Pokud chcete zobrazit náhled dat v tabulce, vyberte Náhled dat.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.
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.
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.
V okně Nová datová sada vyberte instanci SQL Edge a pak vyberte Pokračovat.
V okně Nastavit vlastnosti v části Název zadejte SourceDataset. V části Propojená služba vyberte SQLDBEdgeLinkedService.
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.
Vyberte OK.
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.
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];
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.
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.
Vyberte aktivita Copy a potvrďte, že se v okně Vlastnosti zobrazí vlastnosti aktivity.
V okně Vlastnosti přepněte na kartu Zdroj a proveďte následující kroky:
V poli Zdrojová datová sada vyberte SourceDataset.
V části Použít dotaz vyberte Dotaz.
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}';
Na kartě Jímka vyberte Možnost Nový v části Datová sada jímky.
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.
V okně Vybrat formát vyberte formát dat a pak vyberte Pokračovat.
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.
V okně Nová propojená služba (Azure Blob Storage) proveďte následující kroky:
Do pole Název zadejte AzureStorageLinkedService.
V části Název účtu úložiště vyberte účet úložiště Azure pro vaše předplatné Azure.
Otestujte připojení a pak vyberte Dokončit.
V okně Nastavit vlastnosti ověřte, že je v části Propojená služba vybraná služba AzureStorageLinkedService. Vyberte Vytvořit a OK.
Na kartě Jímka vyberte Upravit.
Přejděte na kartu Připojení sinkDataset a proveďte následující kroky:
V části Cesta k souboru zadejte
asdedatasync/incrementalcopy
, kdeasdedatasync
je název kontejneru objektů blob aincrementalcopy
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žkuincrementalcopy
, 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.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.
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 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.
V návrháři kanálu vyberte aktivitu Uložená procedura a změňte jeho název na
SPtoUpdateWatermarkActivity
.Přepněte na kartu Účet SQL a v části Propojená služba vyberte *QLDBEdgeLinkedService.
Přepněte na kartu Uložená procedura a proveďte tyto kroky:
V části Název uložené procedury vyberte
[dbo].[usp_write_watermark]
.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}
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 >>.
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
Na panelu nástrojů kanálu vyberte Přidat trigger, vyberte Nový/Upravit a pak vyberte Nový.
Pojmenujte trigger HourlySync. V části Typ vyberte Plán. Nastavte opakování na každou 1 hodinu.
Vyberte OK.
Vyberte Publikovat vše.
Vyberte aktivační událost.
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.
## Související obsah
- 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.