Strömma från Unity Catalog-vyer
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
I Databricks Runtime 14.1 och senare kan du använda Structured Streaming för att utföra strömmande läsningar från vyer som registrerats med Unity Catalog. Azure Databricks stöder endast strömmande läsningar från vyer som definierats mot Delta-tabeller.
Läsa en vy som en ström
Om du vill läsa en vy med Structured Streaming anger du identifieraren för vyn till .table()
metoden, som i följande exempel:
df = (spark.readStream
.table("demoView")
)
Användarna måste ha SELECT
behörighet i målvyn.
Alternativ som stöds för att konfigurera direktuppspelningsläsningar mot vyer
Följande alternativ stöds när du konfigurerar direktuppspelningsläsningar mot vyer:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
Den strömmande läsaren tillämpar dessa alternativ på de filer och metadata som definierar de underliggande Delta-tabellerna.
Viktigt!
Läsningar mot vyer som definierats med UNION ALL
stöder inte alternativen withEventTimeOrder
och startingVersion
.
Åtgärder som stöds i källvyer
Alla vyer stöder inte direktuppspelningsläsningar. Åtgärder som inte stöds i källvyer omfattar aggregeringar och sortering.
Följande lista innehåller beskrivningar och exempel på vydefinitioner för åtgärder som stöds:
Projekt
Beskrivning: Styr behörigheter på kolumnnivå
Operatör:
SELECT... FROM...
Exempelsats:
CREATE VIEW project_view AS SELECT id, value FROM source_table
Filtrera
Beskrivning: Styr behörigheter på radnivå
Operatör:
WHERE...
Exempelsats:
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Union all
Beskrivning: Resultat från flera tabeller
Operatör:
UNION ALL
Exempelsats:
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Kommentar
Du kan inte ändra vydefinitionen för att lägga till eller ändra tabellerna som refereras i vyn och använda samma kontrollpunkt för strömning.
Begränsningar
Följande begränsningar gäller:
Du kan bara strömma från vyer som backas upp av Delta-tabeller. Vyer som definierats mot andra datakällor stöds inte.
Du måste registrera vyer med Unity Catalog.
Följande undantag visas om du strömmar från en vy med en operator som inte stöds:
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.
Följande undantag visas om du anger alternativ som inte stöds:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.