Kimenetek az Azure Stream Analyticsből
Az Azure Stream Analytics-feladatok bemenetből, lekérdezésből és kimenetből állnak. Több kimeneti típus is létezik, amelyekbe átalakított adatokat küldhet. Ez a cikk a támogatott Stream Analytics-kimeneteket sorolja fel. A Stream Analytics-lekérdezés tervezésekor tekintse meg a kimenet nevét az INTO záradék használatával. Feladatonként egyetlen kimenetet vagy streamelési feladatonként több kimenetet is használhat (ha szüksége van rájuk), ha több INTO záradékot ad hozzá a lekérdezéshez.
Stream Analytics-feladatkimenetek létrehozásához, szerkesztéséhez és teszteléséhez használhatja az Azure Portalt, az Azure PowerShellt, a .NET API-t, a REST API-t, a Visual Studiót és a Visual Studio Code-ot.
Feljegyzés
Határozottan javasoljuk, hogy a legjobb helyi fejlesztési élmény érdekében használja a Stream Analytics-eszközöket a Visual Studio Code-hoz. A Visual Studio 2019-hez készült Stream Analytics-eszközökben (2.6.3000.0-s verzió) ismert funkcióbeli hiányosságok vannak, és a jövőben nem fog javulni.
Egyes kimenettípusok támogatják a particionálást az alábbi táblázatban látható módon.
Minden kimenet támogatja a kötegelést, de csak néhány támogatja a kimeneti köteg méretének explicit beállítását. További információkért tekintse meg a kimeneti kötegméretek szakaszt .
Kimeneti típus | Particionálás | Biztonság |
---|---|---|
Azure Data Explorer | Igen | Felügyelt identitás |
Azure Functions | Igen | Hozzáférési kulcs |
Azure Synapse Analytics | Igen | SQL-felhasználó hitelesítése, felügyelt identitás |
Blob Storage és Azure Data Lake Gen 2 | Igen | Hozzáférési kulcs, felügyelt identitás |
Azure Cosmos DB | Igen | Hozzáférési kulcs, felügyelt identitás |
Azure Data Lake Storage Gen2 | Igen | Microsoft Entra felhasználó által felügyelt identitás |
Azure-eseményközpontok | Igen, be kell állítania a partíciókulcs oszlopát a kimeneti konfigurációban. | Hozzáférési kulcs, felügyelt identitás |
Kafka (előzetes verzió) | Igen, be kell állítania a partíciókulcs oszlopát a kimeneti konfigurációban. | Hozzáférési kulcs, felügyelt identitás |
Azure Database for PostgreSQL | Igen | Felhasználónév és jelszó hitelesítése |
Power BI | Nem | Microsoft Entra-felhasználó, felügyelt identitás |
Azure Service Bus-üzenetsorok | Igen | Hozzáférési kulcs, felügyelt identitás |
Azure Service Bus-témakörök | Igen | Hozzáférési kulcs, felügyelt identitás |
Azure SQL Database | Igen, nem kötelező. | SQL-felhasználó hitelesítése, felügyelt identitás |
Azure Table storage | Igen | Fiókkulcs |
Fontos
Az Azure Stream Analytics az Insert vagy Replace API-t használja tervezés szerint. Ez a művelet lecserél egy meglévő entitást, vagy új entitást szúr be, ha az nem szerepel a táblában.
Particionálás
A Stream Analytics a Power BI kivételével minden kimenet partícióit támogatja. A partíciókulcsokkal és a kimeneti írók számával kapcsolatos további információkért tekintse meg az önt érdeklő kimeneti típusról szóló cikket. A kimeneti típusok cikkeit az előző szakaszban csatoltuk.
Emellett a partíciók fejlettebb hangolásához a kimeneti írók száma szabályozható a lekérdezés egy INTO <partition count>
(lásd INTO) záradékával, amely hasznos lehet a kívánt feladattopológia eléréséhez. Ha a kimeneti adapter nincs particionálva, az adatok hiánya egy bemeneti partícióban akár a késői érkezési időig is késést okoz. Ilyen esetekben a kimenet egyetlen íróval egyesül, ami szűk keresztmetszeteket okozhat a folyamatban. A késői érkezési szabályzattal kapcsolatos további információkért tekintse meg az Azure Stream Analytics eseményrendelési szempontjait.
Kimeneti köteg mérete
Minden kimenet támogatja a kötegelést, de csak bizonyos támogatási beállítások kifejezetten a köteg méretét. Az Azure Stream Analytics változó méretű kötegeket használ az események feldolgozásához és a kimenetekbe való íráshoz. A Stream Analytics-motor általában nem ír egyszerre egyetlen üzenetet, és kötegeket használ a hatékonyság érdekében. Ha a bejövő és a kimenő események aránya is magas, a Stream Analytics nagyobb kötegeket használ. Ha a kimenő forgalom sebessége alacsony, kisebb kötegeket használ a késés alacsonyan tartásához.
Az Avro és a Parquet fájlmegosztási viselkedése
A Stream Analytics-lekérdezések több sémát is létrehozhatnak egy adott kimenethez. A tervezett oszlopok listája és típusa soronként változhat. Az Avro- és Parquet-formátumok kialakításuk szerint nem támogatják egyetlen fájl változós sémáit.
A következő viselkedések fordulhatnak elő, amikor változó sémákkal rendelkező streamet irányít egy kimenetre az alábbi formátumok használatával:
- Ha a sémamódosítás észlelhető, az aktuális kimeneti fájl bezárul, és egy új inicializálódik az új sémán. A fájlok ilyen módon való felosztása jelentősen lelassítja a kimenetet, amikor a séma gyakran változik. Ez a viselkedés súlyosan befolyásolhatja a feladat általános teljesítményét
- Ha a sémamódosítás nem észlelhető, a sor valószínűleg elutasítva lesz, és a feladat elakad, mivel a sor nem lehet kimenet. A beágyazott oszlopok vagy több típusú tömbök nem felderített és elutasított helyzetek.
Javasoljuk, hogy fontolja meg az Avro vagy Parquet formátumot használó kimenetek erős beírását, illetve a séma írását, valamint a célként megcélzott lekérdezéseket (az egységes sémák explicit konverzióit és előrejelzéseit).
Ha több sémát kell létrehozni, érdemes lehet több kimenetet létrehozni, és a rekordokat minden célhelyre felosztani egy WHERE
záradék használatával.
Parquet kimeneti kötegelési ablak tulajdonságai
Az Azure Resource Manager-sablon üzembe helyezésekor vagy a REST API-ban a két kötegelési ablaktulajdonság a következő:
timeWindow
A kötegenkénti maximális várakozási idő. Az értéknek a következő karakterláncnak
Timespan
kell lennie: . Például00:02:00
két percig. Ezután a köteg akkor is a kimenetbe lesz írva, ha a minimális sorkövetelmények nem teljesülnek. Az alapértelmezett érték 1 perc, az engedélyezett maximális érték pedig 2 óra. Ha a blobkimenet útvonalminta-gyakorisággal rendelkezik, a várakozási idő nem lehet magasabb a partíció időtartományánál.sizeWindow
A kötegenkénti minimális sorok száma. A Parquet esetében minden köteg létrehoz egy új fájlt. Az aktuális alapértelmezett érték 2000 sor, az engedélyezett maximális érték pedig 10 000 sor.
Ezeket a kötegelési ablaktulajdonságokat csak az API 2017-04-01-preview vagy újabb verziója támogatja. Íme egy példa a REST API-hívások JSON hasznos adataira:
"type": "stream",
"serialization": {
"type": "Parquet",
"properties": {}
},
"timeWindow": "00:02:00",
"sizeWindow": "2000",
"datasource": {
"type": "Microsoft.Storage/Blob",
"properties": {
"storageAccounts" : [
{
"accountName": "{accountName}",
"accountKey": "{accountKey}",
}
],