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

プレビュー

この機能はパブリックプレビュー段階です。

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

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

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

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

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

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

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

  • maxFilesPerTrigger

  • maxBytesPerTrigger

  • ignoreDeletes

  • skipChangeCommits

  • withEventTimeOrder

  • startingTimestamp

  • startingVersion

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

重要

UNION ALL で定義されたビューに対する読み取りは、オプション withEventTimeOrder および startingVersionをサポートしていません。

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

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

次の一覧に、サポートされている操作の説明とビュー定義の例を示します。

  • プロジェクト

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

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

    • ステートメントの例:

      CREATE VIEW project_view AS
      SELECT id, value
      FROM source_table
      
  • フィルタ

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

    • 演算子: 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
      

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

制限事項

次の制限が適用されます:

  • ストリームは、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.
    
  • サポートされていないオプションを指定すると、次の例外が表示されます: ''' 分析例外: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW。UNSUPPORTED_OPTION] ビューのストリーミングはサポートされていません。 理由: オプション<option> はサポートされていません。```