event_log
functie met tabelwaarde
Van toepassing op: Databricks SQL Databricks Runtime 13.3 LTS en hoger
Retourneert het gebeurtenislogboek voor gematerialiseerde weergaven, streamingtabellenen DLT-pijplijnen.
Meer informatie over de Delta Live Tables gebeurtenislog.
Notitie
De event_log
functie met tabelwaarde kan alleen worden aangeroepen door de eigenaar van een streamingtabel of gerealiseerde weergave en een weergave die is gemaakt via de event_log
functie met tabelwaarde, kan alleen worden opgevraagd door de eigenaar van een streamingtabel of gerealiseerde weergave. De weergave kan niet worden gedeeld met andere gebruikers.
Syntaxis
event_log( { TABLE ( table_name ) | pipeline_id } )
Argumenten
- table_name: de naam van een gematerialiseerde weergave of streaming tabel. De naam mag geen tijdelijke specificatie bevatten. Als de naam niet is gekwalificeerd, worden de huidige catalogus en het huidige schema gebruikt om de identificator te kwalificeren.
-
pipeline_id
: de tekenreeksidentificatie 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.
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