Share via


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.