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
Stream Analytics-feladat létrehozása.
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.
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
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.
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.
- 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 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
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
Ismerkedjen meg a Visual Studio Stream Analytics-eszközeivel.
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
A Visual Studio View (Nézet) menüjében válassza a Server Explorer (Kiszolgálókezelő) lehetőséget.
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
Válassza az Új projekt fájlja > lehetőséget.
A bal oldali sablonlistában válassza ki a Stream Analytics, majd az Azure Stream Analytics Application (Azure Stream Analytics-alkalmazás) elemet.
Adja meg a projekt nevét, helyét és megoldását, és válassza az OK gombot.
SQL Database-referenciaadat-bemenet definiálása
Hozzon létre egy új bemenetet.
Kattintson duplán a Megoldáskezelő Input.json.
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
.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.
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.
Nyissa meg az SQL-fájlt a szerkesztőben, és írja meg az SQL-lekérdezést.
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.
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.
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
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
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.
Konfigurálja az SQL referenciaadat-bemenetét.
Válassza az SQL Server ikont, és kattintson a Kapcsolat hozzáadása elemre.
Adja meg a kapcsolati adatokat.
Kattintson a jobb gombbal az SQL-hivatkozásra, és válassza a Lekérdezés végrehajtása lehetőséget.
Válassza ki a kapcsolatot.
Tekintse át és ellenőrizze a lekérdezés eredményét.
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
- Az Azure Stream Analytics kimeneteinek ismertetése
- Azure Stream Analytics-kimenet az Azure SQL Database-be
- Az Azure Stream Analyticsből az Azure SQL Database-be irányuló átviteli teljesítmény növelése
- Felügyelt identitások használata az Azure SQL Database vagy az Azure Synapse Analytics eléréséhez egy Azure Stream Analytics-feladatból
- Rekordok frissítése vagy egyesítése az Azure SQL Database-ben az Azure Functions használatával
- Rövid útmutató: Stream Analytics-feladat létrehozása az Azure Portal használatával