Share via


Unity Catalog のビューからストリーミングする

重要

この機能はパブリック プレビュー段階にあります。

Databricks Runtime 14.1 以降では、構造化ストリーミングを使って、Unity Catalog に登録されているビューからのストリーミング読み取りを実行できます。 Azure Databricks では、Delta テーブルに対して定義されたビューからのストリーミング読み取りのみがサポートされます。

ビューをストリームとして読み取る

構造化ストリーミングを使ってビューを読み取るには、次の例のように、ビューの識別子を .table() メソッドに対して指定します。

df = (spark.readStream
  .table("demoView")
)

ユーザーは、ターゲット ビューに対する SELECT 特権を持っている必要があります。

ビューに対するストリーミング読み取りの構成でサポートされているオプション

ビューに対するストリーミング読み取りを構成するときは、次のオプションがサポートされます。

  • maxFilesPerTrigger
  • maxBytesPerTrigger
  • ignoreDeletes
  • skipChangeCommits
  • withEventTimeOrder
  • startingTimestamp
  • startingVersion

ストリーミング リーダーは、基になる Delta テーブルを定義しているファイルとメタデータにこれらのオプションを適用します。

重要

UNION ALL で定義されているビューに対する読み取りでは、オプション withEventTimeOrderstartingVersion はサポートされません。

ソース ビューでサポートされる操作

すべてのビューがストリーミング読み取りをサポートしているわけではありません。 ソース ビューでサポートされていない操作には、集計と並べ替えが含まれます。

次の一覧は、サポートされている操作の説明とビュー定義の例です。

  • プロジェクト

    • 説明: 列レベルのアクセス許可を制御する

    • [演算子]: SELECT... FROM...

    • サンプル ステートメント:

      CREATE VIEW project_view AS
      SELECT id, value
      FROM source_table
      
  • Assert

    • 説明: 行レベルのアクセス許可を制御する

    • [演算子]: WHERE...

    • サンプル ステートメント:

      CREATE VIEW filter_view AS
      SELECT * FROM source_table
      WHERE value > 100
      
  • すべての和集合

    • 説明: 複数のテーブルからの結果

    • [演算子]: UNION ALL

    • サンプル ステートメント:

      CREATE VIEW union_view AS
      SELECT id, value FROM source_table1
      UNION ALL
      SELECT * FROM source_table2
      

Note

ビュー定義を変更して、ビューで参照されているテーブルを追加または変更したり、同じストリーミング チェックポイントを使ったりすることはできません。

制限事項

次の制限事項が適用されます。

  • ストリーミングできるのは、Delta テーブルによってサポートされるビューからのみです。 他のデータ ソースに対して定義されたビューはサポートされていません。

  • ビューを Unity Catalog に登録する必要があります。

  • サポートされていない演算子を使ってビューからストリーミングすると、次の例外が表示されます。

    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.
    
  • サポートされていないオプションを指定すると、次の例外が表示されます。

    AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.