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


Azure Stream Analytics: Írás 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 használatával közvetlenül írhat streamelési adatokat a Delta Lake-táblákba egyetlen kódsor írása nélkül.

A Stream Analytics-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 Delta-táblákhoz való nagy sebességű betöltésre van optimalizálva Hozzáfűzés módban. Emellett pontosan egyszeri szemantikát is biztosít, amely 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 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, a CSV, az Avro és a 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 megadott tárolón belüli írásához használt elérési út. Tartalmazza a tábla nevét. További információ a következő szakaszban található.
Partícióoszlop Opcionális. A {field} kimeneti adatoktól a partícióig. Csak egy partícióoszlop támogatott. Az oszlop értékének típusnak string kell lennie.

A Data Lake Storage Gen2 konfigurációjának teljes listáját az Azure Data Lake Storage Gen2 áttekintésében találja.

Delta elérési út neve

A Delta elérési út neve a Data Lake Storage Gen2-ben tárolt Delta Lake-tábla helyének és nevének megadására szolgál.

Egy vagy több elérésiút-szegmens használatával meghatározhatja a Delta tábla elérési útját és a Delta-tá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-elérési út nevének korlátozásai 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.
  • Nem engedélyezett dinamikus {field} név. Például {ID} {ID} szövegként van kezelve.
  • A nevet alkotó 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: Test/demo
  • 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 Delta tábla mappa neve pedig eszköztábla.
  2. A kiválasztott tároló alatt a könyvtár elérési útja, Test a Delta tábla mappa neve pedig demo.
  3. A kiválasztott tároló alatt a Delta tábla mappa neve a mytable.

Új tábla létrehozása

Ha még nincs azonos nevű Delta Lake-tábla, és a Delta elérési útja által megadott helyen van, a 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ó 2. verziója.
  • Olvasó 1- es verziója.
  • A tábla csak hozzáfűző.
  • A táblaséma az első észlelt rekord sémájával jön létre.

Írás a táblába

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

Pontosan egyszeri kézbesítés

A tranzakciónapló lehetővé teszi, hogy a Delta Lake pontosan egyszeri feldolgozást garantáljon. A Stream Analytics pontosan egyszeri kézbesítést is biztosít, amikor adatokat ad ki a 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 Delta-tábla sémája és a streamelési feladat rekordjának sémája között, a rendszer sémakonverziós hibapéldánynak számít. Nem ez az egyetlen eset, amely sémakonvertálási hibának minősül.

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

Delta-napló ellenőrzőpontjai

A Stream Analytics-feladat rendszeresen hoz létre Delta-napló 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, az nagy ellenőrzőpontokhoz vezet, ami memóriaproblémákat okozhat a Stream Analytics-feladatban.

Korlátozások

  • A dinamikus partíciókulcs (a rekordséma egy oszlopának nevének megadása a Delta útvonalon) nem támogatott.
  • Több partícióoszlop nem támogatott. Ha több partícióoszlopot szeretne, javasoljuk, hogy használjon összetett kulcsot a lekérdezésben, majd adja meg partícióoszlopként.
    • A lekérdezésben összetett kulcs hozható létre. Például: "SELECT 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ájl hozzáadása művelet jön létre egyetlen köteghez, egy Stream Analytics-feladat elakadhat.
    • A létrehozott Fájl hozzáadása műveletek számát számos tényező határozza meg:
    • A köteghez létrehozott Fájl hozzáadása műveletek számának csökkentése:
      • Csökkentse a kötegelési konfigurációk minimális sorait és maximális idejét.
      • Csökkentse a partícióoszlop értékeinek számosságát a bemeneti adatok módosítá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 az ellenőrzőpont V2 formátuma nem támogatott.