Freigeben über


Verwenden von Unity Catalog mit strukturiertem Streaming

Verwenden Sie das strukturierte Streaming mit Unity Catalog, um die Datengovernance für Ihre inkrementellen und Streamingworkloads in Azure Databricks zu verwalten. Dieses Dokument beschreibt die unterstützten Funktionen und schlägt bewährte Methoden für die gemeinsame Nutzung von Unity Catalog und strukturiertem Streaming vor.

Welche Funktionen von strukturiertem Streaming unterstützt Unity Catalog?

Unity Catalog fügt keine expliziten Grenzwerte für Quellen und Senken von strukturiertem Streaming hinzu, die in Azure Databricks verfügbar sind. Mit dem Unity Catalog-Datengovernancemodell können Sie Daten aus verwalteten und externen Tabellen in Unity Catalog streamen. Sie können auch externe, von Unity Catalog verwaltete Speicherorte verwenden, um über Objektspeicher-URIs mit Daten zu interagieren. Sie können Tabellennamen oder Dateipfade zum Schreiben in externe Tabellen verwenden. Sie müssen mit verwalteten Tabellen in Unity Catalog über den Tabellennamen interagieren.

Verwenden Sie von Unity Catalog verwaltete externe Speicherorte, wenn Sie Pfade für Prüfpunkte des strukturierten Streamings angeben. Weitere Informationen zum sicheren Herstellen einer Verbindung mit dem Unity-Katalog finden Sie unter Verbinden mit Cloudobjektspeicher mithilfe von Unity Catalog.

Die Unterstützung der Funktion für strukturiertes Streaming hängt von der Databricks Runtime-Version ab, die Sie verwenden, und davon, ob Sie den zugewiesenen oder gemeinsamen Clusterzugriffsmodus verwenden. Ausführliche Informationen finden Sie unter Streamingeinschränkungen für Unity Catalog.

Eine End-to-End-Demo mit strukturiertem Streaming in Unity Catalog finden Sie unter Tutorial: Ausführen einer End-to-End-Lakehouse-Analysepipeline.

Welche Funktionen von strukturiertem Streaming werden von Unity Catalog nicht unterstützt?

Eine Liste der Features für strukturiertes Streaming, die in Unity Catalog nicht unterstützt werden, finden Sie unter Streamingeinschränkungen für Unity Catalog.

Lesen einer Unity Catalog-Ansicht als Stream

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.

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.