funzione a valori di event_log
table
Si applica a: Databricks SQL Databricks Runtime 13.3 LTS e versioni successive
Restituisce il registro eventi per materializzati views, streaming tablese le pipeline DLT .
Scopri di più sul registro eventi di Delta Live Tables.
Nota
La funzione event_log
table-valued può essere chiamata solo dal proprietario di una vista di streaming table o di una vista materializzata, e una vista creata sulla funzione event_log
table-valued può essere eseguita solo dal proprietario di una vista di streaming table o di una vista materializzata. La vista non può essere condivisa con altri utenti.
Sintassi
event_log( { TABLE ( table_name ) | pipeline_id } )
Argomenti
- table_name: nome di una vista materializzata o di un flusso di dati table. Il nome non deve includere una specifica temporale. Se il nome non è qualificato, i catalog e i schema correnti vengono utilizzati per qualify il identifier.
-
pipeline_id
: la stringa identifier di una pipeline Delta Live Tables.
Valori restituiti
-
id STRING NOT NULL
: un identifier univoco per il record del registro eventi. -
sequence STRING NOT NULL
: oggetto JSON contenente metadati per identificare e ordinare gli eventi. -
origin STRING NOT NULL
: oggetto JSON contenente metadati per l'origine dell'evento, ad esempio provider di servizi cloud, area,user_id
opipeline_id
. -
timestamp TIMESTAMP NOT NULL
: ora in cui l'evento è stato registrato in formato UTC. -
message STRING NOT NULL
: messaggio leggibile che descrive l'evento. -
level STRING NOT NULL
: livello di registrazione, ad esempio ,INFO
,WARN
ERROR
, oMETRICS
. -
maturity_level STRING NOT NULL
: La stabilità dell'evento schema. Le possibili values sono:-
STABLE
: il schema è stabile e non cambierà. -
NULL
: il schema è stabile e non cambierà. Il valore può essereNULL
se il record è stato creato prima dell'aggiunta delmaturity_level
campo (versione 2022.37). -
EVOLVING
: il schema non è stabile e può cambiare. -
DEPRECATED
: il schema è deprecato e il runtime di Delta Live Tables può interrompere la produzione di questo evento in qualsiasi momento.
-
-
error STRING
: se si è verificato un errore, vengono descritti in dettaglio l'errore. -
details STRING NOT NULL
: oggetto JSON contenente i dettagli strutturati dell'evento. Questo è il campo principale usato per l'analisi degli eventi. -
event_type STRING NOT NULL
: tipo di evento.
Esempi
Per altri esempi, vedere Esecuzione di query sul registro eventi.
-- 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