event_log
tabellvärdesfunktion
Gäller för: Databricks SQL
Databricks Runtime 13.3 LTS och senare
Returnerar händelseloggen för materialiserade vyer, strömmande tabelleroch DLT-pipelines.
Läs mer om händelseloggen för DLT .
Anteckning
Den här funktionen gäller endast för Unity Catalog-pipelines som publicerats i det äldre publiceringsläget. Anropa händelseloggtabellen direkt för alla andra pipelines.
Den event_log
tabellvärdesfunktionen kan bara anropas av ägaren av en strömmande tabell eller materialiserad vy, och en vy som skapats över den event_log
tabellvärdesfunktionen kan endast efterfrågas av ägaren till en strömmande tabell eller materialiserad vy. Det går inte att dela vyn med andra användare.
Syntax
event_log( { TABLE ( table_name ) | pipeline_id } )
Argumenten
- table_name: Namnet på en materialiserad vy eller en strömmande tabell. Namnet får inte innehålla någon temporal specifikation. Om namnet inte är kvalificerat används den aktuella katalogen och schemat för att kvalificera identifieraren.
-
pipeline_id
: Strängidentifieraren för en DLT-pipeline.
Returer
-
id STRING NOT NULL
: En unik identifierare för händelseloggposten. -
sequence STRING NOT NULL
: Ett JSON-objekt som innehåller metadata för att identifiera och beställa händelser. -
origin STRING NOT NULL
: Ett JSON-objekt som innehåller metadata för händelsens ursprung, till exempel molnleverantör, region,user_id
ellerpipeline_id
. -
timestamp TIMESTAMP NOT NULL
: Den tid då händelsen registrerades i UTC. -
message STRING NOT NULL
: Ett läsbart meddelande som beskriver händelsen. -
level STRING NOT NULL
: Loggningsnivån, till exempelINFO
, ,WARN
ERROR
ellerMETRICS
. -
maturity_level STRING NOT NULL
: Händelseschemats stabilitet. Möjliga värden är:-
STABLE
: Schemat är stabilt och ändras inte. -
NULL
: Schemat är stabilt och ändras inte. Värdet kan varaNULL
om posten skapades innan fältetmaturity_level
lades till (version 2022.37). -
EVOLVING
: Schemat är inte stabilt och kan ändras. -
DEPRECATED
: Schemat är föråldrat och DLT-körtiden kan sluta producera den här händelsen när som helst.
-
-
error STRING
: Om ett fel uppstod finns information som beskriver felet. -
details STRING NOT NULL
: Ett JSON-objekt som innehåller strukturerad information om händelsen. Det här är det primära fältet som används för att analysera händelser. -
event_type STRING NOT NULL
: Händelsetypen.
Exempel
Fler exempel finns i Sök i händelseloggen.
-- 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