A Unity Catalog használata strukturált streameléssel

Ez az oldal bemutatja, hogyan használható a Structured Streaming a Unity Cataloggal a növekményes és streaming számítási feladatok adatirányításának kezelésére az Azure Databricksben.

Milyen strukturált streamelési funkciókat támogat a Unity Catalog?

A Unity Catalog nem vezet be kifejezett korlátozásokat az Azure Databricksben elérhető Structured Streaming-források és -nyelők esetében.

A Unity Catalog és a strukturált streamelés a következőkkel érhető el:

  • Adatokat streamelhet mind kezelt, mind külső táblákból. Lásd a Unity Catalog által felügyelt táblákat a Delta Lake-hez és az Apache Iceberghez.
  • A Unity Catalog által felügyelt külső helyek használatával objektumtárolási URI-k használatával kezelheti az adatokat.
  • Írjon külső táblákba akár táblanév, akár fájlelérési út használatával. A felügyelt táblák használatához a tábla nevét kell használnia.

Strukturált streamelési ellenőrzőpontok esetén a Unity Catalog által felügyelt külső helyeken kell elérési utakat használnia. A tároló és a Unity Catalog biztonságos összekapcsolásáról további információt a Csatlakozás a felhőbeli objektumtárolóhoz a Unity Catalog használatával című témakörben talál.

Olvasson egy Unity Catalog-nézetet streamként

A Databricks Runtime 14.3 LTS-ben és újabb verziókban a Strukturált streamelés használatával olvashat a Unity Catalogban regisztrált nézetekből. Az alapul szolgáló tábláknak Delta Lake formátumot kell használniuk. Egyéb korlátozásokért lásd a Korlátozások című témakört.

A strukturált streamelési nézet olvasásához használja a .table() metódust a nézet azonosítójával:

df = (spark.readStream
  .table("demoView")
)

A felhasználóknak jogosultságokkal kell rendelkezniük SELECT a célnézetben.

Ha úgy módosítja a nézetdefiníciót, hogy hozzáadja vagy módosítsa a nézetben hivatkozott táblákat, nem használhatja ugyanazt a streamelési ellenőrzőpontot.

Támogatott streamelési lehetőségek

A streamolvasó a megadott nézet alapjául szolgáló Delta Lake-táblák fájljaira és metaadataira alkalmazza a beállításokat.

A következő lehetőségek támogatottak:

  • maxFilesPerTrigger
  • maxBytesPerTrigger
  • ignoreDeletes
  • skipChangeCommits
  • withEventTimeOrder
  • startingTimestamp
  • startingVersion

A UNION ALL elemet tartalmazó nézetolvasások nem támogatják a withEventTimeOrder és startingVersion beállítást.

Ha nem támogatott beállításokat ad meg, például readChangeFeeda Spark a következő kivételt emeli ki:

AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.

Támogatott streamelési műveletek

A támogatott műveletek a következők:

Operation Description Operator Example
Projekt Oszlopszintű engedélyek vezérlése SELECT... FROM... CREATE VIEW project_view AS SELECT id, value FROM source_table
Szűrő Sorszintű engedélyek vezérlése WHERE... CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Az összes egyesítő Eredmények több táblából UNION ALL CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2

A nem támogatott műveletek közé tartoznak az aggregációk, a rendezés és a táblaértékelt függvények, például table_changes()a . A táblaértékelt függvényekkel kapcsolatos részletekért lásd: Table-valued function (TVF) invocation.

Ha nem támogatott művelettel streamel egy nézetből, a Spark a következő kivételt emeli ki:

UnsupportedOperationException: [UNEXPECTED_OPERATOR_IN_STREAMING_VIEW] Unexpected operator <operator> in the CREATE VIEW statement as a streaming source. A streaming view query must consist only of SELECT, WHERE, and UNION ALL operations.

korlátozások

  • Az Apache Spark folyamatos feldolgozási módja nem támogatott. Tekintse meg a folyamatos feldolgozást a Spark strukturált streamelési programozási útmutatójában.
  • A Unity Katalógusban a számítási hozzáférési mód alapján nem támogatott strukturált streamelési funkciók listájáért tekintse meg a streamelési korlátozásokat , valamint a streamelési és materializált nézetre vonatkozó követelményeket a dedikált számításhoz.
  • A streamforrásként való nézetekre további korlátozások vonatkoznak:
    • Csak a Delta Lake-táblákat lekérdező nézetekből streamelhet. Más adatforrások nem támogatottak.
    • A nézeteket regisztrálnia kell a Unity Catalogban. Lásd: Nézet létrehozása.
    • A nézetekre vonatkozó streaming olvasások nem támogatnak minden műveletet és beállítást. Lásd : Támogatott streamelési műveletek és támogatott streamelési lehetőségek.
    • Ha új oszlopot ad hozzá egy nézethez, mielőtt egy stream frissíti a mögöttes tábla sémáját, a stream egy hiányzó oszlophiba miatt meghiúsul. Hozzá kell adnia az új oszlopot a mögöttes táblához, várnia kell, amíg a stream feldolgozni tudja a táblaverziót, majd hozzá kell adnia az oszlopot a nézethez.