Partage via


event_log fonction table

S’applique à :coche marquée oui Databricks SQL case marquée oui Databricks Runtime 13.3 LTS et versions ultérieures

Retourne le journal des événements pour les vues matérialisées, les tables de diffusion en continu et les pipelines DLT.

En savoir plus sur le journal des événements Delta Live Tables.

Syntaxe

event_log( { TABLE ( table_name ) | pipeline_id } )

Arguments

  • table_name : nom d’une vue matérialisée ou d’une table de diffusion en continu. Le nom ne doit pas inclure une spécification temporelle. Si le nom n’est pas qualifié, le catalogue et le schéma actuels sont utilisés pour qualifier l’identificateur.
  • pipeline_id : l’identificateur de chaîne d’un pipeline Delta Live Tables.

Retours

  • id STRING NOT NULL : un identificateur unique de l’enregistrement de journal des événements.
  • sequence STRING NOT NULL : un objet JSON contenant les métadonnées d’identification et d’ordre des événements.
  • origin STRING NOT NULL : un objet JSON contenant les métadonnées d’identification de l’origine de l’événement, par exemple, le fournisseur de cloud, la région, user_id ou pipeline_id.
  • timestamp TIMESTAMP NOT NULL : l’heure à laquelle l’événement a été enregistré en UTC.
  • message STRING NOT NULL : un message explicite décrivant l’événement.
  • level STRING NOT NULL : le niveau de journalisation, par exemple, INFO, WARN, ERRORou METRICS.
  • maturity_level STRING NOT NULL : la stabilité du schéma d’événement. Les valeurs possibles sont les suivantes :
    • STABLE : le schéma est stable et ne changera pas.
    • NULL : le schéma est stable et ne changera pas. La valeur peut être NULL si l’enregistrement a été créé avant l’ajout du champ maturity_level (version 2022.37).
    • EVOLVING : le schéma n’est pas stable et peut changer.
    • DEPRECATED : le schéma est déprécié et le runtime Delta Live Tables peut cesser de produire cet événement à tout moment.
  • error STRING : détails décrivant l’erreur qui est survenue, le cas échéant.
  • details STRING NOT NULL : un objet JSON contenant les détails structurés de l’événement. Il s’agit du champ principal utilisé pour l’analyse des événements.
  • event_type STRING NOT NULL : le type d'événement.

Utilisation

Seuls les propriétaires du pipeline, de la table de diffusion en continu ou de la vue matérialisée peuvent afficher le journal des événements. Créez une vue et accordez aux utilisateurs l’accès à la vue pour permettre à d’autres utilisateurs d’interroger le journal des événements.

> CREATE VIEW event_log_raw AS SELECT * FROM event_log(table(my_mv));
> GRANT SELECT ON VIEW event_log_raw TO `user@databricks.com`;

Exemples

Pour plus d’exemples, consultez Interrogation du journal des événements.

-- 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