event_log
table-值函數
適用於: Databricks SQL Databricks Runtime 13.3 LTS 和更新版本
傳回 具體化 views、串流 tables和 DLT 管線的事件記錄。
進一步了解 Delta Live Tables事件記錄檔。
注意
event_log
table值函式只能由串流 table 或具體化檢視的擁有者呼叫,而透過 event_log
table值函式創建的檢視只能由串流 table 或具體化檢視的擁有者查詢。 檢視無法與其他使用者共用。
語法
event_log( { TABLE ( table_name ) | pipeline_id } )
引數
- table_name:實體化檢視表或串流 table的名稱。 名稱不得包含時態性規格。 如果名稱不合格,則會使用 catalog 和 schema 來 qualify 當前的 identifier。
-
pipeline_id
:Delta Live Tables 管線的字串 identifier。
傳回
-
id STRING NOT NULL
:事件日誌記錄的唯一 identifier。 -
sequence STRING NOT NULL
:JSON 物件,其中包含用來識別和排序事件的元數據。 -
origin STRING NOT NULL
:JSON 物件,包含事件來源的元數據,例如雲端提供者、區域、user_id
或pipeline_id
。 -
timestamp TIMESTAMP NOT NULL
:事件以UTC記錄的時間。 -
message STRING NOT NULL
:描述事件的人類可讀取訊息。 -
level STRING NOT NULL
:記錄層級,例如 、INFO
、WARN
ERROR
、 或METRICS
。 -
maturity_level STRING NOT NULL
:事件的穩定性 schema。 可能的 values 有如下:-
STABLE
:schema 穩定且不會變更。 -
NULL
:schema 穩定且不會變更。 如果記錄是在新增欄位之前建立的(2022.37 版)建立,NULL
則此值可能是maturity_level
。 -
EVOLVING
:schema 不穩定且可能會變更。 -
DEPRECATED
:schema 已被取代,Delta Live Tables 運行時間可能隨時停止產生此事件。
-
-
error STRING
:如果發生錯誤,描述錯誤的詳細數據。 -
details STRING NOT NULL
:JSON 物件,其中包含事件的結構化詳細數據。 這是用來分析事件的主要欄位。 -
event_type STRING NOT NULL
:事件類型。
範例
如需更多範例,請參閱 查詢事件記錄檔。
-- View the events on a materialized view
> SELECT timestamp, message, details
FROM event_log(table(my_mv))
WHERE level in ('INFO', 'WARN', 'ERROR')
ORDER BY timestamp;
timestamp, message, details
---------------------------
2023-08-12 01:03:05.000, 'Flow "my_mv" is STARTING.', '{"flow_progress":{"status":"STARTING"}}'
-- Create a temp view with the latest update to the table/pipeline
> CREATE OR REPLACE TEMP VIEW latest_update AS
SELECT origin.update_id AS id FROM event_log('<pipeline-ID>')
WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;
-- Query lineage information
> SELECT
details:flow_definition.output_dataset as output_dataset,
details:flow_definition.input_datasets as input_dataset
FROM
event_log('<pipeline-ID>'),
latest_update
WHERE
event_type = 'flow_definition' AND origin.update_id = latest_update.id;
output_dataset, input_dataset
-----------------------------
customers, null
sales_orders_raw, null
sales_orders_cleaned, ["customers", "sales_orders_raw"]
sales_order_in_la, ["sales_orders_cleaned"]
-- Query data quality expectation history for a streaming table
> WITH expectations_parsed AS (
SELECT
explode(
from_json(
details:flow_progress.data_quality.expectations,
"array<struct<name: string, dataset: string, passed_records: int, failed_records: int>>"
)
) row_expectations
FROM
event_log(table(my_st)),
latest_update
WHERE
event_type = 'flow_progress'
AND origin.update_id = latest_update.id
)
SELECT
row_expectations.dataset as dataset,
row_expectations.name as expectation,
SUM(row_expectations.passed_records) as passing_records,
SUM(row_expectations.failed_records) as failing_records
FROM expectations_parsed
GROUP BY
row_expectations.dataset,
row_expectations.name;
dataset, expectation, passing_records, failing_records
------------------------------------------------------
sales_orders_cleaned, valid_order_number, 4083, 0