Megosztás a következőn keresztül:


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.

    A bemenetek a bal oldali navigációs panelen lesznek kiválasztva. A bemeneteken a + Referenciabevitel hozzáadása lehetőség van kiválasztva, és megjelenik egy legördülő lista, amely a Blob Storage és az SQL Database értékeit jeleníti meg.

  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 beolvasásával, @deltaStartTimevalamint a befejezési időponttal @deltaEndTime.

Tekintse meg a delta lekérdezést.

Ha az SQL Database van kiválasztva, megjelenik az SQL Database Új bemeneti lapja. A bal oldali panelen található egy konfigurációs űrlap, a jobb oldali panelen pedig egy Pillanatkép-lekérdezés.

  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.

A tárfiók beállításai a bal oldali panelen lesznek kiválasztva. A jobb oldali panelen található egy Tárfiók hozzáadása gomb.

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. Hozzon létre egy tárfiókot.

    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 a Csatlakozás a Microsoft Azure-előfizetéshez lehetőséget, é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.

    A Stream Analytics-sablon ki van jelölve, az Azure Stream Analytics-alkalmazás ki van jelölve, és ki van emelve a Név, a Hely és a Megoldás neve mező.

SQL Database-referenciaadat-bemenet definiálása

  1. Hozzon létre egy új bemenetet.

    Az Új elem hozzáadása elemnél a bemenet ki van jelölve.

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

  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.

    A Stream Analytics bemeneti konfigurációjában az értékek be vannak írva vagy kiválasztva a legördülő listákból.

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

    Az SQL CodeBehind fájl Chemicals.snapshot.sql ki van emelve.

    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.

    Az SQL CodeBehind-fájlok Chemicals.delta.sql és Chemicals.snapshot.sql vannak kiemelve.

  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 az SQL-referencia-pillanatképek tárolására szolgáló tárfiók megadásához.

A Stream Analytics-feladat konfigurálásának konfigurálása alapértelmezett értékekkel jelenik meg. A globális tárolási beállítások ki vannak emelve.

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-szerkesztő (lap) ReferenceSQLDatabase.json jelenít meg.

  2. Válassza az SQL Server ikont, és kattintson a Kapcsolat hozzáadása elemre.

    + A Kapcsolat hozzáadása elem megjelenik a bal oldali panelen, és ki van emelve.

  3. Adja meg a kapcsolati adatokat.

    Az adatbázis- és kiszolgálóadatok két mezője ki van emelve.

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

    A Lekérdezés végrehajtása elem ki van emelve a helyi menüben.

  5. Válassza ki a kapcsolatot.

    A párbeszédpanelen a következő szöveg látható:

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

    A lekérdezési keresési eredmények egy VS Code-szerkesztő lapon találhatók.

GYIK

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