Unity Catalog gebruiken met Structured Streaming
Gebruik Structured Streaming met Unity Catalog om gegevensbeheer te beheren voor uw incrementele en streamingworkloads in Azure Databricks. Dit document bevat een overzicht van de ondersteunde functionaliteit en geeft aanbevolen procedures voor het gebruik van Unity Catalog en Structured Streaming samen.
Welke structured streaming-functionaliteit biedt Unity Catalog ondersteuning?
Unity Catalog voegt geen expliciete limieten toe voor Structured Streaming-bronnen en sinks die beschikbaar zijn in Azure Databricks. Met het Unity Catalog-model voor gegevensbeheer kunt u gegevens streamen van beheerde en externe tables in Unity Catalog. U kunt ook externe locaties gebruiken die worden beheerd door Unity Catalog om te communiceren met gegevens met behulp van objectopslag-URI's. U kunt schrijven naar externe tables met behulp van table namen of bestandspaden. U moet communiceren met de beheerde tables op Unity Catalog met de naam table.
Gebruik externe locaties die worden beheerd door Unity Catalog bij het opgeven van paden voor controlepunten voor gestructureerd streamen. Zie Connect to cloud object storage and services using Unity Catalogvoor meer informatie over het veilig verbinden van opslag met Unity Catalog.
Ondersteuning voor gestructureerde streamingfuncties verschilt, afhankelijk van de Databricks Runtime-versie die u uitvoert en of u de toegewezen of gedeelde clustertoegangsmodus gebruikt. Zie Streaming-beperkingen voor Unity Catalogvoor meer informatie.
Voor een end-to-end demo met Structured Streaming op Unity Catalog, zie zelfstudie: Een end-to-end lakehouse-analysepijplijn uitvoeren.
Welke structured streaming-functionaliteit wordt niet ondersteund op Unity Catalog?
Zie Streaming-beperkingen voor Unity Catalogvoor een list van structured streaming-functies die niet worden ondersteund op Unity Catalog.
een Unity-Catalog-weergave lezen als een stream
Belangrijk
Deze functie is beschikbaar als openbare preview.
In Databricks Runtime 14.1 en hoger kunt u Structured Streaming gebruiken om streaming-leesbewerkingen uit te voeren van views, die is geregistreerd bij Unity Catalog. Azure Databricks ondersteunt alleen streaming-leesbewerkingen van views die zijn gedefinieerd op basis van Delta tables.
Als u een weergave met Structured Streaming wilt lezen, geeft u de identifier van de weergave op aan de .table()
-methode, zoals in het volgende voorbeeld.
df = (spark.readStream
.table("demoView")
)
Gebruikers moeten bevoegdheden hebben SELECT
voor de doelweergave.
Ondersteunde opties voor het configureren van streaming-leesbewerkingen op basis van views
De volgende opties worden ondersteund bij het configureren van streaming-leesbewerkingen op basis van views:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
De streaminglezer past deze opties toe op de bestanden en metagegevens die de onderliggende Delta-tablesdefiniëren.
Belangrijk
Leesbewerkingen op basis van views gedefinieerd met UNION ALL
bieden geen ondersteuning voor de opties withEventTimeOrder
en startingVersion
.
Ondersteunde bewerkingen in bron views
Niet alle views bieden ondersteuning voor streaming-leesbewerkingen. Niet-ondersteunde bewerkingen in bron views omvatten aggregaties en sorteringen.
De volgende list bevat beschrijvingen en voorbeeldweergavedefinities voor ondersteunde bewerkingen:
Project
Beschrijving: Beheert column-niveau machtigingen
Bediener:
SELECT... FROM...
Voorbeeldinstructie:
CREATE VIEW project_view AS SELECT id, value FROM source_table
Filteren
Beschrijving: Machtigingen op rijniveau beheren
Bediener:
WHERE...
Voorbeeldinstructie:
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Alles samenvoegen
Beschrijving: Resultaten van meerdere tables
Bediener:
UNION ALL
Voorbeeldinstructie:
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Notitie
U kunt de weergavedefinitie niet wijzigen om de tables waarnaar wordt verwezen in de weergave toe te voegen of te wijzigen en hetzelfde streamingcontrolepunt te gebruiken.
Beperkingen
De volgende beperkingen zijn van toepassing:
U kunt alleen streamen vanaf views ondersteund door Delta tables. Views gedefinieerd op basis van andere gegevensbronnen, worden niet ondersteund.
U moet views registreren bij Unity Catalog.
De volgende uitzondering wordt weergegeven als u vanuit een weergave streamt met een niet-ondersteunde operator:
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.
De volgende uitzondering wordt weergegeven als u niet-ondersteunde opties opgeeft:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.