Referenciaadatok használata keresésekhez a Stream Analyticsben
A referenciaadatok olyan véges adatkészletek, amelyek statikusan vagy lassan változnak a természetben. Egy keresés végrehajtására vagy az adatfolyamok bővítésére szolgál. A referenciaadatok keresési táblaként is ismertek.
Példaként vegyünk egy IoT-forgatókönyvet. A referenciaadatokban tárolhatja az érzékelők metaadatait, amelyek nem változnak gyakran. Ezután összekapcsolhatja valós idejű IoT-adatfolyamokkal.
Az Azure Stream Analytics a memóriában betölti a referenciaadatokat az alacsony késleltetésű streamfeldolgozás érdekében. Ha referenciaadatokat szeretne használni a Stream Analytics-feladatban, általában referenciaadat-illesztéseket fog használni a lekérdezésben.
Példa
Valós idejű eseményfolyamot hozhat létre, amikor az autók áthaladnak egy útdíjfizetésen. A tollbooth képes rögzíteni a rendszámokat valós időben. Az adatok összekapcsolhatók egy statikus adatkészlettel, amely regisztrációs adatokkal rendelkezik a lejárt rendszámok azonosításához.
SELECT I1.EntryTime, I1.LicensePlate, I1.TollId, R.RegistrationId
FROM Input1 I1 TIMESTAMP BY EntryTime
JOIN Registration R
ON I1.LicensePlate = R.LicensePlate
WHERE R.Expired = '1'
A Stream Analytics a referenciaadatok tárolási rétegeként támogatja az Azure Blob Storage-t, az Azure Data Lake Storage Gen2-t és az Azure SQL Database-t. Ha más adattárakban található referenciaadatokkal rendelkezik, próbálja meg az Azure Data Factory használatával kinyerni, átalakítani és betölteni az adatokat az egyik támogatott adattárba. További információ: Másolási tevékenység az Azure Data Factoryben – áttekintés.
Azure Blob Storage vagy Azure Data Lake Storage Gen 2
A referenciaadatok blobok sorozataként, növekvő sorrendben, a blob nevében megadott dátum/idő sorrendben modelleződnek. A blobok csak a sorozat utolsó blobja által megadottnál nagyobb dátum/idő használatával vehetők fel a sorozat végére. A blobok a bemeneti konfigurációban vannak definiálva.
További információ: A Blob Storage referenciaadatainak használata Stream Analytics-feladatokhoz.
Blobhivatkozási adatok konfigurálása
A referenciaadatok konfigurálásához először létre kell hoznia egy olyan bemenetet, amely a referenciaadatok típusa. Az alábbi táblázat ismerteti azokat a tulajdonságokat, amelyekre a referenciaadat-bemenet leírásával való létrehozásakor szüksége van.
Tulajdonság neve | Leírás |
---|---|
Bemeneti alias | A feladat lekérdezésében a bemenetre való hivatkozáshoz használt rövid név. |
Tárfiók | Annak a tárfióknak a neve, ahol a blobok találhatók. Ha ugyanabban az előfizetésben van, mint a Stream Analytics-feladat, válassza ki a legördülő listából. |
Tárfiók kulcsa | A tárfiókhoz társított titkos kulcs. Ez a kulcs automatikusan fel lesz töltve, ha a tárfiók ugyanabban az előfizetésben van, mint a Stream Analytics-feladat. |
Tároló | A tárolók logikai csoportosítást biztosítanak a Blob Storage-ban tárolt blobokhoz. Amikor feltölt egy blobot a Blob Storage-ba, meg kell adnia egy tárolót a blobhoz. |
Elérésiút-minta | Ez a szükséges tulajdonság a blobok a megadott tárolóban való megkeresésére szolgál. Az útvonalon belül megadhat egy vagy több példányt a(z) {date} és {time} változókból. 1. példa: termékek/{date}/{time}/product-list.csv 2. példa: termékek/{date}/product-list.csv 3. példa: product-list.csv Ha a blob nem létezik a megadott elérési úton, a Stream Analytics-feladat határozatlan ideig várja, amíg a blob elérhetővé válik. |
Dátumformátum [nem kötelező] | Ha a megadott elérésiút-mintán belül {date} értéket használt, válassza ki azt a dátumformátumot, amelyben a blobok a támogatott formátumok legördülő listájából vannak rendezve. Példa: YYYY/MM/DD vagy MM/DD/YYYY |
Időformátum [nem kötelező] | Ha a megadott elérésiút-mintán belül {time} értéket használt, válassza ki azt az időformátumot, amelyben a blobok a támogatott formátumok legördülő listájából vannak rendezve. Példa: HH, HH/mm vagy HH-mm |
Eseményszerializációs formátum | Annak érdekében, hogy a lekérdezések a várt módon működjenek, a Stream Analyticsnek tudnia kell, hogy milyen szerializálási formátumot használ a bejövő adatfolyamokhoz. Referenciaadatok esetén a támogatott formátumok a CSV és a JSON. |
Kódolás | Jelenleg az UTF-8 az egyetlen támogatott kódolási formátum. |
Statikus referenciaadatok
Előfordulhat, hogy a referenciaadatok nem változnak. A statikus referenciaadatok támogatásának engedélyezéséhez adjon meg egy statikus elérési utat a bemeneti konfigurációban.
A Stream Analytics a megadott elérési útról veszi fel a blobot. A(z) {date} és {time} helyettesítési tokenek nem szükségesek. Mivel a referenciaadatok nem módosíthatók a Stream Analyticsben, a statikus referenciaadat-blob felülírása nem ajánlott.
Referenciaadatok létrehozása ütemezés szerint
A referenciaadatok lassan változó adatkészletek lehetnek. A referenciaadatok frissítéséhez adjon meg egy útvonalmintát a bemeneti konfigurációban a {date} és a {time} helyettesítési tokenek használatával. A Stream Analytics az elérési út mintája alapján felveszi a frissített referenciaadat-definíciókat.
Egy YYYY-MM-DD dátumformátumú és HH-mm időformátumú minta sample/{date}/{time}/products.csv
például arra utasítja a Stream Analyticset, hogy 2015. április 16-án 17:30-kor (UTC) vegye fel a frissített blobot sample/2015-04-16/17-30/products.csv
.
A Stream Analytics automatikusan egyperces időközönként ellenőrzi a frissített referenciaadat-blobokat. Előfordulhat, hogy egy 10:30:00-s időbélyeggel rendelkező blob kis késéssel, például 10:30:30-mal tölthető fel. Kis késést tapasztal a blobra hivatkozó Stream Analytics-feladatban.
Az ilyen helyzetek elkerülése érdekében töltse fel a blobot a célnál korábbi tényleges időpontnál, ami ebben a példában 10:30:00. A Stream Analytics-feladatnak most már elegendő ideje van a blob felderítésére és betöltésére a memóriában, és műveleteket hajthat végre.
Feljegyzés
A Stream Analytics-feladatok jelenleg csak akkor keresik a blobfrissítést, ha a gép ideje előrelép a blob nevében kódolt időre. A feladat például a lehető leghamarabb, de legkésőbb 2015. április 16-án 17:30-kor (UTC) keres sample/2015-04-16/17-30/products.csv
. Soha nem fog olyan blobot keresni, amelynek kódolási ideje korábban van, mint a legutóbb felfedezett.
Ha például a feladat megtalálta a blobot sample/2015-04-16/17-30/products.csv
, figyelmen kívül hagyja a 2015. április 16-nál korábbi kódolt dátumú fájlokat 17:30-kor. Ha egy későn érkező sample/2015-04-16/17-25/products.csv
blob jön létre ugyanabban a tárolóban, a feladat nem fogja használni.
Egy másik példában sample/2015-04-16/17-30/products.csv
csak 2015. április 16-án, 10:03-kor készül, de a tárolóban nincs egy korábbi dátumú blob. Ezután a feladat ezt a fájlt használja 2015. április 16-án 10:03-kor, és az addigi referenciaadatokat használja.
Ez alól a viselkedés alól kivételt képez az, ha a feladatnak újra kell feldolgoznia az adatokat időben vagy a feladat első indításakor.
Kezdéskor a feladat a feladat kezdési időpontja előtt létrehozott legújabb blobot keresi. Ez a viselkedés biztosítja, hogy a feladat indításakor ne üres referenciaadatkészlet jelenik meg. Ha nem található ilyen, a feladat a következő diagnosztikát jeleníti meg: Initializing input without a valid reference data blob for UTC time <start time>
.
Referenciaadatkészlet frissítésekor a rendszer létrehoz egy diagnosztikai naplót: Loaded new reference data from <blob path>
. Számos okból előfordulhat, hogy egy feladatnak újra kell betöltenie egy korábbi referenciaadatkészletet. Leggyakrabban a múltbeli adatok újrafeldolgozása az oka. Ekkor jön létre ugyanaz a diagnosztikai napló. Ez a művelet nem jelenti azt, hogy az aktuális streamadatok múltbeli referenciaadatokat használnak.
Az Azure Data Factory segítségével vezényli a Stream Analytics által a referenciaadat-definíciók frissítéséhez szükséges frissített blobok létrehozásának feladatát.
A Data Factory egy felhőalapú adatintegrációs szolgáltatás, amellyel előkészíthető és automatizálható az adatok továbbítása és átalakítása. A Data Factory számos felhőalapú és helyszíni adattárhoz támogatja a csatlakozást. Az adatok egyszerűen áthelyezhetők az Ön által megadott rendszeres ütemezés szerint.
Ha többet szeretne tudni arról, hogyan állíthat be egy Data Factory-folyamatot, amely referenciaadatokat hoz létre az előre meghatározott ütemezés szerint frissülő Stream Analyticshez, tekintse meg ezt a GitHub-mintát.
Tippek a blob referenciaadatainak frissítéséről
- Ne írja felül a referenciaadat-blobokat, mert nem módosíthatók.
- A referenciaadatok frissítésének ajánlott módja a következő:
- Használja a(z) {date}/{time} értéket az elérési út mintájában.
- Adjon hozzá egy új blobot ugyanazzal a tárolóval és elérési útmintával, amelyet a feladat bemenetében definiált.
- Használjon a sorozat utolsó blobja által megadottnál nagyobb dátumot/időt.
- A referenciaadat-blobokat nem* a blob Utolsó módosítás időpontja rendezi. A rendszer csak a blob nevében megadott dátum és idő alapján rendezi őket a(z) {date} és {time} helyettesítések használatával.
- A nagy számú blob listázásának elkerülése érdekében törölje a régi blobokat, amelyek feldolgozását a továbbiakban nem végzi el. Előfordulhat, hogy a Stream Analyticsnek bizonyos esetekben, például újraindítás esetén újra kell dolgoznia egy kis mennyiséget.
Azure SQL Database
A Stream Analytics-feladat lekéri az SQL Database referenciaadatait, és pillanatképként tárolja a memóriában feldolgozás céljából. A referenciaadatok pillanatképét egy tárfiókban lévő tárolóban is tárolja a rendszer. A tárfiókot a konfigurációs beállítások között adhatja meg.
A tároló automatikusan létrejön a feladat indításakor. Ha a feladat leáll vagy sikertelen állapotba kerül, az automatikusan létrehozott tárolók törlődnek a feladat újraindításakor.
Ha a referenciaadatok lassan változó adatkészletek, rendszeresen frissítenie kell a feladatban használt pillanatképet.
A Stream Analytics használatával beállíthatja a frissítési sebességet az SQL Database bemeneti kapcsolatának konfigurálásakor. A Stream Analytics-futtatókörnyezet a frissítési gyakoriság által megadott időközönként lekérdezi az SQL Database-példányt. A támogatott leggyorsabb frissítési sebesség percenként egyszer érhető el. Minden frissítéshez a Stream Analytics egy új pillanatképet tárol a megadott tárfiókban.
A Stream Analytics két lehetőséget biztosít az SQL Database-példány lekérdezésére. A pillanatkép-lekérdezés kötelező, és minden feladatban szerepelnie kell. A Stream Analytics rendszeres időközönként futtatja a pillanatkép-lekérdezést a frissítési időköz alapján. Referenciaadatkészletként a lekérdezés eredményét (a pillanatképet) használja.
A pillanatkép-lekérdezésnek a legtöbb forgatókönyvnek el kell férnie. Ha nagy adathalmazokkal és gyors frissítési gyakorisággal kapcsolatos teljesítményproblémákba ütközik, használja a delta lekérdezési lehetőséget. A referenciaadatkészlet visszaadásához több mint 60 másodpercet igénylő lekérdezések időtúllépést eredményeznek.
A delta lekérdezési beállítással a Stream Analytics kezdetben futtatja a pillanatkép-lekérdezést egy alapkonfigurációs referenciaadatkészlet lekéréséhez. Ezt követően a Stream Analytics rendszeres időközönként futtatja a delta lekérdezést a frissítési időköz alapján a növekményes módosítások lekéréséhez. Ezeket a növekményes módosításokat a rendszer folyamatosan alkalmazza a referenciaadatkészletre a frissítésük érdekében. A delta lekérdezési lehetőség használata segíthet csökkenteni a tárolási költségeket és a hálózati I/O-műveleteket.
SQL Database-referenciaadatok konfigurálása
Az SQL Database referenciaadatainak konfigurálásához először referenciaadat-bemenetet kell létrehoznia. Az alábbi táblázat ismerteti azokat a tulajdonságokat, amelyekre a referenciaadat-bemenet leírásával való létrehozásakor szüksége van. További információ: Referenciaadatok használata SQL Database-ből Stream Analytics-feladatokhoz.
Referenciaadat-bemenetként használhatja a felügyelt Azure SQL-példányt . Nyilvános végpontot kell konfigurálnia a felügyelt SQL-példányban. Ezután manuálisan konfigurálja a következő beállításokat a Stream Analyticsben. Ezen beállítások manuális konfigurálásával egy SQL Servert futtató Azure-beli virtuális gép is támogatott, amelyhez adatbázis van csatolva.
Tulajdonság neve | Leírás |
---|---|
Bemeneti alias | A feladat lekérdezésében a bemenetre való hivatkozáshoz használt rövid név. |
Előfizetés | Az ön előfizetése. |
Adatbázis | A referenciaadatokat tartalmazó SQL Database-példány. Felügyelt SQL-példány esetén meg kell adnia a 3342-s portot. Például: sampleserver.public.database.windows.net,3342 . |
Felhasználónév | Az SQL Database-példányhoz társított felhasználónév. |
Jelszó | Az SQL Database-példányhoz társított jelszó. |
Rendszeres frissítés | Ezzel a beállítással kiválaszthatja a frissítési sebességet. Válassza a Be lehetőséget a DD:HH:MM frissítési sebességének megadásához. |
Pillanatkép-lekérdezés | Ez az alapértelmezett lekérdezési beállítás lekéri a referenciaadatokat az SQL Database-példányból. |
Delta-lekérdezés | A nagy adathalmazokkal és rövid frissítési gyakorisággal rendelkező speciális forgatókönyvekhez adjon hozzá egy delta lekérdezést. |
Méretkorlátozás
A legjobb teljesítmény érdekében 300 MB-nál kisebb referenciaadatkészleteket használjon. Az 5 GB-os vagy annál kisebb referenciaadatkészletek hat streamelt egységből vagy annál többből állnak. A nagy referenciaadatkészlet használata hatással lehet a feladat végpontok közötti késésére.
A lekérdezések összetettsége növelheti az állapotalapú feldolgozást, például az ablakos összesítéseket, az időbeli illesztéseket és az időbeli elemzési függvényeket. Ha az összetettség növekszik, a referenciaadatok maximális támogatott mérete csökken.
Ha a Stream Analytics nem tudja betölteni a referenciaadatokat, és összetett műveleteket hajt végre, a feladat elfogy a memóriából, és sikertelen lesz. Ilyen esetekben a streamelési egység kihasználtsági mutatója eléri a 100%-ot.
Streamelési egységek száma | Javasolt méret |
---|---|
0 | 50 MB vagy alacsonyabb |
3 | 150 MB vagy alacsonyabb |
6-os és újabb | 5 GB vagy alacsonyabb |
A tömörítés támogatása nem érhető el referenciaadatokhoz. A 300 MB-nál nagyobb referenciaadatkészletek esetében használja az SQL Database-t forrásként a delta lekérdezési lehetőséggel az optimális teljesítmény érdekében. Ha az ilyen helyzetekben nem használja a delta lekérdezési beállítást, a referenciaadatkészlet frissítésekor a vízjel késleltetési metrikájában csúcsok jelennek meg.
Több referenciaadatkészlet összekapcsolása egy feladatban
A referenciaadat-bemeneteket csak streambemenethez csatlakoztathatja. Ha több referenciaadatkészletet szeretne összekapcsolni, bontsa fel a lekérdezést több lépésre. Példa:
With Step1 as (
--JOIN input stream with reference data to get 'Desc'
SELECT streamInput.*, refData1.Desc as Desc
FROM streamInput
JOIN refData1 ON refData1.key = streamInput.key
)
--Now Join Step1 with second reference data
SELECT *
INTO output
FROM Step1
JOIN refData2 ON refData2.Desc = Step1.Desc
IoT Edge-feladatok
A Stream Analytics peremhálózati feladatai csak a helyi referenciaadatokat támogatják. Amikor egy feladat egy IoT Edge-eszközön van üzembe helyezve, a felhasználó által megadott fájl elérési útjáról tölti be a referenciaadatokat. Készítse fel a referenciaadat-fájlt az eszközön.
Windows-tároló esetén helyezze a referenciaadatfájlt a helyi meghajtóra, és ossza meg a helyi meghajtót a Docker-tárolóval. Linux-tároló esetén hozzon létre egy Docker-kötetet, és töltse fel az adatfájlt a kötetbe.
Az IoT Edge-frissítés referenciaadatait egy üzembe helyezés aktiválja. Az aktiválás után a Stream Analytics-modul a futó feladat leállítása nélkül választja ki a frissített adatokat.
A referenciaadatok kétféleképpen frissíthetők:
- Frissítse a Stream Analytics-feladat referenciaadat-elérési útját az Azure Portalról.
- Frissítse az IoT Edge üzembe helyezését.