管線事件記錄結構描述

備註

Databricks 建議以 pipeline_events 系統資料表查詢管線事件。 查看它的 架構。 系統表目前仍處於測試階段。

管線事件記錄檔包含與管線相關的所有資訊,包括稽核記錄、資料品質檢查、管線進度和資料譜系。

下表描述事件記錄檔架構。 其中有些欄位包含 JSON 資料,需要剖析才能執行某些查詢,例如 details 欄位。 Azure Databricks 支援 : 運算子來剖析 JSON 欄位。 請參閱 : 冒號運算子。

備註

事件記錄檔中的某些欄位供 Azure Databricks 內部使用。 以下文件資料描述供客戶使用的欄位。

如需使用管線事件記錄檔的詳細資訊,請參閱 管線事件記錄檔。

PipelineEvent 物件

表示事件記錄檔中的單一管線事件。

領域 Description
id 事件記錄檔記錄的唯一標識符。
sequence JSON 字串,包含用來識別和排序事件的元數據。
origin JSON 字串,包含事件來源的元數據,例如雲端提供者、雲端提供者區域、使用者和管線資訊。 請參閱 Origin 物件。
timestamp 以UTC記錄事件的時間。
message 描述事件的一般人可閱讀的訊息。
level 警告層級。 可能的值為:
  • INFO:資訊事件
  • WARN:非預期的問題,但非重大問題
  • ERROR:可能需要使用者注意的事件失敗
  • METRICS:用於只儲存在 Delta 資料表中的高頻事件,而不會顯示在管線 UI 中。
maturity_level 事件架構的穩定性。 可能的值為:
  • STABLE:該模式是穩定且不會改變的。
  • NULL:該模式是穩定且不會改變的。 如果記錄是在添加NULL欄位之前(maturity_level)建立的,則此值可能是。
  • EVOLVING:架構不穩定,而且可能會變更。
  • DEPRECATED:該結構已被棄用,Lakeflow 管線執行時間可能隨時停止產生此事件。

不建議根據 EVOLVING 或 DEPRECATED 欄位建置監視或警示。
error 如果發生錯誤,則提供錯誤的詳情。
details JSON 字串,包含事件的結構化詳細數據。 這是用來分析事件的主要欄位。 JSON 字串格式取決於 event_type。 如需詳細資訊,請參閱 詳細數據物件 。
event_type 事件類型。 如需事件類型清單,以及所建立的詳細數據物件類型,請參閱 詳細數據物件。

詳細信息物件

根據事件的details,event_type每個事件在 JSON 物件中都有不同的屬性。 下表列出event_type,並與之相關聯的details。 [details詳細數據類型] 區段中會描述這些屬性。

詳細數據類型依據 event_type Description
create_update 擷取用來啟動管線更新的完整組態。 包含 Databricks 所設定的任何組態。 如需詳細資訊,請參閱 create_update的詳細數據。
user_action 提供有關管線上任何使用者動作的詳細數據(包括建立管線,以及啟動或取消更新)。 如需詳細資訊,請參閱 user_action事件的詳細數據。
runtime_details 提供用於管線更新的執行時細節。 詳情請參見 runtime_details活動詳情。
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事件的詳細資訊。
behavior_change_in_spark_connect 報告環境 版本 相容性掃描偵測到的程式碼模式,該模式在不同環境版本下會表現不同或失敗。 詳情請參見 behavior_change_in_spark_connect活動詳情。

詳細數據類型

下列物件代表 details 物件中 PipelineEvent 不同事件類型的 。

create_update的詳細數據

事件的詳細資料 create_update。

領域 Description
run_as 更新所代表的使用者 ID。 這通常是管線或服務主體的擁有者。
cause 更新的原因。 JOB_TASK通常是從作業執行,或USER_ACTION由用戶以互動方式執行時。

user_action事件的詳細數據

事件的詳細資料 user_action。 包含下列欄位:

領域 Description
user_name 觸發管線更新的用戶名稱。
user_id 觸發管線更新之使用者的標識碼。 這不一定與 run_as 使用者相同,可能是服務主體或其他使用者。
action 使用者採取的動作,包括 START 和 CREATE。

活動詳情runtime_details

事件的詳細資料 runtime_details。

領域 Description
dbr_version Databricks Runtime 的版本。
image_key 用於更新的 Databricks 執行時建置。
effective_environment_version 管線所使用的 環境版本 ,不論是你明確設定還是 Databricks 在 自動遷移時選擇的版本。 如果管線沒有使用環境版本,則為空。

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_ACTION 或 WORKFLOW_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 設定已套用於此流程。
language 用來建立此流程的語言。 可以是 SCALA、PYTHON 或 SQL。
once 此流程是否已設定為執行一次。

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 管線相容。
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_workers 和 max_workers 界限之前,演算法建議的最佳執行程式數目。
requested_num_executors 截斷演算法 min_workers 所建議的最佳執行程式數目和 max_workers 界限之後的執行程序數目。

planning_information事件的詳細數據

事件的詳細 planning_information 細節。 適用於在更新期間查看與指定流程所選重新整理類型相關的詳細數據。 可用來協助偵錯為何更新是完全刷新而非增量刷新。 如需有關增量刷新的詳細資訊,請參閱具體化視圖的增量刷新。

領域 Description
technique_information 重新整理相關資訊。 其中包含所選重新整理方法的相關信息,以及考慮的可能重新整理方法。 有助於偵測實體化檢視無法進行增量更新的原因。 如需詳細資訊,請參閱技術資訊。
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 作業的總經過時間,以毫秒為單位。 只包含在結束事件中(其中 status 為 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,以指示資料是否被截斷。

活動詳情behavior_change_in_spark_connect

事件的詳細 behavior_change_in_spark_connect 細節。 此事件由WARN相容性掃描在層級發出,每個偵測到的程式碼模式會發生一次事件。

領域 Description
issue 偵測到的模式。 完整問題代碼、範例及建議修正清單,請參見相容性事件參考。

其他物件

下列物件代表事件物件內的其他數據或列舉。

AutoscaleInfo 物件

叢集的自動調整的度量標準。 僅適用於在經典運算上執行的管線。

領域 Description
state 自動調整狀態。 可以是下列其中一項:
  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED
optimal_num_executors 執行程式的最佳數目。 這是演算法在被使用者指定的執行程式最小/最大數目截斷之前建議的最佳大小。
latest_requested_num_executors 最新要求中狀態管理員向叢集管理員要求的執行程序數目。 這是狀態管理員試圖擴展到的執行程式數目,並在狀態管理員嘗試超時退出調整狀態時更新。 如果沒有擱置的要求,則不會填入此欄位。
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 因不符合一個或多個預期條件而被捨棄的記錄數量。
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 管線外來源(例如 Apache Kafka、Pulsar 或 Auto Loader)的擷取進度很有用。 包含欄位:
  • source_name:來源的名稱。
  • backlog_bytes:此來源的積壓位元組數。
  • backlog_records:此來源的待辦項目記錄。
  • backlog_files:此來源的待辦項目檔案。
  • backlog_seconds:此來源的待辦專案秒數。

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 欄位中的詳細內容)有 Delta 協議變更。
DATA_SCHEMA_CHANGED 完全重新整理,因為某些基表(table_information 欄位中的詳細數據)在具現化檢視定義所使用的欄中有數據架構變更。 如果具體化檢視未使用的欄位被更改或新增至基礎表,則無關緊要。
PARTITION_SCHEMA_CHANGED 完全刷新,因為某些基礎資料表(table_information 欄位中的詳細資訊)發生了分割區架構變更。
INPUT_NOT_IN_DELTA 完整重新整理,因為具象化檢視定義牽涉到一些非 Delta 輸入。
DATA_FILE_MISSING 徹底刷新,因為某些基表檔案已在保留期間被整理。
PLAN_NOT_DETERMINISTIC 完全重新整理,因為具體化檢視定義中的某些運算符或表達式不具決定性。 和 operator_nameexpression_name 欄位會提供導致問題之運算子或表達式的相關信息。
PLAN_NOT_INCREMENTALIZABLE 完全重新整理,因為具體化檢視定義中的某些運算符或表達式無法累加。
SERIALIZATION_VERSION_CHANGED 完全重新整理,因為查詢指紋邏輯發生了重大變更。
QUERY_FINGERPRINT_CHANGED 完全刷新是因為 materialized view 定義改變,或是 Lakeflow pipeline 發布導致查詢評估計畫改變。
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 全面刷新,因為一或多個基表上未啟用行追蹤。 使用 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 當實體化檢視與某個來源表格並行分割時,逐步刷新受影響的分割區。
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 子句且位於查詢的最上層時使用。

Origin 物件

事件產生的位置。

領域 Description
cloud 雲端提供者。 可能的值為:
  • AWS
  • Azure雲服務
  • GCP
region 雲端區域。
org_id 用戶的組織標識碼或工作區標識碼。 在雲端中獨一無二。 用來識別工作區,或與其他數據表聯結,例如系統計費數據表。
pipeline_id 管道的標識碼。 管線的唯一標識碼。 用來識別管線,或與其他數據表聯結,例如系統計費數據表。
pipeline_type 用來顯示管線創建位置的管線類型。 可能的值為:
  • WORKSPACE:透過 Lakeflow 管線建立的 ETL 管線。 參見 Spark 宣告式管線。
  • DBSQL:一條獨立的管線。 參見 獨立管線。
  • MANAGED_INGESTION:Lakeflow Connect 受管理的資料導入管線。 詳見 Lakeflow Connect 連接器概念。
  • DATABASE_TABLE_SYNC:一個將資料表同步到 Lakebase 資料庫的管線。
  • BRICKSTORE:用來更新在線數據表的管線,以取得即時功能服務。 線上桌是傳統的。
  • BRICKINDEX:用來更新向量資料庫的管線。 請參閱 Databricks AI 搜尋。
pipeline_name 管線的名稱。
cluster_id 執行所在的叢集標識碼。 全球獨一無二。
update_id 管線單一執行的標識碼。 這相當於執行標識碼。
table_name 要寫入之 (Delta) 資料表的名稱。
dataset_name 數據集的完整名稱。
sink_name 接收端點的名稱。
flow_id 流程的標識碼。 它會追蹤在多次更新中使用的流程狀態。 只要 flow_id 相同,流程就會逐步更新。 在具體化檢視的完全重新整理、檢查點重設或具體化檢視內進行完整重新計算時,flow_id會變更。
flow_name 流程的名稱。
batch_id microbatch 的識別碼。 流程中是唯一的。
request_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)運算子不位於查詢計畫的頂端。 增量式維護僅支援最上層的彙總。 請考慮定義兩個實體化檢視來分隔聚合。
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 日誌中的表格識別碼。
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 數據表上是否啟用數據列標識碼。
is_cdf_enabled CDF 是否在資料表上啟用。
is_deletion_vector_enabled 是否在資料表上啟用刪除向量。
is_change_from_legacy_cdf 數據表變更是否來自舊版CDF或數據列標識碼型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 執行程式數目。
avg_num_queued_tasks 摘要期間的平均佇列大小(總任務數減去活躍任務數)。

技術信息物件

重新整理規劃事件的方法資訊。

領域 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