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


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.

Következő lépések