Share via


Oktatóanyag: Adatok szinkronizálása az SQL Edge-ből az Azure Blob Storage-ba az Azure Data Factory használatával

Fontos

Az Azure SQL Edge már nem támogatja az ARM64 platformot.

Ez az oktatóanyag bemutatja, hogyan szinkronizálhat adatokat növekményesen az Azure Data Factory használatával az Azure SQL Edge egy táblájából az Azure Blob Storage-ba.

Előkészületek

Ha még nem hozott létre adatbázist vagy táblát az Azure SQL Edge-környezetben, az alábbi módszerek egyikével hozhat létre egyet:

  • Az SQL Edge-hez az SQL Server Management Studio vagy az Azure Data Studio használatával csatlakozhat. Futtasson egy SQL-szkriptet az adatbázis és a tábla létrehozásához.

  • Hozzon létre egy adatbázist és táblázatot az sqlcmd használatával, közvetlenül az SQL Edge-modulhoz való csatlakozással. További információ: Csatlakozás az adatbázismotorhoz az sqlcmd használatával.

  • AZ SQLPackage.exe használatával helyezzen üzembe egy DAC-csomagfájlt az SQL Edge-tárolóban. Ezt a folyamatot automatizálhatja az SqlPackage-fájl URI-jának megadásával a modul kívánt tulajdonságok konfigurációjának részeként. Az SqlPackage.exe ügyféleszköz használatával közvetlenül is üzembe helyezhet egy DAC-csomagot az SQL Edge-ben.

    Az SqlPackage.exe letöltéséről további információt az sqlpackage letöltése és telepítése című témakörben talál. Az alábbiakban néhány példaparancs található az SqlPackage.exe fájlhoz. További információt az SqlPackage.exe dokumentációjában talál.

    DAC-csomag létrehozása

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

    DAC-csomag alkalmazása

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

SQL-tábla és -eljárás létrehozása a vízjelszintek tárolásához és frissítéséhez

A vízjeltáblák az utolsó időbélyeg tárolására szolgálnak, amelybe az adatok már szinkronizálva lettek az Azure Storage-ral. A Transact-SQL (T-SQL) tárolt eljárásával minden szinkronizálás után frissítheti a vízjeltáblát.

Futtassa az alábbi parancsokat az SQL Edge-példányon:

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

Data Factory-folyamat létrehozása

Ebben a szakaszban egy Azure Data Factory-folyamatot fog létrehozni az adatok Azure Blob Storage-ba való szinkronizálásához egy Azure SQL Edge-táblából.

Adat-előállító létrehozása a Data Factory felhasználói felületével

Hozzon létre egy adat-előállítót az oktatóanyag utasításait követve.

Data Factory-folyamat létrehozása

  1. A Data Factory felhasználói felületÉnek Első lépések lapján válassza a Folyamat létrehozása lehetőséget.

    Screenshot of the create a Data Factory pipeline.

  2. A folyamat Tulajdonságok ablakának Általános lapján adja meg a PeriodicSync nevet.

  3. Adja hozzá a keresési tevékenységet a régi vízjel értékének lekéréséhez. A Tevékenységek panelen bontsa ki az Általános elemet, és húzza a keresési tevékenységet a folyamattervező felületére. Módosítsa a tevékenység nevét OldWatermarkra.

    Screenshot of adding the old watermark lookup.

  4. Váltson a Gépház lapra, és válassza a Forrásadatkészlet újelemét. Most létre fog hozni egy adatkészletet, amely a vízjeltáblában lévő adatokat jeleníti meg. Ez a tábla tartalmazza az előző másolási művelet során használt régi küszöbértéket.

  5. Az Új adathalmaz ablakban válassza az Azure SQL Servert, majd a Folytatás lehetőséget.

  6. Az adathalmaz Tulajdonságok beállítása ablakának Név területén adja meg a WatermarkDataset nevet.

  7. Csatolt szolgáltatás esetén válassza az Új lehetőséget, majd hajtsa végre az alábbi lépéseket:

    1. A Név mezőbe írja be az SQLDBEdgeLinkedService nevet.

    2. A Kiszolgáló neve területen adja meg az SQL Edge-kiszolgáló adatait.

    3. Válassza ki az adatbázis nevét a listából.

    4. Adja meg a felhasználónevet és a jelszót.

    5. Az SQL Edge-példányhoz való kapcsolat teszteléséhez válassza a Kapcsolat tesztelése lehetőséget.

    6. Select Create.

      Screenshot of creating a linked service.

    7. Kattintson az OK gombra.

  8. A Gépház lapon válassza a Szerkesztés lehetőséget.

  9. A Csatlakozás ion lapon válassza a [dbo].[watermarktable]Táblázat lehetőséget. Ha a táblázatban lévő adatok előnézetét szeretné megtekinteni, válassza az Adatok előnézete lehetőséget.

  10. Váltson a folyamatszerkesztőre a folyamat fülének tetején vagy a folyamat nevének kiválasztásával a bal oldali fanézetben. A Keresési tevékenység tulajdonságok ablakában győződjön meg arról, hogy a WatermarkDataset ki van jelölve a Forrásadatkészlet listában.

  11. A Tevékenységek panelen bontsa ki az Általános elemet, és húzzon egy másik keresési tevékenységet a folyamattervező felületére. Adja meg a nevet NewWatermark értékre a tulajdonságok ablakÁnak Általános lapján. Ez a keresési tevékenység lekéri az új vízjelértéket a forrásadatokat tartalmazó táblából, hogy az átmásolható legyen a célhelyre.

  12. A második keresési tevékenység tulajdonságok ablakában váltson a Gépház lapra, és az Új lehetőséget választva hozzon létre egy adatkészletet, amely az új vízjelértéket tartalmazó forrástáblára mutat.

  13. Az Új adathalmaz ablakban válassza az SQL Edge-példányt, majd a Folytatás lehetőséget.

    1. A Tulajdonságok beállítása ablak Név területén adja meg a SourceDataset nevet. A Társított szolgáltatás területen válassza az SQLDBEdgeLinkedService lehetőséget.

    2. A Táblázat csoportban válassza ki a szinkronizálni kívánt táblát. Lekérdezést is megadhat ehhez az adatkészlethez az oktatóanyag későbbi részében leírtak szerint. A lekérdezés elsőbbséget élvez az ebben a lépésben megadott táblával szemben.

    3. Kattintson az OK gombra.

  14. Váltson a folyamatszerkesztőre a folyamat fülének tetején vagy a folyamat nevének kiválasztásával a bal oldali fanézetben. A Keresési tevékenység tulajdonságok ablakában győződjön meg arról, hogy a SourceDataset ki van jelölve a Forrásadatkészlet listában.

  15. Válassza a Lekérdezés lehetőséget a Lekérdezés használata csoportban. Frissítse a tábla nevét a következő lekérdezésben, majd írja be a lekérdezést. Csak a tábla maximális értékét választja timestamp ki. Ügyeljen arra, hogy csak az Első sort válassza.

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

    Screenshot of a select query.

  16. A Tevékenységek panelen bontsa ki az Áthelyezés és átalakítás elemet, és húzza a Másolási tevékenységet a Tevékenységek panelről a tervezőfelületre. Állítsa a tevékenység nevét növekményes másolásra.

  17. A keresési tevékenységhez csatolt zöld gombot a másolási tevékenységhez húzva kapcsolja mindkét keresési tevékenységet a másolási tevékenységhez. Engedje fel az egérgombot, amikor megjelenik az Copy tevékenység szegélyszíne kékre változik.

  18. Jelölje ki a Copy tevékenység, és győződjön meg arról, hogy a tevékenység tulajdonságai megjelennek a Tulajdonságok ablakban.

  19. Váltson a Forrás lapra a Tulajdonságok ablakban, és hajtsa végre az alábbi lépéseket:

    1. A Forrás adatkészlet mezőben válassza a SourceDataset lehetőséget.

    2. A Lekérdezés használata területen válassza a Lekérdezés lehetőséget.

    3. Írja be az SQL-lekérdezést a Lekérdezés mezőbe. Íme egy minta lekérdezés:

    SELECT *
    FROM TemperatureSensor
    WHERE timestamp > '@{activity(' OldWaterMark ').output.firstRow.WatermarkValue}'
        AND timestamp <= '@{activity(' NewWaterMark ').output.firstRow.NewWatermarkvalue}';
    
  20. A Fogadó lapon válassza az Új lehetőséget a Fogadó adatkészlet alatt.

  21. Ebben az oktatóanyagban a fogadó adattár egy Azure Blob Storage-adattár. Válassza az Azure Blob Storage lehetőséget, majd az Új adathalmaz ablakban válassza a Folytatás lehetőséget.

  22. A Formátum kiválasztása ablakban válassza ki az adatok formátumát, majd válassza a Folytatás lehetőséget.

  23. A Tulajdonságok beállítása ablak Név területén adja meg a SinkDataset nevet. A Csatolt szolgáltatás területen válassza az Új lehetőséget. Most létre fog hozni egy kapcsolatot (egy társított szolgáltatást) az Azure Blob Storage-hoz.

  24. Az Új társított szolgáltatás (Azure Blob Storage) ablakban hajtsa végre az alábbi lépéseket:

    1. A Név mezőbe írja be az AzureStorageLinkedService nevet.

    2. A Storage-fiók neve alatt válassza ki az Azure-előfizetéshez tartozó Azure Storage-fiókot.

    3. Tesztelje a kapcsolatot, majd válassza a Befejezés lehetőséget.

  25. A Tulajdonságok beállítása ablakban győződjön meg arról, hogy az AzureStorageLinkedService ki van jelölve a Társított szolgáltatás területen. Válassza a Létrehozás és az OK gombot.

  26. A Fogadó lapon válassza a Szerkesztés lehetőséget.

  27. Lépjen a SinkDataset Csatlakozás ion lapjára, és hajtsa végre az alábbi lépéseket:

    1. A Fájl elérési útja területen adja megasdedatasync/incrementalcopy, hogy hol asdedatasync található a blobtároló neve, és incrementalcopy hol a mappa neve. Hozza létre a tárolót, ha nem létezik, vagy használja egy meglévő nevét. Az Azure Data Factory automatikusan létrehozza a kimeneti mappát incrementalcopy , ha nem létezik. A fájl elérési útjánál a Tallózás gombot is használhatja a blobtárolóban található mappák megkereséséhez.

    2. A Fájl elérési út Fájl részén válassza a Dinamikus tartalom hozzáadása [Alt+P] lehetőséget, majd írja be @CONCAT('Incremental-', pipeline().RunId, '.txt') a megnyíló ablakot. Válassza a Befejezés lehetőséget. A fájlnevet a kifejezés dinamikusan hozza létre. A folyamat minden futtatásához tartozik egy egyedi azonosító. A másolási tevékenység a futtatási azonosítót használja a fájlnév létrehozásához.

  28. Váltson a folyamatszerkesztőre a folyamat fülének tetején vagy a folyamat nevének kiválasztásával a bal oldali fanézetben.

  29. A Tevékenységek panelen bontsa ki az Általános elemet, és húzza a Tárolt eljárás tevékenységet a Tevékenységek panelről a folyamattervező felületére. Csatlakozás a Copy tevékenység zöld (sikeres) kimenetét a Tárolt eljárás tevékenységhez.

  30. Válassza ki a folyamattervező tárolt eljárástevékenységét , és módosítsa a nevét a következőre SPtoUpdateWatermarkActivity: .

  31. Váltson az SQL-fiók lapra, és válassza a *QLDBEdgeLinkedService lehetőséget a Társított szolgáltatás alatt.

  32. Váltson a Tárolt eljárás lapra, és hajtsa végre az alábbi lépéseket:

    1. A Tárolt eljárás neve területen válassza a lehetőséget[dbo].[usp_write_watermark].

    2. A tárolt eljárásparaméterek értékeinek megadásához válassza az Importálás paramétert , és adja meg az alábbi értékeket a paraméterekhez:

    Name Típus Érték
    LastModifiedTime DateTime @{activity('NewWaterMark').output.firstRow.NewWatermarkvalue}
    TableName Sztring @{activity('OldWaterMark').output.firstRow.TableName}
  33. A folyamatbeállítások érvényesítéséhez válassza az Eszköztár Érvényesítés elemét. Ellenőrizze, hogy nincs-e érvényesítési hiba. A Folyamatérvényesítési jelentés ablak bezárásához válassza a lehetőséget >>.

  34. Tegye közzé az entitásokat (társított szolgáltatásokat, adatkészleteket és folyamatokat) az Azure Data Factory szolgáltatásban az Összes közzététele gombra kattintva. Várjon, amíg megjelenik egy üzenet, amely megerősíti, hogy a közzétételi művelet sikeres volt.

Folyamat aktiválása ütemezés alapján

  1. A folyamat eszköztárán válassza az Eseményindító hozzáadása, az Új/Szerkesztés, majd az Új lehetőséget.

  2. Nevezze el az eseményindító HourlySync nevét. A Típus csoportban válassza az Ütemezés lehetőséget. Az ismétlődés beállítása 1 óránként.

  3. Kattintson az OK gombra.

  4. Kattintson Az összes közzététele gombra.

  5. Válassza az Eseményindító most lehetőséget.

  6. Váltson a bal oldali Monitorozás lapra. Láthatja a manuális eseményindítás által elindított folyamatfuttatás állapotát. A lista frissítéséhez kattintson a Frissítés gombra.

További lépések

  • Az oktatóanyagban szereplő Azure Data Factory-folyamat óránként egyszer másol adatokat egy SQL Edge-példány táblájából egy Azure Blob Storage-beli helyre. A Data Factory más forgatókönyvekben való használatáról az alábbi oktatóanyagokban tájékozódhat.