Delen via


event_log tabelwaarde, functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan 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 of user_idpipeline_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, bijvoorbeeld INFO, WARN, ERRORof METRICS.
  • 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 zijn NULL als de record is gemaakt voordat het maturity_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