メインコンテンツまでスキップ

LakeFlow宣言型パイプライン イベント ログ スキーマ

Lakeflow 宣言型パイプライン イベント ログには、監査ログ、データ品質チェック、パイプラインの進行状況、データリネージなど、パイプラインに関連するすべての情報が含まれています。

次の表は、イベント ログ スキーマについて説明しています。これらのフィールドの一部には、 detailsフィールドなど、一部のクエリを実行するために解析が必要な JSON データが含まれています。Databricks は、JSON フィールドを解析するための:演算子をサポートしています。: (コロン記号) 演算子を参照してください。

注記

イベント ログの一部のフィールドは、Databricks による内部使用を目的としています。次のドキュメントでは、顧客が使用することを目的としたフィールドについて説明します。

LakeFlow宣言型パイプライン イベント ログの使用方法の詳細については、 LakeFlow宣言型パイプライン イベント ログ」を参照してください。

PipelineEvent オブジェクト

イベント ログ内の単一のパイプラインのイベントを表します。

フィールド

説明

id

イベント ログ レコードの一意の識別子。

sequence

イベントを識別および順序付けるメタデータを含む JSON 文字列。

origin

イベントの発生元のメタデータ (クラウド プロバイダー、クラウド プロバイダーのリージョン、ユーザー、パイプライン情報など) を含む JSON 文字列。Origin オブジェクトを参照してください。

timestamp

イベントが記録された時刻(UTC)。

message

イベントを説明する、人間が読めるメッセージ。

level

警告レベル。可能な値は次のとおりです。

  • INFO: 情報イベント
  • WARN: 予期しないが重大ではない問題
  • ERROR: ユーザーの注意が必要なイベントの失敗
  • METRICS: Delta テーブルにのみ保存され、パイプライン UI には表示されない大量のイベントに使用されます。

maturity_level

イベント スキーマの安定性。可能な値は次のとおりです。

  • STABLE: スキーマは安定しており、変更されません。
  • NULL: スキーマは安定しており、変更されません。maturity_levelフィールドが追加される前にレコードが作成された場合 (リリース 2022.37 )、値はNULLなる可能性があります。
  • EVOLVING: スキーマは安定しておらず、変更される可能性があります。
  • DEPRECATED: スキーマは非推奨であり、 LakeFlow宣言型パイプライン ランタイムがいつでもこのイベントの生成を停止する可能性があります。

EVOLVINGフィールドまたはDEPRECATEDフィールドに基づいてモニタリングまたはアラートを構築することはお勧めできません。

error

エラーが発生した場合は、エラーの詳細を表示します。

details

イベントの構造化された詳細を含む JSON 文字列。これは、イベントを分析するために使用される主要なフィールドです。JSON 文字列の形式はevent_typeによって異なります。詳細については、詳細オブジェクトを参照してください。

event_type

イベントの種類。イベント タイプの一覧と、それによって作成される詳細オブジェクト タイプについては、 「詳細オブジェクト」を参照してください。

詳細オブジェクト

各イベントには、イベントのevent_typeに基づいて、JSON オブジェクト内に異なるdetailsプロパティがあります。この表には、 event_typeと関連するdetailsリストされています。detailsプロパティについては、詳細タイプセクションで説明されています。

詳細タイプ event_type

説明

create_update

パイプラインの更新を開始するために使用される完全な構成をキャプチャします。Databricks によって設定されたすべての構成が含まれます。詳細については、 create_update の詳細を参照してください。

user_action

パイプラインでのユーザー アクション (パイプラインの作成、更新の開始またはキャンセルなど) の詳細を提供します。詳細については、 user_action イベントの詳細を参照してください。

flow_progress

フロー開始、実行、完了、失敗までのライフサイクルを説明します。詳細については、 flow_progress イベントの詳細を参照してください。

update_progress

パイプライン更新の開始、実行、完了、失敗までのライフサイクルについて説明します。詳細については、 update_progress イベントの詳細を参照してください。

flow_definition

特定のフローで発生する変換のスキーマとクエリ プランを定義します。Dataflow DAG のエッジと考えることができます。各フローのリネージを計算したり、説明されたクエリプランを確認したりするために使用できます。 詳細については、 flow_definition イベントの詳細を参照してください。

dataset_definition

特定のフローのソースまたは宛先となるデータセットを定義します。詳細については、 dataset_definition イベントの詳細を参照してください。

sink_definition

特定のシンクを定義します。詳細については、 sink_definition イベントの詳細を参照してください。

deprecation

このパイプラインが使用する、まもなく廃止される、または現在廃止される機能を一覧表示します。値の例については、非推奨イベントの詳細列挙型を参照してください。

cluster_resources

クラシックコンピュート上で動作するパイプラインのクラスターリソースに関する情報が含まれています。 これらのメトリクスは、クラシック コンピュート パイプラインに対してのみ設定されます。 詳細については、 「cluster_resources イベントの詳細」を参照してください。

autoscale

クラシックコンピュートで動作するパイプライン用オートスケールに関する情報が含まれています。 これらのメトリクスは、クラシック コンピュート パイプラインに対してのみ設定されます。 詳細については、 「オートスケールイベントの詳細」を参照してください。

planning_information

マテリアライズドビューの増分更新と完全更新に関連する計画情報を表します。 マテリアライズドビューが完全に再計算される理由の詳細を取得するために使用できます。 詳細については、 planning_information イベントの詳細を参照してください。

hook_progress

パイプラインの実行中にユーザー フックの現在のステータスを示すイベント。イベントフックのステータスをモニタリングするために使用されます。たとえば、外部の可観測性製品に送信されます。 詳細については、 hook_progress イベントの詳細を参照してください。

operation_progress

操作の進行状況に関する情報が含まれます。詳細については、 operation_progress イベントの詳細を参照してください。

stream_progress

パイプラインの進行状況に関する情報が含まれます。詳細については、 stream_progress イベントの詳細を参照してください。

詳細タイプ

次のオブジェクトは、 PipelineEventオブジェクト内の異なるイベント タイプのdetails表します。

create_updateの詳細

create_updateイベントの詳細。

フィールド

説明

dbr_version

Databricks Runtime のバージョン。

run_as

更新が実行されるユーザー ID。通常、これはパイプラインまたはサービスプリンシパルの所有者です。

cause

更新の理由。通常、ジョブから実行される場合はJOB_TASK 、ユーザーが対話的に実行する場合にはUSER_ACTIONになります。

user_action イベントの詳細

user_actionイベントの詳細。次のフィールドが含まれます:

フィールド

説明

user_name

パイプラインの更新をトリガーしたユーザーの名前。

user_id

パイプラインの更新をトリガーしたユーザーの ID。これは、 run_asユーザーと常に同じであるとは限りません。サービスプリンシパルまたは他のユーザーである可能性があります。

action

ユーザーが実行したアクションSTARTCREATEなど)。

flow_progressイベントの詳細

flow_progressイベントの詳細。

フィールド

説明

status

フローの新しいステータス。次のいずれかになります:

  • QUEUED
  • STARTING
  • RUNNING
  • COMPLETED
  • FAILED
  • SKIPPED
  • STOPPED
  • IDLE
  • EXCLUDED

metrics

流れについてのメトリクス。 詳細については、 FlowMetrics を参照してください。

data_quality

フローとそれに関連する期待に関するデータ品質メトリクス。 詳細については、 DataQualityMetricsを参照してください。

update_progressイベントの詳細

update_progressイベントの詳細。

フィールド

説明

state

更新の新しい状態。次のいずれかになります:

  • QUEUED
  • CREATED
  • WAITING_FOR_RESOURCES
  • INITIALIZING
  • RESETTING
  • SETTING_UP_TABLES
  • RUNNING
  • STOPPING
  • COMPLETED
  • FAILED
  • CANCELED

たとえば、合計期間からリソースの待機に費やされた時間まで、パイプライン更新のさまざまなステージの期間を計算するのに役立ちます。

cancellation_cause

更新がCANCELED状態になった理由。USER_ACTIONWORKFLOW_CANCELLATION (更新をトリガーしたワークフローがキャンセルされた) などの理由が含まれます。

flow_definitionイベントの詳細

flow_definitionイベントの詳細。

フィールド

説明

input_datasets

このフローによって読み取られる入力。

output_dataset

このフローが書き込む出力データセット。

output_sink

このフローが書き込む出力シンク。

explain_text

説明されたクエリ プラン。

schema_json

Spark SQL JSON スキーマ文字列。

schema

このフローのスキーマ。

flow_type

フローの種類。次のいずれかになります:

  • COMPLETE: ストリーミング テーブルは、完全 (ストリーミング) モードで宛先に書き込みます。

  • CHANGE: APPLY_CHANGES_INTOを使用したストリーミング テーブル。

  • SNAPSHOT_CHANGE: APPLY CHANGES INTO ... FROM SNAPSHOT ...を使用したストリーミング テーブル。

  • APPEND: ストリーミング テーブルは追加 (ストリーミング) モードで宛先に書き込みます。

  • MATERIALIZED_VIEW: マテリアライズドビューに出力します。

  • VIEW: ビューに出力します。

comment

データセットに関するユーザーのコメントまたは説明。

spark_conf

このフローに設定された Spark 設定。

language

このフローを作成するために使用される言語。SCALAPYTHON 、またはSQLになります。

once

このフローが 1 回実行されるように宣言されたかどうか。

dataset_definitionイベントの詳細

dataset_definitionイベントの詳細。次のフィールドが含まれます:

フィールド

説明

dataset_type

マテリアライズドビューとストリーミングテーブルを区別します。

num_flows

データセットに書き込むフローの数。

expectations

データセットに関連付けられた期待値。

sink_definitionイベントの詳細

sink_definitionイベントの詳細。

フィールド

説明

format

シンクの形式。

options

シンクに関連付けられたキーと値のオプション。

廃止イベントの詳細列挙型

deprecationイベントにはmessageフィールドがあります。messageに使用できる値は次のとおりです。これは時間の経過とともに増えていく部分的なリストです。

フィールド

説明

TABLE_MANAGED_BY_MULTIPLE_PIPELINES

テーブルは複数のパイプラインで管理されます。

INVALID_CLUSTER_LABELS

サポートされていないクラスター ラベルを使用しています。

PINNED_DBR_VERSION

パイプライン設定でchannelの代わりにdbr_version使用します。

PREVIOUS_CHANNEL_USED

リリース チャンネルPREVIOUSを使用します。これは将来のリリースで廃止される可能性があります。

LONG_DATASET_NAME

サポートされている長さよりも長いデータ セット名を使用しています。

LONG_SINK_NAME

サポートされている長さよりも長いシンク名を使用しています。

LONG_FLOW_NAME

サポートされている長さよりも長いフロー名を使用しています。

ENHANCED_AUTOSCALING_POLICY_COMPLIANCE

クラスターポリシーは、拡張オートスケールが固定クラスターサイズを使用する場合にのみ準拠します。

DATA_SAMPLE_CONFIGURATION_KEY

構成キーを使用してデータ サンプリングを構成することは非推奨です。

INCOMPATIBLE_CLUSTER_SETTINGS

現在のクラスター設定またはクラスターポリシーは、 LakeFlow宣言型パイプラインと互換性がなくなりました。

STREAMING_READER_OPTIONS_DROPPED

ドロップされるストリーミング リーダー オプションを使用します。

DISALLOWED_SERVERLESS_STATIC_SPARK_CONFIG

サーバレス パイプラインのパイプライン構成を介して静的Spark構成を設定することは許可されていません。

INVALID_SERVERLESS_PIPELINE_CONFIG

サーバレス カスタマが無効なパイプライン構成を提供しています。

UNUSED_EXPLICIT_PATH_ON_UC_MANAGED_TABLE

UCマネージドテーブルで未使用の明示的なテーブルパスを指定する。

FOREACH_BATCH_FUNCTION_NOT_SERIALIZABLE

提供された foreachBatch 関数はシリアル化できません。

DROP_PARTITION_COLS_NO_PARTITIONING

partition_cols 属性を削除すると、パーティション化は行われません。

PYTHON_CREATE_TABLE

@dlt.create_table を使用する@dp.table または @dp.materialized_view の代わりに。

PYTHON_CREATE_VIEW

@dlt.create_view を使用する@dp.temporary_view の代わりに。

PYTHON_CREATE_STREAMING_LIVE_TABLE

create_streaming_tableの代わりにcreate_streaming_live_table使用します。

PYTHON_CREATE_TARGET_TABLE

create_streaming_tableの代わりにcreate_target_table使用します。

FOREIGN_KEY_TABLE_CONSTRAINT_CYCLE

パイプラインによって管理されるテーブル セットには、外部キー制約のセットに循環があります。

PARTIALLY_QUALIFIED_TABLE_REFERENCE_INCOMPATIBLE_WITH_DEFAULT_PUBLISHING_MODE

デフォルトの公開モードと従来の公開モードでは意味が異なる、部分的に修飾されたテーブル参照。

cluster_resources イベントの詳細

cluster_resourcesイベントの詳細。クラシック コンピュートで実行されているパイプラインにのみ適用されます。

フィールド

説明

task_slot_metrics

クラスターのタスクスロット メトリクス。 詳細については、 TaskSlotMetrics オブジェクトを参照してください。

autoscale_info

オートスケーラーの状態。詳細については、 AutoscaleInfo オブジェクトを参照してください。

オートスケールイベント詳細

autoscaleイベントの詳細。オートスケール イベントは、パイプラインがクラシック コンピュートを使用する場合にのみ適用されます。

フィールド

説明

status

このイベントのステータス。次のいずれかになります:

  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED

optimal_num_executors

min_workersおよびmax_workers境界を適用する前にアルゴリズムによって提案されるエグゼキューターの最適な数。

requested_num_executors

アルゴリズムによって提案されたエグゼキューターの最適な数をmin_workersおよびmax_workers範囲に切り捨てた後のエグゼキューターの数。

planning_informationイベントの詳細

planning_informationイベントの詳細。更新中に特定のフローに対して選択された更新タイプに関連する詳細を確認するのに役立ちます。更新が増分更新ではなく完全更新される理由をデバッグするために使用できます。増分更新の詳細については、 「マテリアライズドビューの増分更新」を参照してください。

フィールド

説明

technique_information

アップデート関連情報。 これには、選択された更新方法と検討された可能性のある更新方法の両方の情報が含まれます。マテリアライズドビューが増分化に失敗した理由をデバッグするのに役立ちます。 詳細については、 TechniqueInformationを参照してください。

source_table_information

ソース テーブル情報。マテリアライズドビューが増分化に失敗した理由をデバッグするのに役立ちます。 詳細については、 TableInformation オブジェクトを参照してください。

target_table_information

ターゲット テーブル情報。詳細については、 TableInformation オブジェクトを参照してください。

hook_progressイベントの詳細

hook_progressイベントの詳細。次のフィールドが含まれます:

フィールド

説明

name

ユーザーフックの名前。

status

ユーザー フックのステータス。

operation_progressイベントの詳細

operation_progressイベントの詳細。次のフィールドが含まれます:

フィールド

説明

type

追跡されている操作の種類。次のいずれか:

  • AUTO_LOADER_LISTING
  • AUTO_LOADER_BACKFILL
  • CONNECTOR_FETCH
  • CDC_SNAPSHOT

status

操作のステータス。次のいずれか:

  • STARTED
  • COMPLETED
  • CANCELED
  • FAILED
  • IN_PROGRESS

duration_ms

操作の合計経過時間(ミリ秒単位)。終了イベントにのみ含まれます (ステータスがCOMPLETEDCANCELED 、またはFAILED場合)。

stream_progressイベントの詳細

備考

プレビュー

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

stream_progressイベントの詳細。次のフィールドが含まれます:

フィールド

説明

stream_progress

パイプライン ストリームの詳細。StreamingQueryListener構造化ストリーミングのメトリクスに似ています。

違いについては次の段落で説明します。StreamingQueryListenerメトリクスの完全なドキュメントについては、 StreamingQueryListener オブジェクトのメトリクスをご覧ください。

stream_progressStreamingQueryListenerオブジェクト メトリクスの違い:

  • 次のメトリクスは、 StreamingQueryListenerには存在しますが、 stream_progressには存在しません: numInputRowsinputRowsPerSecond 、およびprocessedRowsPerSecond
  • Kafka および Kineses ストリームの場合、 startOffsetendOffset 、およびlatestOffsetフィールドが大きすぎる可能性があるため、切り捨てられます。これらのフィールドごとに、データが切り捨てられるかどうかを示すBoolean値を持つ追加の...Truncatedフィールド、 startOffsetTruncatedendOffsetTruncated 、およびlatestOffsetTruncatedが追加されます。

その他のオブジェクト

次のオブジェクトは、イベント オブジェクト内の追加データまたは列挙型を表します。

AutoscaleInfo オブジェクト

クラスター用のオートスケール メトリクス。 クラシック コンピュートで実行されているパイプラインにのみ適用されます。

フィールド

説明

state

オートスケールのステータスです。 次のいずれかになります:

  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED

optimal_num_executors

最適なエグゼキューターの数。 これは、ユーザーが指定したエグゼキューターの最小/最大数によって切り捨てられる前に、アルゴリズムによって提案される最適なサイズです。

latest_requested_num_executors

最新のリクエストで状態マネージャーによってクラスター マネージャーに要求されたエグゼキューターの数。これは、状態マネージャーがスケーリングしようとしているエグゼキューターの数であり、タイムアウトが発生した場合に状態マネージャーがスケーリング状態を終了しようとするときに更新されます。保留中のリクエストがない場合、このフィールドは入力されません。

request_pending_seconds

スケーリング要求が保留されている時間の長さ。保留中のリクエストがない場合、このフィールドは入力されません。

CostModelRejectionSubType オブジェクト

planning_informationイベントでの完全更新と増分更新のコストに基づいて、増分化が拒否される理由の列挙。

Value

説明

NUM_JOINS_THRESHOLD_EXCEEDED

クエリに含まれる結合が多すぎるため、完全に更新します。

CHANGESET_SIZE_THRESHOLD_EXCEEDED

ベース テーブル内の変更された行が多すぎるため、完全に更新します。

TABLE_SIZE_THRESHOLD_EXCEEDED

基本テーブルのサイズがしきい値を超えたため、完全に更新します。

EXCESSIVE_OPERATOR_NESTING

クエリ定義が複雑で、演算子のネスト レベルが多いため、完全に更新します。

COST_MODEL_REJECTION_SUB_TYPE_UNSPECIFIED

その他の理由により完全に更新されます。

DataQualityMetrics オブジェクト

フロー内で期待がどのように満たされるかに関するメトリクス。 flow_progressイベントの詳細で使用されます。

フィールド

説明

dropped_records

1 つ以上のエクスペクテーション基準を満たなかったたために削除されたレコードの数。

expectations

フローのクエリ プラン内の任意のデータセットに追加される期待値のメトリクス。 複数の期待がある場合、これを使用して、どの期待が満たされたか、または満たされなかったかを追跡できます。詳細については、 ExpectationMetrics オブジェクトを参照してください。

ExpectationMetricsオブジェクト

特定の期待に対する期待に関するメトリクス。

フィールド

説明

name

期待値の名前。

dataset

期待値が追加されたデータセットの名前。

passed_records

期待値を満たすレコードの数。

failed_records

期待に応えられなかったレコードの数。期待が満たされたかどうかを追跡しますが、レコードに何が起こるか (警告、失敗、またはレコードの削除) は説明しません。

FlowMetricsオブジェクト

フローの合計と特定のソースごとの内訳の両方を含む、フローに関するメトリクス。 flow_progressイベントの詳細で使用されます。

各ストリーミング ソースは、特定のフロー メトリクスのみをサポートします。 次の表は、サポートされているストリーミング ソースで利用可能なメトリクスを示しています。

source

バックログバイト

バックログ記録

バックログ秒数

バックログファイル

Kafka

Kinesis

Delta

Auto Loader

Google Pub/Sub

フィールド

説明

num_output_rows

このフローの更新によって書き込まれた出力行の数。

backlog_bytes

フロー内のすべての入力ソースにわたるバックログの合計(バイト単位)。

backlog_records

フロー内のすべての入力ソースにわたるバックログ レコードの合計。

backlog_files

フロー内のすべての入力ソースにわたるバックログ ファイルの合計。

backlog_seconds

フロー内のすべての入力ソースの最大バックログ秒数。

executor_time_ms

レポート期間中のこのフローのすべてのタスク実行時間の合計(ミリ秒単位)。

executor_cpu_time_ms

レポート期間中のこのフローのすべてのタスク実行 CPU 時間の合計 (ミリ秒単位)。

num_upserted_rows

このフローの更新によってデータセットにアップサートされた出力行の数。

num_deleted_rows

このフローの更新によってデータセットから削除された既存の出力行の数。

num_output_bytes

このフローの更新によって書き込まれた出力バイトの数。

source_metrics

フロー内の各入力ソースのメトリクス。 LakeFlow宣言型パイプラインの外部のソース ( Apache Kafka 、Pulsar、またはAuto Loaderなど) からの取り込みの進行状況をモニタリングするのに役立ちます。 次のフィールドが含まれます:

  • source_name: ソースの名前。
  • backlog_bytes: このソースのバックログ(バイト単位)。
  • backlog_records: このソースのバックログ レコード。
  • backlog_files: このソースのバックログ ファイル。
  • backlog_seconds: このソースのバックログ秒数。

IncrementalizationIssue オブジェクト

更新を計画するときに完全な更新を引き起こす可能性がある増分化の問題を表します。

フィールド

説明

issue_type

マテリアライズドビューの増分を妨げる可能性がある問題のタイプ。 詳細については、 「問題タイプ」を参照してください。

prevent_incrementalization

この問題により増分化が妨げられたかどうか。

table_information

CDF_UNAVAILABLEINPUT_NOT_IN_DELTADATA_FILE_MISSINGなどの問題に関連付けられたテーブル情報。

operator_name

プラン関連の情報です。問題タイプが、非決定性または非増分性を引き起こす演算子または式に対してPLAN_NOT_DETERMINISTICまたはPLAN_NOT_INCREMENTALIZABLEのいずれかである場合に、問題に対して設定します。

expression_name

式の名前。

join_type

演算子が結合の場合の補助情報。たとえば、 JOIN_TYPE_LEFT_OUTERまたはJOIN_TYPE_INNERです。

plan_not_incrementalizable_sub_type

問題タイプがPLAN_NOT_INCREMENTALIZABLE場合の詳細カテゴリ。詳細については、 PlanNotIncrementalizableSubType オブジェクトを参照してください。

plan_not_deterministic_sub_type

問題タイプがPLAN_NOT_DETERMINISTIC場合の詳細カテゴリ。詳細については、 PlanNotDeterministicSubType オブジェクトを参照してください。

fingerprint_diff_before

以前の指紋との差分。

fingerprint_diff_current

現在のフィンガープリントとの差分。

cost_model_rejection_subtype

問題タイプがINCREMENTAL_PLAN_REJECTED_BY_COST_MODEL場合の詳細カテゴリ。詳細については、 CostModelRejectionSubType オブジェクトを参照してください。

IssueTypeオブジェクト

完全な更新を引き起こす可能性のある問題タイプの列挙。

Value

説明

CDF_UNAVAILABLE

一部の実表では CDF (変更データフィード) が有効になっていません。 table_informationフィールドには、CDF が有効になっていないテーブルに関する情報が提供されます。基本テーブルに対して CDF を有効にするには、 ALTER TABLE <table-name> SET TBLPROPERTIES ( 'delta.enableChangeDataFeed' = true)を使用します。ソーステーブルがマテリアライズドビューの場合、CDF は必ずONに設定する必要があります。

DELTA_PROTOCOL_CHANGED

一部の基本テーブル ( table_informationフィールドの詳細) で Delta プロトコルが変更されたため、完全に更新します。

DATA_SCHEMA_CHANGED

一部のベース テーブル ( table_informationフィールドの詳細) で、マテリアライズドビュー定義で使用される列のデータ スキーマが変更されたため、完全に更新されました。 マテリアライズドビューが使用しない列が変更されているか、ベーステーブルに追加されている場合は関係ありません。

PARTITION_SCHEMA_CHANGED

一部の基本テーブル ( table_informationフィールドの詳細) のパーティション スキーマが変更されたため、完全に更新します。

INPUT_NOT_IN_DELTA

マテリアライズドビュー定義にはデルタ以外の入力が含まれるため、完全に更新されます。

DATA_FILE_MISSING

一部の基本テーブル ファイルは保持期間によりすでにvacuumいるため、完全に更新されます。

PLAN_NOT_DETERMINISTIC

マテリアライズドビュー定義の一部の演算子または式が決定的ではないため、完全に更新されました。 operator_nameフィールドとexpression_nameフィールドには、問題の原因となった演算子または式に関する情報が示されます。

PLAN_NOT_INCREMENTALIZABLE

マテリアライズドビュー定義内の一部の演算子または式は増分可能ではないため、完全に更新されました。

SERIALIZATION_VERSION_CHANGED

クエリ フィンガープリント ロジックに大きな変更があったため、完全に更新します。

QUERY_FINGERPRINT_CHANGED

マテリアライズドビューの定義が変更されたか、 LakeFlow宣言型パイプラインのリリースによりクエリ評価計画が変更されたため、完全に更新されました。

CONFIGURATION_CHANGED

クエリの評価に影響する可能性のあるキー構成 (たとえば、 spark.sql.ansi.enabled ) が変更されたため、完全に更新します。マテリアライズドビュー内の矛盾した状態を回避するには、完全な再計算が必要です。

CHANGE_SET_MISSING

マテリアライズドビューの最初のコンピュートなので完全に更新しました。 これは、最初のマテリアライズドビュー計算で予期される動作です。

EXPECTATIONS_NOT_SUPPORTED

マテリアライズドビュー定義には増分更新ではサポートされていない期待値が含まれているため、完全に更新されます。 増分サポートが必要な場合は、期待値を削除するか、マテリアライズドビュー定義の外でそれらを処理します。

TOO_MANY_FILE_ACTIONS

ファイルアクションの数が増分処理のしきい値を超えたため、完全に更新します。ベース テーブルでのファイルのチャーンを減らすか、しきい値を上げることを検討してください。

INCREMENTAL_PLAN_REJECTED_BY_COST_MODEL

コスト モデルによって、増分メンテナンスよりも完全更新の方が効率的であると判断されたため、完全更新を実行します。増分更新を可能にするために、コスト モデルの動作またはクエリ プランの複雑さを確認します。

ROW_TRACKING_NOT_ENABLED

1 つ以上の基本テーブルで行トラッキングが有効になっていないため、完全に更新します。ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableRowTracking' = true)を使用して行追跡を有効にします。

TOO_MANY_PARTITIONS_CHANGED

ベース テーブルで変更されたパーティションが多すぎるため、完全に更新します。増分処理の制限内に収まるようにパーティションの変更数を制限してください。

MAP_TYPE_NOT_SUPPORTED

マテリアライズドビュー定義に増分更新がサポートされていないマップ タイプが含まれているため、完全に更新されます。 マテリアライズドビューでマップ タイプを避けるためにデータを再構築することを検討してください。

TIME_ZONE_CHANGED

セッションまたはシステムのタイムゾーン設定が変更されたため、完全に更新します。

DATA_HAS_CHANGED

マテリアライズドビューに関連するデータが増分更新を妨げる方法で変更されたため、完全に更新されました。 データの変更とビュー定義の構造を評価して、増分ロジックとの互換性を確保します。

PRIOR_TIMESTAMP_MISSING

最後に成功した実行のタイムスタンプがないため、完全に更新します。これは、メタデータの損失または手動介入後に発生する可能性があります。

MaintenanceType オブジェクト

planning_informationイベント中に選択される可能性のあるメンテナンス タイプの列挙。タイプがMAINTENANCE_TYPE_COMPLETE_RECOMPUTEまたはMAINTENANCE_TYPE_NO_OPではない場合、タイプは増分更新です。

Value

説明

MAINTENANCE_TYPE_COMPLETE_RECOMPUTE

完全に再計算され、常に表示されます。

MAINTENANCE_TYPE_NO_OP

基本テーブルが変更されない場合。

MAINTENANCE_TYPE_PARTITION_OVERWRITE

マテリアライズドビューがソース テーブルの 1 つと共有パーティション化されている場合、影響を受けるパーティションを増分的に更新します。

MAINTENANCE_TYPE_ROW_BASED

JOINFILTERUNION ALL,などのさまざまな操作のモジュール変更セットを作成し、それらを組み合わせて複雑なクエリを計算することで、増分更新を行います。ソース テーブルの行トラッキングが有効になっていて、クエリの結合数が制限されている場合に使用されます。

MAINTENANCE_TYPE_APPEND_ONLY

ソース テーブルに upsert または delete がなかったため、新しい行のみを計算して増分更新します。

MAINTENANCE_TYPE_GROUP_AGGREGATE

集計値ごとに変更を計算して増分更新します。countsummeanstddevなどの連想集計がクエリの最上位レベルにある場合に使用されます。

MAINTENANCE_TYPE_GENERIC_AGGREGATE

影響を受ける集計グループのみを計算して増分更新します。medianのような集計 (連想集計だけでなく) がクエリの最上位レベルにある場合に使用されます。

MAINTENANCE_TYPE_WINDOW_FUNCTION

変更されたパーティションのみを再計算して、 PARTITION BYなどのウィンドウ関数を使用してクエリを増分的に更新します。すべてのウィンドウ関数にPARTITION BYまたはJOIN句があり、クエリの最上位レベルにある場合に使用されます。

元のオブジェクト

イベントが発生した場所。

フィールド

説明

cloud

クラウド プロバイダー。可能な値は次のとおりです。

  • AWS
  • Azure
  • GCP

region

クラウド領域。

org_id

ユーザーの組織 ID またはワークスペース ID。クラウド内でユニーク。ワークスペースを識別したり、システム課金テーブルなどの他のテーブルと結合したりするのに役立ちます。

pipeline_id

パイプラインの ID。パイプラインの一意の識別子。パイプラインを識別したり、システム課金テーブルなどの他のテーブルと結合したりするのに役立ちます。

pipeline_type

パイプラインが作成された場所を示すパイプラインのタイプ。可能な値は次のとおりです。

  • DBSQL: Databricks SQL 経由で作成されたパイプライン。
  • WORKSPACE: LakeFlow宣言型パイプラインによって作成されたETLパイプライン。
  • MANAGED_INGESTION: LakeFlow Connect管理の取り込みパイプライン。
  • BRICKSTORE: 注目Feature Servingのオンライン テーブルを更新するパイプライン。
  • BRICKINDEX: ベクトル データベースを更新するためのパイプライン。詳細については、 「サーチ」を参照してください。

pipeline_name

パイプラインの名前。

cluster_id

実行が行われるクラスターの ID。世界的にユニーク。

update_id

パイプラインの単一実行の ID。これは実行 ID と同等です。

table_name

書き込み先の (Delta) テーブルの名前。

dataset_name

データセットの完全修飾名。

sink_name

シンクの名前。

flow_id

フローの ID。複数の更新にわたって使用されているフローの状態を追跡します。flow_idが同じである限り、フローは段階的に更新されます。マテリアライズドビューの完全な更新、チェックポイントのリセット、またはマテリアライズドビュー内で完全な再計算が発生すると、 flow_idが変化します。

flow_name

フローの名前。

batch_id

マイクロバッチの ID。フロー内で一意です。

request_id

更新を引き起こしたリクエストの ID。

PlanNotDeterministicSubType オブジェクト

planning_informationイベントの非決定論的ケースの列挙。

Value

説明

STREAMING_SOURCE

マテリアライズドビュー定義にサポートされていないストリーミング ソースが含まれているため、完全に更新されました。

USER_DEFINED_FUNCTION

マテリアライズドビューにサポートされていないユーザー定義関数が含まれているため、完全に更新されました。 決定論的な Python UDF のみがサポートされます。その他の UDF では増分更新が妨げられる可能性があります。

TIME_FUNCTION

マテリアライズドビューにはCURRENT_DATECURRENT_TIMESTAMPなどの時間ベースの関数が含まれているため、完全に更新されます。 expression_nameプロパティは、サポートされていない関数の名前を提供します。

NON_DETERMINISTIC_EXPRESSION

クエリにRANDOM()などの非決定論的な式が含まれているため、完全に更新します。expression_nameプロパティは、増分メンテナンスを防止する非決定論的関数を示します。

PlanNotIncrementalizableSubType オブジェクト

更新プランが増分化可能でない可能性がある理由の列挙。

Value

説明

OPERATOR_NOT_SUPPORTED

クエリ プランにサポートされていない演算子が含まれているため、完全に更新します。operator_nameプロパティは、サポートされていない演算子の名前を提供します。

AGGREGATE_NOT_TOP_NODE

集計 ( GROUP BY ) 演算子がクエリ プランの最上位レベルにないため、完全に更新します。増分メンテナンスでは、最上位レベルの集計のみがサポートされます。集計を分離するために 2 つのマテリアライズドビューを定義することを検討してください。

AGGREGATE_WITH_DISTINCT

集計に増分更新ではサポートされていないDISTINCT句が含まれているため、完全に更新します。

AGGREGATE_WITH_UNSUPPORTED_EXPRESSION

集計にサポートされていない式が含まれているため、完全に更新します。expression_nameプロパティは問題のある式を示します。

SUBQUERY_EXPRESSION

マテリアライズドビュー定義にサポートされていないサブクエリ式が含まれているため、完全に更新されました。

WINDOW_FUNCTION_NOT_TOP_LEVEL

ウィンドウ関数がクエリ プランの最上位レベルにないため、完全に更新します。

WINDOW_FUNCTION_WITHOUT_PARTITION_BY

ウィンドウ関数がPARTITION BY句なしで定義されているため、完全に更新されます。

TableInformationオブジェクト

planning_informationイベント中に考慮されたテーブルの詳細を表します。

フィールド

説明

table_name

Unity CatalogまたはHive metastoreからのクエリで使用されるテーブル名。 パスベースのアクセスの場合は利用できない可能性があります。

table_id

必須。Deltaログからのテーブル ID。

catalog_table_type

カタログに指定されているテーブルのタイプ。

partition_columns

テーブルのパーティション列。

table_change_type

表内のタイプを変更します。次のいずれか: TABLE_CHANGE_TYPE_UNKNOWNTABLE_CHANGE_TYPE_APPEND_ONLYTABLE_CHANGE_TYPE_GENERAL_CHANGE

full_size

テーブルの完全なサイズ(バイト数)。

change_size

変更されたファイル内の変更された行のサイズ。change_file_read_size * num_changed_rows / num_rows_in_changed_filesを使用して計算されます。

num_changed_partitions

変更されたパーティションの数。

is_size_after_pruning

full_sizechange_size静的ファイルのプルーニング後のデータを表しているかどうか。

is_row_id_enabled

テーブルで行 ID が有効かどうか。

is_cdf_enabled

テーブルで CDF が有効になっているかどうか。

is_deletion_vector_enabled

テーブルで削除が有効かどうか。

is_change_from_legacy_cdf

テーブルの変更がレガシー CDF からのものなのか、行 ID ベースの CDF からのものなのか。

TaskSlotMetrics オブジェクト

クラスターのタスク スロット メトリクス。 クラシック コンピュートで実行されているパイプラインの更新にのみ適用されます。

フィールド

説明

summary_duration_ms

集計メトリクス (例: avg_num_task_slots ) が計算されるミリ秒単位の期間。

num_task_slots

レポート時点の Spark タスク スロットの数。

avg_num_task_slots

概要期間中の Spark タスク スロットの平均数。

avg_task_slot_utilization

サマリー期間中のタスク スロットの平均使用率 (アクティブなタスクの数をタスク スロットの数で割ったもの)。

num_executors

報告時点のSparkエグゼキューターの数。

avg_num_queued_tasks

サマリー期間にわたる平均タスク キュー サイズ (合計タスク数からアクティブなタスク数を引いたもの)。

TechniqueInformationオブジェクト

計画イベントの方法論情報を更新します。

フィールド

説明

maintenance_type

この情報に関連するメンテナンスの種類。

タイプがMAINTENANCE_TYPE_COMPLETE_RECOMPUTEまたはMAINTENANCE_TYPE_NO_OPではない場合、フローは増分的に更新されます。

詳細については、 MaintenanceType オブジェクトを参照してください。

is_chosen

更新に選択された手法については True です。

is_applicable

メンテナンスタイプが適用可能かどうか。

incrementalization_issues

更新が完全に更新される原因となる可能性がある増分化の問題。詳細については、 IncrementalizationIssue オブジェクトを参照してください。

change_set_information

最終的に作成された変更セットに関する情報。値は次のいずれかです。

  • CHANGE_SET_TYPE_APPEND_ONLY
  • CHANGE_SET_TYPE_GENERAL_ROW_CHANGE