event_log
tabelwaarde, functie
Van toepassing op: Databricks SQL Databricks Runtime 13.3 LTS en hoger
Retourneert het gebeurtenislogboek voor gerealiseerde weergaven, streamingtabellen en DLT-pijplijnen.
Meer informatie over het gebeurtenislogboek van Delta Live Tables.
Syntaxis
event_log( { TABLE ( table_name ) | pipeline_id } )
Argumenten
- table_name: de naam van een gerealiseerde weergave of streamingtabel. De naam mag geen tijdelijke specificatie bevatten. Als de naam niet is gekwalificeerd, worden de huidige catalogus en het huidige schema gebruikt om de id te kwalificeren.
pipeline_id
: De tekenreeks-id van een Delta Live Tables-pijplijn.
Retouren
id STRING NOT NULL
: Een unieke id voor de gebeurtenislogboekrecord.sequence STRING NOT NULL
: Een JSON-object met metagegevens om gebeurtenissen te identificeren en te orden.origin STRING NOT NULL
: Een JSON-object met metagegevens voor de oorsprong van de gebeurtenis, bijvoorbeeld cloudprovider, regio ofuser_id
pipeline_id
.timestamp TIMESTAMP NOT NULL
: De tijd waarop de gebeurtenis is vastgelegd in UTC.message STRING NOT NULL
: Een door mensen leesbaar bericht waarin de gebeurtenis wordt beschreven.level STRING NOT NULL
: het niveau van logboekregistratie, bijvoorbeeldINFO
,WARN
,ERROR
ofMETRICS
.maturity_level STRING NOT NULL
: De stabiliteit van het gebeurtenisschema. De mogelijke waarden zijn:STABLE
: Het schema is stabiel en verandert niet.NULL
: Het schema is stabiel en verandert niet. De waarde kan zijnNULL
als de record is gemaakt voordat hetmaturity_level
veld werd toegevoegd (release 2022.37).EVOLVING
: Het schema is niet stabiel en kan veranderen.DEPRECATED
: Het schema is afgeschaft en de Delta Live Tables-runtime kan op elk gewenst moment stoppen met het produceren van deze gebeurtenis.
error STRING
: Als er een fout is opgetreden, worden de details beschreven die de fout beschrijven.details STRING NOT NULL
: Een JSON-object met gestructureerde details van de gebeurtenis. Dit is het primaire veld dat wordt gebruikt voor het analyseren van gebeurtenissen.event_type STRING NOT NULL
: het gebeurtenistype.
Gebruik
Alleen eigenaren van de pijplijn, streamingtabel of gerealiseerde weergave kunnen het gebeurtenislogboek bekijken. Maak een weergave en verwijs gebruikers toegang tot de weergave zodat andere gebruikers query's kunnen uitvoeren op het gebeurtenislogboek.
> CREATE VIEW event_log_raw AS SELECT * FROM event_log(table(my_mv));
> GRANT SELECT ON VIEW event_log_raw TO `user@databricks.com`;
Voorbeelden
Raadpleeg het gebeurtenislogboek opvragen voor meer voorbeelden.
-- 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