Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A referenciaadatok egy statikus vagy lassan változó adathalmaz, amelyet összekapcsolsz a streaming adataiddal, hogy gazdagítsd azokat, például termékadatok hozzáadása egy értékesítési eseményfolyamhoz. Az Azure Stream Analytics támogatja az Azure SQL Database-t referencia adatforrásként, így ezeket az adatokat megtalálhatod és kombinálhatod a valós idejű bemeneteddel.
Ez a cikk bemutatja, hogyan konfigurálhatod az Azure SQL Database-t referenciaadat-bemenetként egy Stream Analytics feladathoz, mind az Azure portált, mind a Visual Studio-t Stream Analytics eszközökkel használva.
SQL Database referenciaadatokat adj hozzá az Azure portál használatával
Használja az alábbi lépéseket, hogy hozzáadja az Azure SQL Database-t referencia bemeneti forrásként az Azure portál használatával:
A portál előfeltételei
Stream Analytics-feladat létrehozása.
Hozz létre egy tárolófiókot a Stream Analytics feladathoz.
Fontos
Az Azure Stream Analytics ebben a tárfiókban őrzi meg a pillanatképeket. Amikor beállítod a megtartási szabályzatot, győződj meg róla, hogy a kiválasztott időintervall tartalmazza azt a helyreállítási időtartamot, amelyet a Stream Analytics feladatodhoz szeretnél.
Hozd létre az Azure SQL Database-edet egy olyan adathalmazból, amelyet a Stream Analytics munka referencia adatké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. Válaszd a Hivatkozási bemenet hozzáadását, majd az SQL Database opciót.
Töltsd ki a Stream Analytics bemeneti konfigurációját. Válassza ki az adatbázis nevét, szervernevét és a bejelentkezési igazolványokat. A referenciaadatok bemenetének időszakos frissítéséhez válaszd az On-t , és megadd a frissítési frekvenciát a DD:HH:MM formátumban. Nagy adathalmazok esetén, rövid frissítési frekvenciával, a delta query nyomon követi a hivatkozási adatok változásait azáltal, hogy lekéri az SQL Database-ben megjelent összes sort, amelyet egy kezdő
@deltaStartTimeidő és egy végidő@deltaEndTimeközött helyeztek be vagy töröltek, .További információért lásd: delta query.
Tesztelje a pillanatkép-lekérdezést az SQL-lekérdezésszerkesztőben. További információért lásd: Használd az Azure portál SQL lekérdezésszerkesztőjét az adatok összekapcsolásához és lekérdezéséhez.
A munka konfigurációban megadja a tárolófiókot
Menj a Tárolási fiók beállításokhoz a Konfigurálás alatt, majd válaszd a Tárhelyfiók hozzáadását.
A feladat indítása
- Miután beállítottad a többi bemenetet, kimenetet és lekérdezést, indítsd el a Stream Analytics feladatot.
SQL Database referenciaadatokat adj hozzá a Visual Studio használatával
Használja az alábbi lépéseket, hogy Azure SQL Database-et referencia bemeneti forrásként add hozzá a Visual Studio használatával:
A Visual Studio előfeltételei
Telepítse a Stream Analytics-eszközöket a Visual Studióhoz. A Stream Analytics eszközök a következő Visual Studio verziókat támogatják:
- Visual Studio 2015
- Visual Studio 2019
Ismerkedjen meg a Visual Studiohoz készült Stream Analytics-eszközök rövid útmutatójával.
Hozzon létre egy tárfiókot.
Fontos
Az Azure Stream Analytics ebben a tárfiókban tárolja a pillanatképeket. Amikor beállítod a megtartási szabályzatot, győződj meg róla, hogy a kiválasztott időintervall tartalmazza azt a helyreállítási időtartamot, amelyet a Stream Analytics feladatodhoz szeretnél.
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 állítás hozza létre a példatáblázatot:
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.
Válassz és tartsd le (vagy jobb kattintással) az Azure-t, válaszd a Microsoft Azure előfizetéshez való csatlakozást, majd jelentkezz be az Azure fiókoddal.
Stream Analytics-projekt létrehozása
Válassza a Fájl>Új projekt.
A sablonlistában válaszd ki a Stream Analytics-et, majd az Azure Stream Analytics Application-t.
Írd be a projekt nevét, helyszínét és megoldás nevét, majd válaszd az OK-t.
SQL Database-referenciaadat-bemenet definiálása
Hozzon létre egy új bemenetet.
Nyisd kiInput.jsonMegoldáskezelő múlva.
Töltse ki a Stream Analytics bemeneti konfigurációját. Adja meg az adatbázis nevét, szervernevet, frissítési típust és frissítési frekvenciát. Adja meg a frissítési gyakoriságot a formátumban
DD:HH:MM.
Ha csak egyszer vagy időszakosan futtatod az Execute-t, Visual Studio egy SQL CodeBehind fájlt generál [Input Alias] címmel.snapshot.sql a projektben aInput.json fájlcsomópont alatt.
Ha a Refresh Periodically opciót választod a Delta segítségével, Visual Studio két SQL CodeBehind fájlt generál: [Input Alias].snapshot.sql és [Input 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 Tools eszközt, a lekérdezést az Execute lehetőség kiválasztásával tesztelheti. Egy varázsló nyílik meg, hogy segítsen az SQL Database-hez való csatlakozásban, és a lekérdezés eredménye megjelenik az alján lévő ablakban.
Tárfiók megadása
Nyisd meg aJobConfig.json-ot , hogy megadd a tárolófiókot az SQL referencia pillanatképek tárolására.
Helyi tesztelés és üzembe helyezés az Azure-ban
Mielőtt a feladatot Azure-ra telepítenéd, helyben tesztelheted a lekérdezési logikát élő bemeneti adatokkal. A funkcióval kapcsolatos további információkért lásd: Élő adatok helyi tesztelése a Visual Studióhoz készült Azure Stream Analytics-eszközökkel (előzetes verzió). Amikor befejezted a tesztelést, válaszd a Submit to Azure opciót. A feladat elindításának módjáról a Stream Analytics-feladat létrehozása az Azure Stream Analytics Visual Studio-eszközeivel rövid útmutatóban olvashat.
Delta-lekérdezés
Amikor a delta lekérdezést használod, használj időbeli táblákat az Azure SQL Database-ben.
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 queryA pillanatkép-lekérdezés megírása.
Használja a @snapshotTime paramétert, hogy utasítást adjon a Stream Analytics futásidőnek, hogy a rendszer idején érvényes SQL adatbázis időbeli táblájából szerezze meg a referencia adathalmazt. Ha nem adod meg ezt a paramétert, akkor pontatlan alapreferencia adathalmazt kapsz az órajeltorzítások miatt. Az alábbi példa egy teljes pillanatkép lekérdezést mutat:
SELECT DeviceId, GroupDeviceId, [Description] FROM dbo.DeviceTemporal FOR SYSTEM_TIME AS OF @snapshotTimeA delta-lekérdezés létrehozása.
Ez a lekérdezés visszanyeri az SQL Database-ben az összes sort, amelyet egy kezdőidőben, @deltaStartTime-ben és végidőben @deltaEndTime beillesztettek vagy töröltek. 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 bekerül-e vagy töröljük-e @deltaStartTime és @deltaEndTime között. 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 az SQL Server oldaláról származó watermark értéket is hozzá kell adnia, hogy a deltaidőszak összes frissítése megfelelően figyelembe legyen véve. Delta lekérdezés használata vízjel nélkül hibás referencia-adathalmazhoz vezethet.
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 futás ezután a delta lekérdezés eredményeit alkalmazza az előző pillanatképre, hogy naprakész maradjon a referencia adatok. Az alábbi példa egy delta lekérdezést mutat:
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 deletedA Stream Analytics futtatóideje időszakosan futtathatja a snapshot lekérdezést a delta lekérdezés mellett az ellenőrzőpontok tárolására.
Fontos
Amikor referencia data delta lekérdezéseket használsz, ne frissítsd ugyanazt az időbeli referencia adattáblát többször. Ez rossz eredményeket eredményezhet. Íme egy példa, amely miatt a referenciaadatok hibás eredményeket adhatnak:
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 az állapot biztosítja, hogy ne történjenek duplikált frissítések.
A lekérdezés tesztelése
Ellenőrizd, hogy a lekérdezésed visszaadja azt az elvárt adathalmazt, amelyet a Stream Analytics feladat használ referencia adatként. A lekérdezésed teszteléséhez menj a portál Job topológiaszekciója alatt lévő Inputs menübe. Ezután válaszd ki a Sample data (Mintaadatok ) opciót az SQL Database referencia bemenetedben. Miután a minta elérhetővé válik, letöltheted a fájlt, és ellenőrizheted, hogy a visszaküldött adatok a vártnak megfelelőek-e. A fejlesztési és tesztelési iterációk optimalizálásához használd a Visual Studio Stream Analytics eszközeit. Bármilyen más eszközt is használhatsz, hogy először biztosítsd a lekérdezés a megfelelő eredményt az Azure SQL Database-edből, majd ezt a lekérdezést a Stream Analytics munkádban is felhasználd.
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álaszd ki az SQL Server ikont, és válaszd a Csatlakozás hozzáadását.
Adja meg a kapcsolati adatokat.
A referencia-SQL-ben kattintson és tartsa lenyomva (vagy kattintson a jobb gombbal), majd válassza a Lekérdezés végrehajtása lehetőséget.
Válassza ki a csatlakozási módot.
Tekintse át és ellenőrizze a lekérdezés eredményét.
GYIK
Extra költségeket okozok, ha SQL referencia adat bemenetet használok az Azure Stream Analytics-ben?
A Stream Analytics munkában nincs extra költség egy streaming egységenként . A Stream Analytics-feladatnak azonban rendelkeznie kell egy társított Azure Storage-fiókkal. A Stream Analytics feladat az SQL adatbázisban (a munka kezdeti és frissítési időszakában) lekérdezi, hogy lekérje a referencia adathalmazt, és ezt a pillanatképet a tárolófiókban tárolja. Ezeknek a pillanatképeknek a tárolása további költségeket jár az Azure tárolószámla árképzési oldalán.
Honnan tudhatom, hogy egy referenciaadat-snapshotot az SQL Database-ből kérnek-e, és használják-e az Azure Stream Analytics feladatban?
Az Azure Portal Metrikák területén, a Logical Name alapján szűrve, két metrika segítségével nyomon követheti az SQL Database referenciadat-bemenetének állapotát.
- InputEvents: Ez a metrika az SQL Database referencia adathalmazá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 mérőszám együtt azt mutatja, hogy a munka lekérdezi-e az SQL Database-t, hogy lekérje a referencia adathalmazt, majd betölti azt a memóriába.
Szükségem van egy speciális Azure SQL Database típusra?
Az Azure Stream Analytics bármilyen típusú Azure SQL Database-val működik. Azonban a referenciaadat bemenetéhez beállított frissítési frekvenciát befolyásolhatja a lekérdezés terhelését. A delta lekérdezés opció használatához az Azure SQL Database temporal táblázatait használjuk.
Miért tárolja az Azure Stream Analytics snapshotokat egy Azure Storage fiókban?
A Stream Analytics garantálja az események pontosan egyszeri feldolgozását és az események legalább egyszeri kézbesítését. Ha átmeneti problémák befolyásolják a munkádat, kis visszajátszás szükséges az állapot visszaállításához. A lejátszás engedélyezéséhez ezeket a pillanatképeket egy Azure Storage fiókban kell tárolni. Az ellenőrzőpontok újrajátszásával kapcsolatos további információkért lásd a következőt: Ellenőrzőpont- és újrajátszási alapfogalmak az Azure Stream Analytics-feladatokban.
Kapcsolódó tartalom
- 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