Verwenden von Unity Catalog mit strukturiertem Streaming

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:

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:

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

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