次の方法で共有


パイプライン イベント ログ スキーマ

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

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

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

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

PipelineEvent オブジェクト

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

フィールド Description
id イベント ログ レコードの一意識別子。
sequence イベントを識別して並べ替えるメタデータを含む JSON 文字列。
origin イベントの発生元のメタデータ (クラウド プロバイダー、クラウド プロバイダーリージョン、ユーザー、パイプライン情報など) を含む JSON 文字列。 Origin オブジェクトを参照してください。
timestamp イベントが記録された時刻 (UTC)。
message 人が判読できる、イベントを説明するメッセージ。
level 警告レベル。 指定できる値は次のとおりです。
  • INFO: 情報イベント
  • WARN: 予期しないが重大でない問題
  • ERROR: ユーザーの注意が必要になる可能性があるイベント エラー
  • METRICS: Delta テーブルにのみ格納され、パイプライン UI には表示されない大量のイベントに使用されます。
maturity_level イベント スキーマの安定性。 指定できる値は次のとおりです。
  • STABLE: このスキーマは安定しており、変更されません。
  • NULL: このスキーマは安定しており、変更されません。 NULL フィールドが追加される前にレコードが作成された場合、値はmaturity_level可能性があります (リリース 2022.37)。
  • EVOLVING: スキーマは安定していないため、変更される可能性があります。
  • DEPRECATED: スキーマは非推奨となり、Lakeflow Spark 宣言パイプライン ランタイムは、いつでもこのイベントの生成を停止する可能性があります。

EVOLVINGまたはDEPRECATEDフィールドに基づいて監視またはアラートを作成することはお勧めしません。
error エラーが発生した場合の、エラーの詳細説明。
details イベントの構造化された詳細を含む JSON 文字列。 これは、イベントの分析に使用される主なフィールドです。 JSON 文字列形式は、 event_typeによって異なります。 詳細オブジェクト を参照してください。
event_type イベントの種類。 イベントの種類の一覧と、イベントが作成する詳細オブジェクトの種類については、「 詳細オブジェクト」を参照してください。

詳細オブジェクト

各イベントには、イベントのdetailsに基づいて、JSON オブジェクト内の異なるevent_typeプロパティがあります。 次の表に、 event_typeと関連付けられている detailsを示します。 detailsプロパティについては、「詳細の種類」セクションを参照してください。

event_type 別の details の種類 Description
create_update パイプラインの更新を開始するために使用される完全な構成をキャプチャします。 Databricks によって設定されたすべての構成が含まれます。 詳細については、 create_updateの詳細を参照してください。
user_action パイプラインのユーザー アクション (パイプラインの作成、更新の開始または取り消しなど) の詳細を提供します。 詳細については、 user_actionイベントの詳細を参照してください。
flow_progress 開始、実行、完了、または失敗までのフローのライフサイクルについて説明します。 詳細については、 flow_progressイベントの詳細を参照してください。
update_progress パイプライン更新の開始、実行、完了、または失敗のライフサイクルについて説明します。 詳細については、 update_progressイベントの詳細を参照してください。
flow_definition 特定のフローで発生するすべての変換のスキーマとクエリ プランを定義します。 データフロー 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参照してください。

details の種類

次のオブジェクトは、details オブジェクト内の別のイベントの種類のPipelineEventを表します。

create_updateの詳細

create_update イベントの詳細。

フィールド Description
dbr_version Databricks ランタイムのバージョン。
run_as 更新プログラムが代わりに実行されるユーザー ID。 通常、これはパイプラインまたはサービス プリンシパルの所有者です。
cause 更新の理由。 通常、ジョブから実行する場合 JOB_TASK するか、ユーザーが対話形式で実行するときに USER_ACTION します。

user_action イベントの詳細

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

フィールド Description
user_name パイプラインの更新をトリガーしたユーザーの名前。
user_id パイプラインの更新をトリガーしたユーザーの ID。 これは、サービス プリンシパルまたは他のユーザーである可能性がある run_as ユーザーと常に同じとは限りません。
action STARTCREATEなど、ユーザーが実行したアクション。

flow_progress イベントの詳細

flow_progress イベントの詳細。

フィールド Description
status フローの新しい状態。 次のいずれかになります。
  • QUEUED
  • STARTING
  • RUNNING
  • COMPLETED
  • FAILED
  • SKIPPED
  • STOPPED
  • IDLE
  • EXCLUDED
metrics フローに関するメトリック。 詳細については、 FlowMetrics を参照してください。
data_quality フローと関連する期待に関するデータ品質メトリック。 詳細については、「 DataQualityMetrics」を参照してください。

update_progress イベントの詳細

update_progress イベントの詳細。

フィールド Description
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 イベントの詳細。

フィールド Description
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 conf。
language このフローの作成に使用する言語。 SCALAPYTHON、または SQL を指定できます。
once このフローが 1 回実行するように宣言されたかどうか。

dataset_definition イベントの詳細

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

フィールド Description
dataset_type 具体化されたビューとストリーミング テーブルを区別します。
num_flows データセットに書き込むフローの数。
expectations データセットに関連付けられている期待値。

sink_definition イベントの詳細

sink_definition イベントの詳細。

フィールド Description
format シンクの形式。
options シンクに関連付けられているキーと値の設定オプション。

非推奨イベントの詳細な列挙型

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

フィールド Description
TABLE_MANAGED_BY_MULTIPLE_PIPELINES テーブルは複数のパイプラインによって管理されます。
INVALID_CLUSTER_LABELS サポートされていないクラスター ラベルの使用。
PINNED_DBR_VERSION パイプライン設定でdbr_versionする代わりにchannelを使用する。
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 Spark 宣言パイプラインと互換性がなくなりました。
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_live_tableの代わりにcreate_streaming_tableを使用する。
PYTHON_CREATE_TARGET_TABLE create_target_tableの代わりにcreate_streaming_tableを使用する。
FOREIGN_KEY_TABLE_CONSTRAINT_CYCLE パイプラインによって管理されるテーブルのセットには、一連の外部キー制約のサイクルがあります。
PARTIALLY_QUALIFIED_TABLE_REFERENCE_INCOMPATIBLE_WITH_DEFAULT_PUBLISHING_MODE 既定の発行モードと従来の発行モードで異なる意味を持つ部分的に修飾されたテーブル参照。

cluster_resources イベントの詳細

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

フィールド Description
task_slot_metrics クラスターのタスク スロット メトリック。 詳細については、「TaskSlotMetrics オブジェクト」を参照してください。
autoscale_info オートスケーラーの状態。 詳細については、「AutoscaleInfo オブジェクト」を参照してください。

自動スケール イベントの詳細

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

フィールド Description
status このイベントの状態。 次のいずれかになります。
  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED
optimal_num_executors min_workersmax_workersの境界を適用する前にアルゴリズムによって提案される最適な Executor の数。
requested_num_executors アルゴリズムによって提案されたエグゼキューターの最適な数をmin_workersおよびmax_workersの範囲まで切り詰めた後のエグゼキューターの数。

planning_informationイベントに関する詳細

planning_information イベントの詳細。 更新中に特定のフローに対して選択した更新の種類に関連する詳細を表示するのに役立ちます。 増分更新ではなく完全更新になる理由をデバッグするために使用できます。 増分更新の詳細については、「具体化されたビューの増分更新」を参照してください。

フィールド Description
technique_information リフレッシュ関連の情報。 これには、選択された更新方法に関する情報と、考慮された可能な更新手法の両方が含まれます。 具体化されたビューがインクリメンタル化に失敗した理由をデバッグするのに役立ちます。 詳細については、「 TechniqueInformation」を参照してください。
source_table_information ソースのテーブル情報。 具体化されたビューがインクリメンタル化に失敗した理由をデバッグする場合に役立ちます。 詳細については、 TableInformation オブジェクトを参照してください。
target_table_information ターゲット テーブル情報。 詳細については、 TableInformation オブジェクトを参照してください。

hook_progress イベントの詳細

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

フィールド Description
name ユーザー フックの名前。
status ユーザー フックの状態。

operation_progress イベントの詳細

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

フィールド Description
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 イベントの詳細。 次のフィールドが含まれます。

フィールド Description
stream_progress パイプライン ストリームの詳細。 構造化ストリーミングの StreamingQueryListener メトリックと同様です。
違いについては、次の段落で説明します。 StreamingQueryListenerメトリックに関する完全なドキュメントについては、StreamingQueryListener オブジェクトメトリックを参照してください。

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

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

その他のオブジェクト

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

AutoscaleInfo オブジェクト

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

フィールド Description
state オートスケーリングの状態。 次のいずれかになります。
  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED
optimal_num_executors エグゼキューターの最適数。 これは、ユーザー指定の最小/最大数の Executor によって切り捨てられる前に、アルゴリズムによって推奨される最適なサイズです。
latest_requested_num_executors 最新の要求で状態マネージャーによってクラスター マネージャーから要求された executor の数。 これは、状態マネージャーがスケーリングしようとしている Executor の数であり、タイムアウトが発生した場合に状態マネージャーがスケーリング状態を終了しようとしたときに更新されます。 保留中の要求がない場合、このフィールドは設定されません。
request_pending_seconds スケーリング要求が保留中の時間の長さ。 保留中の要求がない場合、これは設定されません。

CostModelRejectionSubType オブジェクト

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

価値 Description
NUM_JOINS_THRESHOLD_EXCEEDED クエリに含まれる結合が多すぎるため、完全に更新します。
CHANGESET_SIZE_THRESHOLD_EXCEEDED 変更されたベース テーブル内の行数が多すぎるため、完全に更新します。
TABLE_SIZE_THRESHOLD_EXCEEDED ベース テーブルのサイズがしきい値を超えたため、完全に更新します。
EXCESSIVE_OPERATOR_NESTING クエリ定義は複雑で、多くのレベルの演算子の入れ子があるため、完全に更新します。
COST_MODEL_REJECTION_SUB_TYPE_UNSPECIFIED その他の理由で完全に更新します。

DataQualityMetrics オブジェクト

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

フィールド Description
dropped_records 1 つ以上の期待に失敗したために削除されたレコードの数。
expectations フローのクエリ プラン内の任意のデータセットに追加された期待値のメトリック。 複数の期待がある場合は、これを使用して、どの期待が満たされたか失敗したかを追跡できます。 詳細については、 ExpectationMetrics オブジェクトを参照してください。

ExpectationMetrics オブジェクト

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

フィールド Description
name 期待値の名前。
dataset 期待値が追加されたデータセットの名前。
passed_records 期待を満たすレコードの数。
failed_records 予測に失敗したレコードの数。 期待値が満たされたかどうかを追跡しますが、レコードに対する処理 (レコードの警告、失敗、または削除) については説明しません。

FlowMetrics オブジェクト

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

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

ソース バックログ バイト数 バックログ レコード バックログ秒 バックログ ファイル
Kafka
Kinesis
Delta
自動ローダー
Google Pub/Sub (グーグルパブサブ)
フィールド Description
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 Spark 宣言パイプラインの外部のソース (Apache Kafka、Pulsar、自動ローダーなど) からのインジェストの進行状況を監視するのに役立ちます。 次のフィールドが含まれます。
  • source_name: ソースの名前。
  • backlog_bytes: このソースのバックログとしてのバイト数。
  • backlog_records: このソースのバックログ レコード。
  • backlog_files: このソースのバックログ ファイル。
  • backlog_seconds: このソースのバックログ秒数。

IncrementalizationIssue オブジェクト

更新プログラムの計画時に完全な更新を引き起こす可能性がある増分化に関する問題を表します。

フィールド Description
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 オブジェクト

完全な更新を引き起こす可能性がある問題の種類の列挙型。

価値 Description
CDF_UNAVAILABLE 一部のベース テーブルでは CDF (データ フィードの変更) が有効になっていません。 table_information フィールドには、CDF が有効になっていないテーブルに関する情報が表示されます。 ALTER TABLE <table-name> SET TBLPROPERTIES ( 'delta.enableChangeDataFeed' = true)を使用して、ベース テーブルの CDF を有効にします。 ソース テーブルが具体化されたビューの場合、CDF は既定で ON に設定する必要があります。
DELTA_PROTOCOL_CHANGED 一部のベース テーブル ( table_information フィールドの詳細) にデルタ プロトコルが変更されたため、完全に更新されます。
DATA_SCHEMA_CHANGED 一部のベース テーブル ( table_information フィールドの詳細) では、具体化されたビュー定義で使用される列でデータ スキーマが変更されたため、完全に更新されます。 具体化されたビューで使用されていない列が変更またはベース テーブルに追加されている場合は関係ありません。
PARTITION_SCHEMA_CHANGED 一部のベース テーブル ( table_information フィールドの詳細) でパーティション スキーマが変更されたため、完全に更新されます。
INPUT_NOT_IN_DELTA 具体化されたビュー定義にはデルタ以外の入力が含まれるため、完全に更新します。
DATA_FILE_MISSING 一部の基本テーブルファイルは保持期間のために既にバキュームされているため、全面的にリフレッシュされます。
PLAN_NOT_DETERMINISTIC 具体化されたビュー定義の一部の演算子または式が決定論的ではないため、完全に更新します。 operator_nameフィールドと expression_name フィールドには、問題の原因となった演算子または式に関する情報が表示されます。
PLAN_NOT_INCREMENTALIZABLE 具体化されたビュー定義の一部の演算子または式はインクリメンタル化できないため、完全に更新します。
SERIALIZATION_VERSION_CHANGED クエリフィンガープリント ロジックに大きな変更があったため、完全に更新します。
QUERY_FINGERPRINT_CHANGED 具体化されたビュー定義が変更されたか、Lakeflow Spark 宣言パイプラインのリリースによってクエリ評価プランが変更されたため、完全に更新されます。
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されていない場合、型は増分更新です。

価値 Description
MAINTENANCE_TYPE_COMPLETE_RECOMPUTE 完全な再計算;常に表示されます。
MAINTENANCE_TYPE_NO_OP ベース テーブルが変更されない場合。
MAINTENANCE_TYPE_PARTITION_OVERWRITE 具体化されたビューがソース テーブルの 1 つと共にパーティション分割されている場合は、影響を受けるパーティションを増分更新します。
MAINTENANCE_TYPE_ROW_BASED JOINFILTERUNION ALL,など、さまざまな操作用のモジュール式の変更セットを作成し、それらを作成して複雑なクエリを計算することで、増分更新します。 ソース テーブルの 行追跡 が有効で、クエリの結合の数が限られている場合に使用されます。
MAINTENANCE_TYPE_APPEND_ONLY ソース テーブルにアップサートまたは削除がないため、新しい行のみを計算して増分更新します。
MAINTENANCE_TYPE_GROUP_AGGREGATE 各集計値の変動を計算して、逐次的に更新します。 countsummeanstddevなどの連想集計がクエリの最上位レベルにある場合に使用されます。
MAINTENANCE_TYPE_GENERIC_AGGREGATE 影響を受ける集計グループのみを計算して、増分更新します。 medianなどの集計 (連想関数だけでなく) がクエリの最上位レベルにある場合に使用されます。
MAINTENANCE_TYPE_WINDOW_FUNCTION 変更されたパーティションのみを再計算して、 PARTITION BY などのウィンドウ関数を使用してクエリを増分更新します。 すべてのウィンドウ関数に PARTITION BY 句または JOIN 句があり、クエリの最上位レベルにある場合に使用されます。

オリジン オブジェクト

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

フィールド Description
cloud クラウド プロバイダー。 指定できる値は次のとおりです。
  • AWS
  • 紺碧
  • GCP
region クラウド リージョン。
org_id ユーザーの組織 ID またはワークスペース ID。 クラウド内でユニークです。 ワークスペースを識別したり、システム課金テーブルなどの他のテーブルと結合したりする場合に便利です。
pipeline_id パイプラインのID。 パイプラインの一意の識別子。 パイプラインを識別したり、システム課金テーブルなどの他のテーブルと結合したりする場合に便利です。
pipeline_type パイプラインが作成された場所を示すパイプラインの種類。 指定できる値は次のとおりです。
  • DBSQL: Databricks SQL を使用して作成されたパイプライン。
  • WORKSPACE: Lakeflow Spark 宣言パイプラインを介して作成された ETL パイプライン。
  • MANAGED_INGESTION: Lakeflow Connect マネージド インジェスト パイプライン。
  • BRICKSTORE: オンライン テーブルを更新してリアルタイム機能を提供するためのパイプライン。
  • BRICKINDEX: ベクター データベースを更新するパイプライン。 詳細については、 ベクター検索を参照してください。
pipeline_name パイプラインの名前。
cluster_id 実行が行われるクラスターの ID。 グローバルに一意。
update_id パイプラインの 1 回の実行の 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 イベントの非決定論的ケースの列挙型。

価値 Description
STREAMING_SOURCE 具体化されたビュー定義にはストリーミング ソースが含まれているため、完全に更新されます。これはサポートされていません。
USER_DEFINED_FUNCTION 具体化されたビューにサポートされていないユーザー定義関数が含まれているため、完全に更新します。 決定的な Python UDF のみがサポートされています。 その他の UDF は、増分更新を妨げる可能性があります。
TIME_FUNCTION 具体化されたビューには、 CURRENT_DATECURRENT_TIMESTAMPなどの時間ベースの関数が含まれているため、完全に更新されます。 expression_name プロパティは、サポートされていない関数の名前を提供します。
NON_DETERMINISTIC_EXPRESSION クエリには、 RANDOM()などの非決定論的な式が含まれているため、完全に更新されます。 expression_name プロパティは、増分メンテナンスを妨げる非決定論的関数を示します。

PlanNotIncrementalizableSubType オブジェクト

更新計画がインクリメンタル化できない可能性がある理由の列挙型。

価値 Description
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 イベント中に考慮されるテーブルの詳細を表します。

フィールド Description
table_name Unity カタログまたは Hive メタストアからのクエリで使用されるテーブル名。 パスベースのアクセスの場合は使用できない場合があります。
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 オブジェクト

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

フィールド Description
summary_duration_ms 集計メトリック (たとえば、 avg_num_task_slots) が計算される時間 (ミリ秒単位)。
num_task_slots レポートの瞬間における Spark タスク スロットの数。
avg_num_task_slots サマリー期間における Spark タスク スロットの平均数。
avg_task_slot_utilization サマリー期間の平均タスク スロット使用率 (アクティブなタスクの数をタスク スロットの数で割った数)。
num_executors レポートの瞬間の Spark Executor の数。
avg_num_queued_tasks サマリー期間の平均タスク キュー サイズ (タスクの合計数からアクティブなタスクの数を差し引いた数)。

TechniqueInformation オブジェクト

プランニングイベントのリフレッシュ手法に関する情報。

フィールド Description
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