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


Azure Stream Analytics – írás a Delta Lake-táblába

A Delta Lake egy nyílt formátum, amely megbízhatóságot, minőséget és teljesítményt biztosít a data lake-ekhez. Az Azure Stream Analytics lehetővé teszi a streamelési adatok közvetlen írását a Delta Lake-táblákba egyetlen kódsor megírása nélkül.

A streamelemzési feladat konfigurálható úgy, hogy natív Delta Lake kimeneti összekötőn keresztül írjon egy új vagy egy előre létrehozott Delta-táblába egy Azure Data Lake Storage Gen2-fiókban. Ez az összekötő a deltatáblákhoz való nagy sebességű betöltésre van optimalizálva hozzáfűzési módban, és pontosan egyszeri szemantikát is biztosít, ami garantálja, hogy egyetlen adat sem vész el vagy duplikálódik. A valós idejű adatfolyamok Azure Event Hubsból Delta-táblákba való betöltésével alkalmi interaktív vagy kötegelt elemzéseket végezhet.

Delta Lake-konfiguráció

Ha adatokat szeretne írni a Delta Lake-ben, csatlakoznia kell egy Azure Data Lake Storage Gen2-fiókhoz. Az alábbi táblázat a Delta Lake-konfigurációhoz kapcsolódó tulajdonságokat sorolja fel.

Tulajdonság neve Leírás
Eseményszerializációs formátum A kimeneti adatok szerializálási formátuma. A JSON, CSV, AVRO, Parquet támogatott. A Delta Lake itt szerepel lehetőségként. Ha a Delta Lake van kiválasztva, az adatok Parquet formátumúak.
Delta elérési út neve A delta lake tábla megírásához használt elérési út a megadott tárolón belül. Tartalmazza a tábla nevét. További részletek a következő szakaszban.
Partícióoszlop Opcionális. A (z) {field} név a kimeneti adatoktól a partícióig. Csak egy partícióoszlop támogatott. Az oszlop értékének sztring típusúnak kell lennie

Az ADLS Gen2 konfiguráció teljes listájának megtekintéséhez tekintse meg az ALDS Gen2 áttekintését.

Delta Elérési út neve

A Delta Path Name az Azure Data Lake Storage Gen2-ben tárolt Delta Lake-tábla helyének és nevének megadására szolgál.

Választhat, hogy egy vagy több elérésiút-szegmens használatával határozza meg a deltatábla elérési útját és a deltatábla nevét. Az elérésiút-szegmens az egymást követő elválasztó karakterek (például a perjel /) közötti sztring, amely egy virtuális könyvtár nevének felel meg.

A szegmens neve alfanumerikus, és szóközöket, kötőjeleket és aláhúzásjeleket tartalmazhat. A rendszer az utolsó elérési út szegmensét használja a táblanévként.

A Delta Path nevének korlátozásai közé tartoznak a következők:

  • A mezőnevek nem megkülönböztetik a kis- és nagybetűket. A szolgáltatás például nem tud különbséget tenni az oszlop ID és a id.
  • Nincs engedélyezve dinamikus {field} név. Például a(z) {ID} szöveg {ID} szövegként van kezelve.
  • A nevet tartalmazó elérésiút-szegmensek száma nem haladhatja meg a 254-et.

Példák

Példák a Delta-elérési út nevére:

  • 1. példa: WestUS/CA/factory1/device-table
  • 2. példa: Teszt/bemutató
  • 3. példa: mytable

Példa kimeneti fájlokra:

  1. A kiválasztott tároló alatt a címtár elérési útja, WestEurope/CA/factory1 a deltatábla mappaneve pedig az eszköztáblázat lesz.
  2. A kiválasztott tároló alatt a címtár elérési útja, Test a delta tábla mappa neve pedig demo lesz.
  3. A kiválasztott tároló alatt a deltatábla mappaneve a mytable lesz.

Új tábla létrehozása

Ha még nincs delta lake-tábla ugyanazzal a névvel és a Delta Path név által megadott helyen, az Azure Stream Analytics alapértelmezés szerint létrehoz egy új Delta-táblát. Ez az új tábla a következő konfigurációval jön létre:

Írás a táblába

Ha már létezik egy Delta Lake-tábla ugyanazzal a névvel és a Delta Path név által megadott helyen, az Azure Stream Analytics alapértelmezés szerint új rekordokat ír a meglévő táblába.

Pontosan egyszer történő kézbesítés

A tranzakciónapló lehetővé teszi, hogy a Delta Lake pontosan egyszer garantálja a feldolgozást. Az Azure Stream Analytics pontosan egyszeri kézbesítést is biztosít, amikor adatokat ad ki az Azure Data Lake Storage Gen2-nek egyetlen feladat futtatása során.

Sémakényszerítés

A sémakényszerítés azt jelenti, hogy a rendszer kikényszeríti a tábla összes új írását, hogy íráskor kompatibilis legyen a céltábla sémájával az adatminőség biztosítása érdekében.

A kimeneti adatok összes rekordja a meglévő tábla sémájára lesz kivetítve. Ha a kimenet egy új delta táblába van írva, a táblaséma az első rekorddal jön létre. Ha a bejövő adatok egy plusz oszlopot tartalmaznak a meglévő táblázatsémához képest, akkor a rendszer a további oszlop nélkül írja be a táblába. Ha a bejövő adatokból hiányzik egy oszlop a meglévő táblázatsémához képest, akkor a rendszer a táblába írja az oszlopot null értékre.

Ha nincs metszet a deltatábla sémája és a streamelési feladat rekordjának sémája között, az sémakonvertálási hibapéldánynak minősül. Nem ez az egyetlen eset, amely sémakonvertálási hibának minősülne.

A sémaátalakítás sikertelensége esetén a feladat viselkedése a feladat szintjén konfigurált kimeneti adathiba-átadási szabályzatot követi.

Delta Log ellenőrzőpontok

A Stream Analytics-feladat rendszeresen hoz létre Delta Log ellenőrzőpontokat V1 formátumban. A deltanapló-ellenőrzőpontok a Delta-tábla pillanatképei, és általában a Stream Analytics-feladat által létrehozott adatfájl nevét tartalmazzák. Ha az adatfájlok száma nagy, akkor nagy ellenőrzőpontokhoz vezet, ami memóriaproblémákat okozhat a Stream Analytics-feladatban.

Korlátozások

  • A dinamikus partíciókulcs (amely a rekordséma egy oszlopának nevét adja meg a Delta Pathban) nem támogatott.
  • Több partícióoszlop nem támogatott. Ha több partícióoszlopra van szükség, javasoljuk, hogy használjon összetett kulcsot a lekérdezésben, majd adja meg partícióoszlopként.
    • A lekérdezésben létrehozhat egy összetett kulcsot, például: "Standard kiadás LECT concat (col1, col2) AS compositeColumn INTO [blobOutput] FROM [input]".
  • A Delta Lake-be való írás csak hozzáfűzést jelent.
  • A lekérdezéstesztelés sémaellenőrzése nem érhető el.
  • A Stream Analytics nem végzi el a kis méretű fájlok tömörítését.
  • Minden adatfájl tömörítés nélkül jön létre.
  • A Dátum és a Decimális típus nem támogatott.
  • Az Író 7. vagy újabb verziójának meglévő tábláiba írófunkciókkal való írása sikertelen.
  • Amikor egy Stream Analytics-feladat adatokat ír egy Delta Lake-be, több Fájl hozzáadása műveletet is létrehozhat. Ha túl sok fájlművelet jön létre egyetlen köteghez, a Stream Analytics-feladat elakadhat.
    • A létrehozott fájlműveletek számát számos tényező határozza meg:
      • A köteg mérete. Ezt az adatkötet és a minimális sorok és maximális idő kötegelési paraméterei határozzák meg.
      • A köteg partícióoszlop-értékeinek számossága.
    • A köteghez létrehozott fájlműveletek számának csökkentéséhez hajtsa végre a következő lépéseket:
      • A kötegelési konfigurációk minimális sorainak és maximális idejének csökkentése
      • Csökkentse a partícióoszlop értékeinek számosságát a bemeneti adatok finomhangolásával vagy egy másik partícióoszlop kiválasztásával
  • A Stream Analytics-feladatok csak egyrészes V1 ellenőrzőpontok olvasására és írására képesek. A többrészes ellenőrzőpontok és a Checkpoint V2 formátum nem támogatott.

Következő lépések