パイプライン イベント ログには、監査ログ、データ品質チェック、パイプラインの進行状況、データ系列など、パイプラインに関連するすべての情報が含まれます。
次の表では、イベント ログ スキーマについて説明します。 フィールドの一部に、details フィールドなど、いくつかのクエリを実行するために解析を必要とする JSON データが含まれています。 Azure Databricks では、JSON フィールドを解析するための : 演算子がサポートされています。
: 演算子 (コロン記号)を参照してください。
注
イベント ログの一部のフィールドは、Azure Databricks によって内部で使用されます。 次のドキュメントでは、顧客の使用を目的としたフィールドについて説明します。
パイプライン イベント ログの使用の詳細については、「 パイプライン イベント ログ」を参照してください。
PipelineEvent オブジェクト
イベント ログ内の 1 つのパイプライン イベントを表します。
| フィールド | Description |
|---|---|
id |
イベント ログ レコードの一意識別子。 |
sequence |
イベントを識別して並べ替えるメタデータを含む JSON 文字列。 |
origin |
イベントの発生元のメタデータ (クラウド プロバイダー、クラウド プロバイダーリージョン、ユーザー、パイプライン情報など) を含む JSON 文字列。 Origin オブジェクトを参照してください。 |
timestamp |
イベントが記録された時刻 (UTC)。 |
message |
人が判読できる、イベントを説明するメッセージ。 |
level |
警告レベル。 指定できる値は次のとおりです。
|
maturity_level |
イベント スキーマの安定性。 指定できる値は次のとおりです。
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 |
STARTやCREATEなど、ユーザーが実行したアクション。 |
flow_progress イベントの詳細
flow_progress イベントの詳細。
| フィールド | Description |
|---|---|
status |
フローの新しい状態。 次のいずれかになります。
|
metrics |
フローに関するメトリック。 詳細については、 FlowMetrics を参照してください。 |
data_quality |
フローと関連する期待に関するデータ品質メトリック。 詳細については、「 DataQualityMetrics」を参照してください。 |
update_progress イベントの詳細
update_progress イベントの詳細。
| フィールド | Description |
|---|---|
state |
更新プログラムの新しい状態。 次のいずれかになります。
たとえば、パイプライン更新のさまざまなステージの期間を合計期間からリソースの待機に費やした時間まで計算するのに役立ちます。 |
cancellation_cause |
更新プログラムが CANCELED 状態になった理由。
USER_ACTIONやWORKFLOW_CANCELLATION (更新をトリガーしたワークフローが取り消された) などの理由が含まれます。 |
flow_definition イベントの詳細
flow_definition イベントの詳細。
| フィールド | Description |
|---|---|
input_datasets |
このフローによって読み取られた入力。 |
output_dataset |
このフローが書き込む出力データセット。 |
output_sink |
このフローが書き込む出力シンク。 |
explain_text |
説明されているクエリ プラン。 |
schema_json |
Spark SQL JSON スキーマ文字列。 |
schema |
このフローのスキーマ。 |
flow_type |
フローの種類。 次のいずれかになります。
|
comment |
データセットに関するユーザーコメントまたは説明。 |
spark_conf |
このフローに設定された Spark conf。 |
language |
このフローの作成に使用する言語。
SCALA、PYTHON、または 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 |
このイベントの状態。 次のいずれかになります。
|
optimal_num_executors |
min_workersとmax_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 |
追跡対象の操作の種類。 つぎのいずれかです。
|
status |
操作の進行状況。 つぎのいずれかです。
|
duration_ms |
操作の合計経過時間 (ミリ秒単位)。 終了イベントにのみ含まれます (状態が COMPLETED、 CANCELED、または FAILED)。 |
stream_progress イベントの詳細
stream_progress イベントの詳細。 次のフィールドが含まれます。
| フィールド | Description |
|---|---|
stream_progress |
パイプライン ストリームの詳細。 構造化ストリーミングの StreamingQueryListener メトリックと同様です。違いについては、次の段落で説明します。 StreamingQueryListenerメトリックに関する完全なドキュメントについては、StreamingQueryListener オブジェクトメトリックを参照してください。 |
stream_progressとStreamingQueryListenerオブジェクトのメトリックの違い:
-
StreamingQueryListenerには次のメトリックが存在しますが、stream_progressには存在しません:numInputRows、inputRowsPerSecond、およびprocessedRowsPerSecond。 - Kafka および Kineses ストリームの場合、
startOffset、endOffset、およびlatestOffsetフィールドが大きすぎる可能性があり、切り捨てられます。 これらの各フィールドに対して、データが切り捨てられているかどうかを示すブール値を使用して、追加の...Truncatedフィールド、startOffsetTruncated、endOffsetTruncated、およびlatestOffsetTruncatedが追加されます。
その他のオブジェクト
次のオブジェクトは、イベント オブジェクト内の追加のデータまたは列挙型を表します。
AutoscaleInfo オブジェクト
クラスターの自動スケール メトリック。 クラシック コンピューティングで実行されているパイプラインにのみ適用されます。
| フィールド | Description |
|---|---|
state |
オートスケーリングの状態。 次のいずれかになります。
|
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、自動ローダーなど) からのインジェストの進行状況を監視するのに役立ちます。 次のフィールドが含まれます。
|
IncrementalizationIssue オブジェクト
更新プログラムの計画時に完全な更新を引き起こす可能性がある増分化に関する問題を表します。
| フィールド | Description |
|---|---|
issue_type |
インクリメンタル化を妨げる可能性のあるマテリアライズドビューの問題タイプ。 詳細については、「 問題の種類」を参照してください。 |
prevent_incrementalization |
この問題がインクリメンタル化を妨げているかどうか。 |
table_information |
CDF_UNAVAILABLE、INPUT_NOT_IN_DELTA、DATA_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 |
JOIN、FILTER、UNION ALL,など、さまざまな操作用のモジュール式の変更セットを作成し、それらを作成して複雑なクエリを計算することで、増分更新します。 ソース テーブルの 行追跡 が有効で、クエリの結合の数が限られている場合に使用されます。 |
MAINTENANCE_TYPE_APPEND_ONLY |
ソース テーブルにアップサートまたは削除がないため、新しい行のみを計算して増分更新します。 |
MAINTENANCE_TYPE_GROUP_AGGREGATE |
各集計値の変動を計算して、逐次的に更新します。
count、sum、mean、stddevなどの連想集計がクエリの最上位レベルにある場合に使用されます。 |
MAINTENANCE_TYPE_GENERIC_AGGREGATE |
影響を受ける集計グループのみを計算して、増分更新します。
medianなどの集計 (連想関数だけでなく) がクエリの最上位レベルにある場合に使用されます。 |
MAINTENANCE_TYPE_WINDOW_FUNCTION |
変更されたパーティションのみを再計算して、 PARTITION BY などのウィンドウ関数を使用してクエリを増分更新します。 すべてのウィンドウ関数に PARTITION BY 句または JOIN 句があり、クエリの最上位レベルにある場合に使用されます。 |
オリジン オブジェクト
イベントが発生した場所。
| フィールド | Description |
|---|---|
cloud |
クラウド プロバイダー。 指定できる値は次のとおりです。
|
region |
クラウド リージョン。 |
org_id |
ユーザーの組織 ID またはワークスペース ID。 クラウド内でユニークです。 ワークスペースを識別したり、システム課金テーブルなどの他のテーブルと結合したりする場合に便利です。 |
pipeline_id |
パイプラインのID。 パイプラインの一意の識別子。 パイプラインを識別したり、システム課金テーブルなどの他のテーブルと結合したりする場合に便利です。 |
pipeline_type |
パイプラインが作成された場所を示すパイプラインの種類。 指定できる値は次のとおりです。
|
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_DATE や CURRENT_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_UNKNOWN、TABLE_CHANGE_TYPE_APPEND_ONLY、TABLE_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_sizeとchange_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 |
最終的に生成された変更セットに関する情報。 値は次のいずれかです。
|