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.