Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Auf dieser Seite erfahren Sie, wie Sie Structured Streaming mit Unity Catalog verwenden, um die Data Governance für Ihre inkrementellen und Streaming-Workloads in Azure Databricks zu verwalten.
Welche Funktionen von strukturiertem Streaming unterstützt Unity Catalog?
Der Unity-Katalog fügt keine expliziten Grenzwerte für strukturierte Streamingquellen und Senken hinzu, die auf Azure Databricks verfügbar sind.
Mit Unity-Katalog und strukturiertem Streaming können Sie:
- Daten aus verwalteten und externen Tabellen streamen. Siehe von Unity Catalog verwaltete Tabellen in Azure Databricks für Delta Lake und Apache Iceberg.
- Verwenden Sie externe Speicherorte, die vom Unity-Katalog verwaltet werden, um mit Daten mithilfe von Objektspeicher-URIs zu interagieren.
- Schreiben Sie in externe Tabellen mithilfe von Tabellennamen oder Dateipfaden. Um mit verwalteten Tabellen zu interagieren, müssen Sie den Tabellennamen verwenden.
Für strukturierte Streaming-Prüfpunkte müssen Sie Pfade an externen Speicherorten verwenden, die vom Unity-Katalog verwaltet werden. Weitere Informationen zum sicheren Verbinden von Speicher mit Unity-Katalog finden Sie unter Herstellen einer Verbindung mit dem Cloudobjektspeicher mithilfe des Unity-Katalogs.
Eine Unity Catalog-Ansicht als Stream lesen
In Databricks Runtime 14.3 LTS und höher können Sie strukturiertes Streaming verwenden, um aus Ansichten zu lesen, die im Unity-Katalog registriert sind. Die zugrunde liegenden Tabellen müssen das Delta Lake-Format verwenden. Weitere Einschränkungen finden Sie unter "Einschränkungen".
Um eine Ansicht mit Structured Streaming zu lesen, verwenden Sie die Methode .table() mit dem Bezeichner der Ansicht:
df = (spark.readStream
.table("demoView")
)
Benutzer*innen müssen über SELECT-Berechtigungen für die Zielansicht verfügen.
Wenn Sie die Ansichtsdefinition ändern, um die Tabellen hinzuzufügen oder zu ändern, auf die in der Ansicht verwiesen wird, können Sie nicht denselben Streamingprüfpunkt verwenden.
Unterstützte Streamingoptionen
Der Streamingleser wendet Optionen auf die Dateien und Metadaten der zugrunde liegenden Delta-Tabellen für die angegebene Ansicht an.
Die folgenden Optionen werden unterstützt:
maxFilesPerTriggermaxBytesPerTriggerignoreDeletesskipChangeCommitswithEventTimeOrderstartingTimestampstartingVersion
Lesevorgänge für Ansichten mit UNION ALL unterstützen die Optionen withEventTimeOrder und startingVersion nicht.
Wenn Sie nicht unterstützte Optionen wie readChangeFeed angeben, löst Spark diese Ausnahme aus:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.
Unterstützte Streamingvorgänge
Zu den unterstützten Vorgängen gehören:
| Vorgang | Description | Bediener | Beispiel |
|---|---|---|---|
| Project | Steuert Berechtigungen auf Spaltenebene | SELECT... FROM... |
CREATE VIEW project_view AS SELECT id, value FROM source_table |
| Filter | Steuert Berechtigungen auf Zeilenebene | WHERE... |
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100 |
| Alle Union | Ergebnisse aus mehreren Tabellen | UNION ALL |
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2 |
Nicht unterstützte Vorgänge umfassen Aggregationen, Sortier- und Tabellenwertfunktionen wie table_changes(). Ausführliche Informationen zu Tabellenwertfunktionen finden Sie unter "TvF"-Aufruf (Table-Valued Function).
Wenn Sie Daten aus einer Ansicht mit einer nicht unterstützten Operation streamen, gibt Spark folgende Ausnahme aus:
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.
Einschränkungen
- Der fortlaufende Verarbeitungsmodus von Apache Spark wird nicht unterstützt. Weitere Informationen finden Sie unter Kontinuierliche Verarbeitung im Programmierhandbuch für Spark Structured Streaming.
- Eine Liste der strukturierten Streamingfeatures, die auf dem Berechnungszugriffsmodus nicht unterstützt werden, finden Sie unter Streamingeinschränkungen, und Anforderungen für Streaming und materialisierte Ansichten auf dediziertem Compute.
- Für Ansichten als Streaming-Quelle gelten zusätzliche Einschränkungen:
- Sie können nur aus Ansichten streamen, die Delta-Tabellen abfragen. Andere Datenquellen werden nicht unterstützt.
- Sie müssen Ansichten beim Unity Catalog registrieren. Siehe Erstellen einer Ansicht.
- Streaming-Lesevorgänge für Ansichten unterstützen nicht alle Operationen oder Optionen. Weitere Informationen finden Sie unter "Unterstützte Streamingvorgänge " und "Unterstützte Streamingoptionen".