Event Hubs-kimenet az Azure Stream Analyticsből
A Azure Event Hubs szolgáltatás egy nagymértékben skálázható közzétételi-feliratkozási eseménybetöltés. Másodpercenként több millió eseményt képes összegyűjteni. Az eseményközpontok kimenetként való használatának egyik oka, hogy egy Stream Analytics-feladat kimenete egy másik streamelési feladat bemenetévé válik. A maximális üzenetméretről és a kötegméret optimalizálásáról a kimeneti kötegméretet ismertető szakaszban talál további információt.
Kimeneti konfiguráció
Az alábbi táblázat az eseményközpontokból származó adatfolyamok kimenetként való konfigurálásához szükséges paramétereket tartalmazza.
Tulajdonság neve | Description |
---|---|
Kimeneti alias | A lekérdezésekben használt felhasználóbarát név, amely a lekérdezés kimenetét az eseményközponthoz irányítja. |
Eseményközpont-névtér | Üzenetküldési entitások egy készletének tárolója. Amikor létrehozott egy új eseményközpontot, létrehozott egy eseményközpont-névteret is. |
Event Hubs neve | Az eseményközpont kimenetének neve. |
Eseményközpont-szabályzat neve | A megosztott hozzáférési szabályzat, amelyet az eseményközpont Konfigurálás lapján hozhat létre. Minden megosztott hozzáférési szabályzat rendelkezik egy névvel, az Ön által beállított engedélyekkel és hozzáférési kulcsokkal. |
Eseményközpont szabályzatkulcsa | Az eseményközpont-névtérhez való hozzáférés hitelesítéséhez használt közös hozzáférési kulcs. |
Partíciókulcs oszlopa | Választható. Egy oszlop, amely az eseményközpont kimenetének partíciókulcsát tartalmazza. |
Eseményszerializációs formátum | A kimeneti adatok szerializálási formátuma. A JSON, a CSV és az Avro támogatott. |
Encoding | CSV és JSON esetén jelenleg az UTF-8 az egyetlen támogatott kódolási formátum. |
Elválasztó | Csak CSV-szerializáláshoz alkalmazható. A Stream Analytics számos gyakori elválasztó karaktert támogat az adatok CSV formátumban történő szerializálásához. A támogatott értékek a következők: vessző, pontosvessző, szóköz, tabulátor és függőleges sáv. |
Formátum | Csak JSON-szerializálásra alkalmazható. A sor választva azt adja meg, hogy a kimenet úgy van formázva, hogy minden JSON-objektumot egy új sor választ el egymástól. Ha a Sor választva lehetőséget választja, a JSON egyszerre egy objektumot olvas be. A teljes tartalom önmagában nem lenne érvényes JSON. A Tömb azt adja meg, hogy a kimenet JSON-objektumok tömbjeként van formázva. |
Tulajdonságoszlopok | Választható. Vesszővel tagolt oszlopok, amelyeket a hasznos adat helyett a kimenő üzenet felhasználói tulajdonságaiként kell csatolni. Erről a funkcióról további információt az Egyéni metaadat-tulajdonságok a kimenethez című szakaszban talál. |
Particionálás
A particionálás a partícióigazítástól függően változik. Ha az eseményközpont kimenetének partíciókulcsa egyenlően igazodik a felsőbb rétegbeli (előző) lekérdezési lépéshez, az írók száma megegyezik az eseményközpont kimenetében lévő partíciók számával. Minden író az EventHubSender osztály használatával küld eseményeket az adott partícióra. Ha az eseményközpont kimenetének partíciókulcsa nincs összhangban a felsőbb rétegbeli (előző) lekérdezési lépéssel, az írók száma megegyezik az előző lépés partícióinak számával. Minden író a SendBatchAsync osztályt használja az EventHubClientben , hogy eseményeket küldjön az összes kimeneti partícióra.
Kimeneti köteg mérete
Az üzenet maximális mérete 256 KB vagy 1 MB üzenetenként. További információ: Event Hubs-korlátok. Ha a bemeneti/kimeneti particionálás nincs igazítva, a rendszer minden eseményt EventData
egyenként csomagol be, és egy kötegben küldi el a maximális üzenetméretig. Ez akkor is előfordul, ha egyéni metaadat-tulajdonságokat használ. Ha a bemeneti/kimeneti particionálás igazodik, a rendszer több eseményt is egyetlen példányba EventData
csomagol, a maximális üzenetméretig, és elküldi őket.
Egyéni metaadat-tulajdonságok a kimenethez
A lekérdezési oszlopokat felhasználói tulajdonságokként csatolhatja a kimenő üzenetekhez. Ezek az oszlopok nem kerülnek be a hasznos adatokba. A tulajdonságok szótár formájában jelennek meg a kimeneti üzenetben. A kulcs az oszlop neve, az érték pedig a tulajdonságok szótárában szereplő oszlopérték. A Record és a Array kivételével minden Stream Analytics-adattípus támogatott.
Az alábbi példában a és DeviceStatus
a mezők DeviceId
lesznek hozzáadva a metaadatokhoz.
Használja a következő lekérdezést:
select *, DeviceId, DeviceStatus from iotHubInput
Konfigurálja
DeviceId,DeviceStatus
tulajdonságoszlopként a kimenetben.
Az alábbi kép az eseményközpontban a Service Bus Explorerrel megvizsgált várt kimeneti üzenettulajdonságokat ábrázolja.
Pontosan egyszer kézbesítés
Az Event Hubs kimenetében alapértelmezés szerint pontosan egyszer támogatott a kézbesítés. A bemenettől függetlenül a Stream Analytics nem garantálja az adatvesztést vagy az Event Hubs-kimenetek duplikációit a felhasználó által kezdeményezett újraindítások között az utolsó kimeneti időponttól kezdve, megakadályozva az ismétlődések létrehozását. Ez jelentősen leegyszerűsíti a streamelési folyamatot azáltal, hogy nem kell monitoroznia, implementálnia és elhárítania a deduplikációs logikát.