Share via


Referenciaadatok használata SQL Database-ből azure Stream Analytics-feladathoz

Az Azure Stream Analytics a referenciaadatok bemeneti forrásaként támogatja az Azure SQL Database-t. Az SQL Database-t referenciaadatként használhatja a Stream Analytics-feladathoz az Azure Portalon és a Visual Studióban Stream Analytics-eszközökkel. Ez a cikk bemutatja, hogyan lehet mindkét módszert elvégezni.

Azure Portal

Az Azure SQL Database referencia bemeneti forrásként való hozzáadásához kövesse az alábbi lépéseket az Azure Portal használatával:

A portál előfeltételei

  1. Stream Analytics-feladat létrehozása.

  2. Hozzon létre egy tárfiókot, amelyet a Stream Analytics-feladat használ.

    Fontos

    Az Azure Stream Analytics ebben a tárfiókban megőrzi a pillanatképeket. A megőrzési szabályzat konfigurálásakor feltétlenül gondoskodni kell arról, hogy a kiválasztott időtartam ténylegesen magában foglalja a Stream Analytics-feladat kívánt helyreállítási időtartamát.

  3. Hozza létre az Azure SQL Database-t egy olyan adatkészlettel, amelyet a Stream Analytics-feladat referenciaadatként használ.

SQL Database-referenciaadat-bemenet definiálása

  1. A Stream Analytics-feladatban válassza a Bemenetek lehetőséget a Feladattopológia területen. Kattintson a Referencia-bemenet hozzáadása elemre, és válassza az SQL Database lehetőséget.

    Inputs is selected in the left navigation pane. On Inputs, + Add reference input is selected, revealing a drop-down list that shows the values Blob storage and SQL Database.

  2. Töltse ki a Stream Analytics bemeneti konfigurációit. Válassza ki az adatbázis nevét, kiszolgálónevét, felhasználónevét és jelszavát. Ha azt szeretné, hogy a referenciaadat-bemenet rendszeres időközönként frissüljön, válassza a "Be" lehetőséget a DD:HH:MM frissítési sebességének megadásához. Ha nagy adatkészletekkel rendelkezik, amelyek rövid frissítési gyakorisággal rendelkeznek. A Delta-lekérdezés lehetővé teszi a referenciaadatok módosításainak nyomon követését az SQL Database-ben a kezdő időpontban beszúrt vagy törölt összes sor újrapróbálásával, @deltaStartTimevalamint a befejezési időponttal @deltaEndTime.

Tekintse meg a delta lekérdezést.

When SQL Database is selected, the SQL Database New input page appears. There is a configuration form in the left pane, and a Snapshot query in the right pane.

  1. Tesztelje a pillanatkép-lekérdezést az SQL-lekérdezésszerkesztőben. További információ: Az Azure Portal SQL-lekérdezésszerkesztőjének használata az adatok csatlakoztatásához és lekérdezéséhez

Tárfiók megadása a Feladatkonfigurációban

Lépjen a Tárfiók beállításai elemre a Konfigurálás területen, és válassza a Tárfiók hozzáadása lehetőséget.

Storage account settings is selected in the left pane. There is an Add storage account button in the right pane.

A feladat indítása

Miután konfigurálta az egyéb bemeneteket, kimeneteket és lekérdezéseket, elindíthatja a Stream Analytics-feladatot.

Visual Studio-eszközök

Az alábbi lépésekkel hozzáadhatja az Azure SQL Database-t referencia bemeneti forrásként a Visual Studióval:

A Visual Studio előfeltételei

  1. Telepítse a Stream Analytics-eszközöket a Visual Studióhoz. A Visual Studio alábbi verziói támogatottak:

    • Visual Studio 2015
    • Visual Studio 2019
  2. Ismerkedjen meg a Visual Studio Stream Analytics-eszközeivel.

  3. Tárfiók létrehozása.

    Fontos

    Az Azure Stream Analytics ebben a tárfiókban megőrzi a pillanatképeket. A megőrzési szabályzat konfigurálásakor feltétlenül gondoskodni kell arról, hogy a kiválasztott időtartam ténylegesen magában foglalja a Stream Analytics-feladat kívánt helyreállítási időtartamát.

SQL Database-tábla létrehozása

Az SQL Server Management Studio használatával hozzon létre egy táblát a referenciaadatok tárolásához. Részletekért lásd : Az első Azure SQL Database tervezése SSMS használatával.

Az alábbi példában használt példatábla a következő utasításból lett létrehozva:

create table chemicals(Id Bigint,Name Nvarchar(max),FullName Nvarchar(max));

Válassza ki az előfizetését

  1. A Visual Studio View (Nézet) menüjében válassza a Server Explorer (Kiszolgálókezelő) lehetőséget.

  2. Kattintson a jobb gombbal az Azure-ra, válassza Csatlakozás a Microsoft Azure-előfizetéshez, és jelentkezzen be az Azure-fiókjával.

Stream Analytics-projekt létrehozása

  1. Válassza az Új projekt fájlja > lehetőséget.

  2. A bal oldali sablonlistában válassza ki a Stream Analytics, majd az Azure Stream Analytics Application (Azure Stream Analytics-alkalmazás) elemet.

  3. Adja meg a projekt nevét, helyét és megoldását, és válassza az OK gombot.

    The Stream Analytics template is selected, Azure Stream Analytics Application is selected, and the Name, Location, and Solution names boxes are highlighted.

SQL Database-referenciaadat-bemenet definiálása

  1. Hozzon létre egy új bemenetet.

    On Add New Item, Input is selected.

  2. Kattintson duplán az Input.json elemre a Megoldáskezelő.

  3. Töltse ki a Stream Analytics bemeneti konfigurációját. Válassza ki az adatbázis nevét, a kiszolgáló nevét, a frissítés típusát és a frissítési gyakoriságot. Adja meg a frissítési gyakoriságot a formátumban DD:HH:MM.

    In Stream Analytics Input Configuration, values are entered or selected from drop-down lists.

    Ha a "Csak egyszer hajtja végre" vagy a "Rendszeres végrehajtás" lehetőséget választja, egy [Input Alias].snapshot.sql nevű SQL CodeBehind-fájl jön létre a projektben az Input.json fájlcsomópont alatt.

    The SQL CodeBehind file Chemicals.snapshot.sql is highlighted.

    Ha a "Rendszeres frissítés a Delta használatával" lehetőséget választja, két SQL CodeBehind-fájl jön létre: [Bemeneti alias].snapshot.sql és [Bemeneti alias].delta.sql.

    The SQL CodeBehind files Chemicals.delta.sql and Chemicals.snapshot.sql are highlighted.

  4. Nyissa meg az SQL-fájlt a szerkesztőben, és írja meg az SQL-lekérdezést.

  5. Ha a Visual Studio 2019-et használja, és telepítette az SQL Server Data-eszközöket, az Execute (Végrehajtás) gombra kattintva tesztelheti a lekérdezést. Ekkor megjelenik egy varázslóablak, amely segít csatlakozni az SQL Database-hez, és a lekérdezés eredménye megjelenik az ablak alján.

Tárfiók megadása

Nyissa meg a JobConfig.json fájlt az SQL-referencia-pillanatképek tárolására szolgáló tárfiók megadásához.

Stream Analytics Job Configure Configuration is shown with default values. The Global Storage Settings are highlighted.

Helyi tesztelés és üzembe helyezés az Azure-ban

Mielőtt üzembe helyezené a feladatot az Azure-ban, helyileg tesztelheti a lekérdezési logikát az élő bemeneti adatokon. A funkcióval kapcsolatos további információkért tekintse meg az élő adatok helyi tesztelését a Visual Studio Azure Stream Analytics-eszközeinek (előzetes verzió) használatával. Ha befejezte a tesztelést, kattintson a Küldés az Azure-ba elemre. A Feladat elindításának megismeréséhez tekintse meg a Stream Analytics létrehozása a Visual Studio Azure Stream Analytics-eszközeivel című rövid útmutatót.

Delta-lekérdezés

A delta-lekérdezés használata esetén az Azure SQL Database-ben időleges táblák használata javasolt.

  1. Hozzon létre egy temporális táblát az Azure SQL Database-ben.

       CREATE TABLE DeviceTemporal
       (
          [DeviceId] int NOT NULL PRIMARY KEY CLUSTERED
          , [GroupDeviceId] nvarchar(100) NOT NULL
          , [Description] nvarchar(100) NOT NULL
          , [ValidFrom] datetime2 (0) GENERATED ALWAYS AS ROW START
          , [ValidTo] datetime2 (0) GENERATED ALWAYS AS ROW END
          , PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo)
       )
       WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.DeviceHistory));  -- DeviceHistory table will be used in Delta query
    
  2. A pillanatkép-lekérdezés létrehozása.

    A @snapshotTime paraméter használatával utasíthatja a Stream Analytics-futtatókörnyezetet, hogy szerezze be a referenciaadatkészletet a rendszer idején érvényes SQL Database temporális táblából. Ha nem adja meg ezt a paramétert, az óraeltérések miatt megkockáztathatja, hogy pontatlan alap-referenciaadatkészletet kap. Alább látható egy példa a teljes pillanatkép-lekérdezésre:

       SELECT DeviceId, GroupDeviceId, [Description]
       FROM dbo.DeviceTemporal
       FOR SYSTEM_TIME AS OF @snapshotTime
    
  3. A delta-lekérdezés létrehozása.

    Ez a lekérdezés lekéri az SQL Database összes olyan sorát, amelyet beszúrtak vagy töröltek egy kezdő időpontban, @deltaStartTime és egy befejezési időpontban @deltaEndTime. A delta lekérdezésnek ugyanazokat az oszlopokat kell visszaadnia, mint a pillanatkép-lekérdezésnek, valamint az oszlopműveletnek. Ez az oszlop határozza meg, hogy a sor beszúrása vagy törlése @deltaStartTime és @deltaEndTime között történik-e. Az eredményként kapott sorok 1-ként vannak megjelölve, ha a rekordok be lettek szúrva, vagy 2, ha törölték őket. A lekérdezésnek vízjelet is fel kell vennie az SQL Server oldaláról, hogy a változási időszak összes frissítése megfelelően legyen rögzítve. A delta-lekérdezés vízjel nélküli használata helytelen referenciaadatkészletet eredményezhet.

    A frissített rekordok esetében a temporális tábla egy beszúrási és törlési művelet rögzítésével végzi a könyvelést. A Stream Analytics-futtatókörnyezet ezután alkalmazza a delta lekérdezés eredményeit az előző pillanatképre a referenciaadatok naprakészen tartásához. A delta-lekérdezésre az alábbi példa látható:

       SELECT DeviceId, GroupDeviceId, Description, ValidFrom as _watermark_, 1 as _operation_
       FROM dbo.DeviceTemporal
       WHERE ValidFrom BETWEEN @deltaStartTime AND @deltaEndTime   -- records inserted
       UNION
       SELECT DeviceId, GroupDeviceId, Description, ValidTo as _watermark_, 2 as _operation_
       FROM dbo.DeviceHistory   -- table we created in step 1
       WHERE ValidTo BETWEEN @deltaStartTime AND @deltaEndTime     -- record deleted
    

    Vegye figyelembe, hogy a Stream Analytics-futtatókörnyezet rendszeres időközönként futtathatja a pillanatkép-lekérdezést a delta lekérdezés mellett az ellenőrzőpontok tárolásához.

    Fontos

    Referenciaadat-különbözeti lekérdezések használata esetén ne végezze el többször a temporális referenciaadattábla azonos frissítését. Ez helytelen eredményeket eredményezhet. Íme egy példa, amely miatt a hivatkozási adatok helytelen eredményeket eredményezhetnek:

     UPDATE myTable SET VALUE=2 WHERE ID = 1;
     UPDATE myTable SET VALUE=2 WHERE ID = 1;      
    

    Helyes példa:

     UPDATE myTable SET VALUE = 2 WHERE ID = 1 and not exists (select * from myTable where ID = 1 and value = 2);
    

    Ez biztosítja, hogy a rendszer ne végezzen ismétlődő frissítéseket.

A lekérdezés tesztelése

Fontos ellenőrizni, hogy a lekérdezés a Stream Analytics-feladat által referenciaadatként használt várt adatkészletet adja-e vissza. A lekérdezés teszteléséhez nyissa meg az Input (Bemenet) lehetőséget a Portál Feladattopológia szakaszában. Ezután kiválaszthatja a Mintaadatok lehetőséget az SQL Database referencia-bemenetén. Miután a minta elérhetővé válik, letöltheti a fájlt, és ellenőrizheti, hogy a visszaadott adatok a vártnak megfelelően működnek-e. Ha optimalizálni szeretné a fejlesztési és tesztelési iterációkat, javasoljuk, hogy használja a Stream Analytics-eszközöket a Visual Studióhoz. Bármely más olyan eszközt is használhat, amelyet előnyben részesít, ha először meg szeretné győződni arról, hogy a lekérdezés a megfelelő eredményeket adja vissza Az Azure SQL Database-től, majd ezt használja a Stream Analytics-feladatban.

A lekérdezés tesztelése a Visual Studio Code-tal

Telepítse az Azure Stream Analytics Toolst és az SQL Servert (mssql) a Visual Studio Code-ra, és állítsa be az ASA-projektet. További információ : Rövid útmutató: Azure Stream Analytics-feladat létrehozása a Visual Studio Code-ban és az SQL Server (mssql) bővítmény oktatóanyaga.

  1. Konfigurálja az SQL referenciaadat-bemenetét.

    A Visual Studio Code editor (tab) shows ReferenceSQLDatabase.json.

  2. Válassza az SQL Server ikont, és kattintson az Add Csatlakozás ion (Csatlakozás ion hozzáadása) elemre.

    + Add Connection appears in the left pane and is highlighted.

  3. Adja meg a kapcsolati adatokat.

    The two boxes for database and server information are highlighted.

  4. Kattintson a jobb gombbal az SQL-hivatkozásra, és válassza a Lekérdezés végrehajtása lehetőséget.

    Execute Query is highlighted in the context menu.

  5. Válassza ki a kapcsolatot.

    The dialog box says

  6. Tekintse át és ellenőrizze a lekérdezés eredményét.

    The query search results are in a VS Code editor tab.

FAQs

További költségek merülnek fel az SQL referenciaadat-bemenetének használatával az Azure Stream Analyticsben?

A Stream Analytics-feladatban nincs további költség a streamelési egységenként . A Stream Analytics-feladatnak azonban rendelkeznie kell egy társított Azure Storage-fiókkal. A Stream Analytics-feladat lekérdezi az SQL DB-t (a feladat indítása és frissítése során), hogy lekérje a referenciaadat-készletet, és tárolja a pillanatképet a tárfiókban. A pillanatképek tárolása további díjakat von maga után az Azure Storage-fiók díjszabási oldalán .

Hogyan tudja, hogy a referenciaadat-pillanatkép lekérdezve van az SQL DB-ből, és az Azure Stream Analytics-feladatban használatos?

Két metrika van logikai névvel szűrve (az Azure Portal metrikái alatt), amelyekkel monitorozhatja az SQL Database referenciaadat-bemenetének állapotát.

  • InputEvents: Ez a metrika az SQL Database referenciaadatkészletéből betöltött rekordok számát méri.
  • InputEventBytes: Ez a metrika a Stream Analytics-feladat memóriájába betöltött referenciaadat-pillanatkép méretét méri.

Mindkét metrika kombinációja arra utalhat, hogy a feladat lekérdezi az SQL Database-t a referenciaadatkészlet lekéréséhez, majd a memóriába való betöltéséhez.

Szükségem lesz egy speciális Azure SQL Database-típusra?

Az Azure Stream Analytics bármilyen típusú Azure SQL Database-vel működik. Fontos azonban tisztában lenni azzal, hogy a referenciaadat-bemenethez beállított frissítési sebesség befolyásolhatja a lekérdezés terhelését. A delta-lekérdezési beállítás használatához ajánlott az Időtáblák használata az Azure SQL Database-ben.

Miért tárolja az Azure Stream Analytics a pillanatképeket az Azure Storage-fiókban?

A Stream Analytics garantáltan pontosan egyszer dolgozza fel az eseményeket, és legalább egyszer kézbesíti az eseményeket. Azokban az esetekben, amikor az átmeneti problémák hatással vannak a feladatra, az állapot visszaállításához kis mennyiségű visszajátszásra van szükség. A visszajátszás engedélyezéséhez ezeket a pillanatképeket egy Azure Storage-fiókban kell tárolni. Az ellenőrzőpont-visszajátszással kapcsolatos további információkért tekintse meg a Checkpoint és a visszajátszás fogalmait az Azure Stream Analytics-feladatokban.

Következő lépések