適用対象:
Databricks SQL
Databricks Runtime 13.3 LTS 以上
具体化されたビュー、ストリーミング テーブル、および Lakeflow Spark 宣言パイプラインのイベント ログを返します。
Lakeflow Spark 宣言パイプライン のイベント ログの詳細を確認します。
Note
この関数は、レガシ発行モードを使用して発行された Unity カタログ パイプラインにのみ適用されます。 他のすべてのパイプラインについては、イベント ログ テーブルに直接クエリを実行します。
event_log テーブル値関数は、ストリーミング テーブルまたは具体化されたビューの所有者のみが呼び出すことができます。event_log テーブル値関数に対して作成されたビューは、ストリーミング テーブルまたは具体化されたビューの所有者のみがクエリを実行できます。 ビューを他のユーザーと共有することはできません。
Syntax
event_log( { TABLE ( table_name ) | pipeline_id } )
Arguments
- table_name: 具体化されたビューまたはストリーミング テーブルの名前。 この名前には、テンポラル仕様を含めることはできません。 名前が修飾されていない場合、現在のカタログとスキーマを使用して識別子を修飾します。
-
pipeline_id: パイプラインの文字列識別子。
Returns
-
id STRING NOT NULL: イベント ログ レコードの一意識別子。 -
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: イベント スキーマの安定性。 指定できる値は、-
STABLE: このスキーマは安定しており、変更されません。 -
NULL: このスキーマは安定しており、変更されません。NULLフィールドが追加される前にレコードが作成された場合、この値はmaturity_levelになる可能性があります (リリース 2022.37)。 -
EVOLVING: このスキーマは安定していないため、変更される可能性があります。 -
DEPRECATED: スキーマは非推奨となり、Lakeflow Spark 宣言パイプライン ランタイムは、いつでもこのイベントの生成を停止する可能性があります。
-
-
error STRING: エラーが発生した場合の、エラーの詳細説明。 -
details STRING NOT NULL: イベントの構造化された詳細を含む JSON オブジェクト。 これは、イベントの分析に使用される主なフィールドです。 -
event_type STRING NOT NULL: イベントの種類。
Examples
その他の例については、 パイプライン イベント ログを参照してください。
-- 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