Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
maxFilesPerTriggermaxBytesPerTriggerignoreDeletesskipChangeCommitswithEventTimeOrderstartingTimestampstartingVersion
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.