Delen via


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.