Verwenden von Unity Catalog mit strukturiertem Streaming
Verwenden Sie das strukturierte Streaming mit Unity Catalog, um die Datengovernance für Ihre inkrementellen und Streamingworkloads in Azure Databricks zu verwalten. Dieses Dokument beschreibt die unterstützten Funktionen und schlägt bewährte Methoden für die gemeinsame Nutzung von Unity Catalog und strukturiertem Streaming vor.
Welche Funktionen von strukturiertem Streaming unterstützt Unity Catalog?
Unity Catalog fügt keine expliziten Grenzwerte für Quellen und Senken von strukturiertem Streaming hinzu, die in Azure Databricks verfügbar sind. Mit dem Unity Catalog-Datengovernancemodell können Sie Daten aus verwalteten und externen Tabellen in Unity Catalog streamen. Sie können auch externe, von Unity Catalog verwaltete Speicherorte verwenden, um über Objektspeicher-URIs mit Daten zu interagieren. Sie können Tabellennamen oder Dateipfade zum Schreiben in externe Tabellen verwenden. Sie müssen mit verwalteten Tabellen in Unity Catalog über den Tabellennamen interagieren.
Verwenden Sie von Unity Catalog verwaltete externe Speicherorte, wenn Sie Pfade für Prüfpunkte des strukturierten Streamings angeben. Weitere Informationen zum sicheren Herstellen einer Verbindung mit dem Unity-Katalog finden Sie unter Herstellen einer Verbindung mit Cloudobjektspeicher und -diensten mithilfe des Unity-Katalogs.
Die Unterstützung der Funktion für strukturiertes Streaming hängt von der Databricks Runtime-Version ab, die Sie verwenden, und davon, ob Sie den zugewiesenen oder gemeinsamen Clusterzugriffsmodus verwenden. Ausführliche Informationen finden Sie unter Streamingeinschränkungen für Unity Catalog.
Eine End-to-End-Demo mit strukturiertem Streaming in Unity Catalog finden Sie unter Tutorial: Ausführen einer End-to-End-Lakehouse-Analysepipeline.
Welche Funktionen von strukturiertem Streaming werden von Unity Catalog nicht unterstützt?
Eine Liste der Features für strukturiertes Streaming, die in Unity Catalog nicht unterstützt werden, finden Sie unter Streamingeinschränkungen für Unity Catalog.
Lesen einer Unity Catalog-Ansicht als Stream
Wichtig
Dieses Feature befindet sich in der Public Preview.
In Databricks Runtime 14.1 und höher können Sie strukturiertes Streaming verwenden, um Streaming-Lesevorgänge aus Ansichten durchzuführen, die im Unity Catalog registriert sind. Azure Databricks unterstützt nur Streaminglesevorgänge aus Ansichten, die für Deltatabellen definiert sind.
Um eine Ansicht mit strukturiertem Streaming zu lesen, geben Sie der .table()
-Methode den Bezeichner für die Ansicht an, wie im folgenden Beispiel gezeigt:
df = (spark.readStream
.table("demoView")
)
Benutzer*innen müssen über SELECT
-Berechtigungen für die Zielansicht verfügen.
Unterstützte Optionen zum Konfigurieren von Streaminglesevorgängen für Ansichten
Die folgenden Optionen werden beim Konfigurieren von Streaminglesevorgängen für Ansichten unterstützt:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
Der Streamingleser wendet diese Optionen auf die Dateien und Metadaten an, die die zugrunde liegenden Deltatabellen definieren.
Wichtig
Lesevorgänge für Ansichten, die mit UNION ALL
definiert wurden, unterstützen die Optionen withEventTimeOrder
und startingVersion
nicht.
Unterstützte Vorgänge in Quellansichten
Nicht alle Ansichten unterstützen Streaminglesevorgänge. Nicht unterstützte Vorgänge in Quellansichten umfassen Aggregationen und Sortierung.
Die folgende Liste enthält Beschreibungen und Beispielansichtsdefinitionen für unterstützte Vorgänge:
Projekt
Beschreibung: steuert Berechtigungen auf Spaltenebene
Operator:
SELECT... FROM...
-Beispielanweisung:
CREATE VIEW project_view AS SELECT id, value FROM source_table
Filter
Beschreibung: steuert Berechtigungen auf Zeilenebene
Operator:
WHERE...
-Beispielanweisung:
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Union all
Beschreibung: Ergebnisse aus mehreren Tabellen
Operator:
UNION ALL
-Beispielanweisung:
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Hinweis
Sie können die Ansichtsdefinition nicht ändern, um die in der Ansicht referenzierten Tabellen hinzuzufügen oder zu ändern und denselben Streamingprüfpunkt zu verwenden.
Begrenzungen
Es gelten die folgenden Einschränkungen:
Sie können nur aus Ansichten streamen, die von Deltatabellen unterstützt werden. Für andere Datenquellen definierte Ansichten werden nicht unterstützt.
Sie müssen Ansichten beim Unity Catalog registrieren.
Die folgende Ausnahme wird angezeigt, wenn Sie aus einer Ansicht mit einem nicht unterstützten Operator streamen:
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.
Die folgende Ausnahme wird angezeigt, wenn Sie nicht unterstützte Optionen bereitstellen:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.