event_log
fonction table
S’applique à : Databricks SQL Databricks Runtime 13.3 LTS et ultérieur
Retourne le journal des événements pour les vues matérialisées, les tables de diffusion en continu et les pipelines DLT.
En savoir plus sur le journal des événements Delta Live Tables.
Remarque
La fonction table event_log
peut uniquement être appelée par le propriétaire d’une table de diffusion en continu ou une vue matérialisée. Une vue créée sur la fonction table event_log
peut être interrogée uniquement par le propriétaire d’une table de diffusion en continu ou une vue matérialisée. La vue ne peut pas être partagée avec d’autres utilisateurs.
Syntaxe
event_log( { TABLE ( table_name ) | pipeline_id } )
Arguments
- table_name : nom d’une vue matérialisée ou d’une table de diffusion en continu. Le nom ne doit pas inclure une spécification temporelle. Si le nom n’est pas qualifié, le catalogue et le schéma actuels sont utilisés pour qualifier l’identificateur.
pipeline_id
: l’identificateur de chaîne d’un pipeline Delta Live Tables.
Retours
id STRING NOT NULL
: un identificateur unique de l’enregistrement de journal des événements.sequence STRING NOT NULL
: un objet JSON contenant les métadonnées d’identification et d’ordre des événements.origin STRING NOT NULL
: un objet JSON contenant les métadonnées d’identification de l’origine de l’événement, par exemple, le fournisseur de cloud, la région,user_id
oupipeline_id
.timestamp TIMESTAMP NOT NULL
: l’heure à laquelle l’événement a été enregistré en UTC.message STRING NOT NULL
: un message explicite décrivant l’événement.level STRING NOT NULL
: le niveau de journalisation, par exemple,INFO
,WARN
,ERROR
ouMETRICS
.maturity_level STRING NOT NULL
: la stabilité du schéma d’événement. Les valeurs possibles sont les suivantes :STABLE
: le schéma est stable et ne changera pas.NULL
: le schéma est stable et ne changera pas. La valeur peut êtreNULL
si l’enregistrement a été créé avant l’ajout du champmaturity_level
(version 2022.37).EVOLVING
: le schéma n’est pas stable et peut changer.DEPRECATED
: le schéma est déprécié et le runtime Delta Live Tables peut cesser de produire cet événement à tout moment.
error STRING
: détails décrivant l’erreur qui est survenue, le cas échéant.details STRING NOT NULL
: un objet JSON contenant les détails structurés de l’événement. Il s’agit du champ principal utilisé pour l’analyse des événements.event_type STRING NOT NULL
: le type d'événement.
Exemples
Pour plus d’exemples, consultez Interrogation du journal des événements.
-- 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