event_log
funzione a valori di tabella
Si applica a: Databricks SQL
Databricks Runtime 13.3 LTS e versioni successive
Restituisce il registro eventi per viste materializzate, tabelle di streaminge pipeline DLT.
Scopri di più sul DLT registro eventi .
Nota
Questa funzione si applica solo alle pipeline del catalogo Unity pubblicate usando la modalità di pubblicazione legacy. Per tutte le altre pipeline, interrogare direttamente la tabella del registro eventi.
La funzione con valori di tabella event_log
può essere chiamata solo dal proprietario di una tabella di streaming o di una vista materializzata, e una vista creata sulla funzione con valori di tabella event_log
può essere interrogata solo dal proprietario di una tabella di streaming 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 una tabella di streaming. Il nome non deve includere una specifica temporale. Se il nome non è qualificato, il catalogo e lo schema correnti vengono usati per qualificare l'identificatore.
-
pipeline_id
: un identificatore di stringa di una pipeline DLT.
Valori restituiti
-
id STRING NOT NULL
: identificatore 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
: stabilità dello schema di eventi. I valori possibili sono:-
STABLE
: lo schema è stabile e non cambierà. -
NULL
: lo schema è stabile e non cambierà. Il valore può essereNULL
se il record è stato creato prima dell'aggiunta delmaturity_level
campo (versione 2022.37). -
EVOLVING
: lo schema non è stabile e può cambiare. -
DEPRECATED
: lo schema è deprecato e il runtime DLT potrebbe interrompere la produzione di questo evento in qualsiasi momento.
-
-
error STRING
: Se si è verificato un errore, vengono forniti i dettagli che descrivono 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, consultare il registro degli 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