Streamen aus Unity Catalog-Ansichten
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.
Lesen einer Ansicht als Datenstrom
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.