event_log
función con valores de tabla
Se aplica a: Databricks SQL Databricks Runtime 13.3 LTS y versiones posteriores
Devuelve el registro de eventos para vistas materializadas, tablas de streaming y canalizaciones DLT.
Obtenga más información sobre el registro de eventos de Delta Live Tables.
Nota:
A la función con valores de tabla event_log
solo puede llamarla el propietario de una tabla de streaming o de una vista materializada, mientras que una vista creada a través de la función con valores de tabla event_log
solo puede consultarla el propietario de una tabla de streaming o de una vista materializada. La vista no se puede compartir con otros usuarios.
Sintaxis
event_log( { TABLE ( table_name ) | pipeline_id } )
Argumentos
- table_name: nombre de una vista materializada o tabla de streaming. El nombre no debe incluir una especificación temporal. Si el nombre no está calificado, el catálogo y el esquema actuales se usan para calificar el identificador.
pipeline_id
: identificador de cadena de una canalización de Delta Live Tables.
Devoluciones
id STRING NOT NULL
: un identificador único para el registro de eventos.sequence STRING NOT NULL
: objeto JSON que contiene metadatos para identificar y ordenar los eventos.origin STRING NOT NULL
: objeto JSON que contiene metadatos para el origen del evento, por ejemplo, proveedor de nube, región,user_id
opipeline_id
.timestamp TIMESTAMP NOT NULL
: la hora en que se registró el evento en UTC.message STRING NOT NULL
: mensaje en lenguaje natural que describe el evento.level STRING NOT NULL
: el nivel de registro, por ejemplo,INFO
,WARN
,ERROR
oMETRICS
.maturity_level STRING NOT NULL
: Estabilidad del esquema de eventos. Los valores posibles son:STABLE
: el esquema es estable y no cambiará.NULL
: el esquema es estable y no cambiará. El valor puede serNULL
si el registro se creó antes de agregar el campomaturity_level
(versión 2022.37).EVOLVING
: el esquema no es estable y puede cambiar.DEPRECATED
: el esquema está en desuso y el tiempo de ejecución de Delta Live Tables puede dejar de producir este evento en cualquier momento.
error STRING
: detalles que describen un error, si se ha producido.details STRING NOT NULL
: objeto JSON que contiene los detalles estructurados del evento. Este es el campo principal que se usa para analizar eventos.event_type STRING NOT NULL
: el tipo de evento.
Ejemplos
Para obtener más ejemplos, consulte Consulta del registro de eventos.
-- 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