Condividi tramite


event_log funzione a valori di tabella

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 13.3 LTS e versioni successive

Restituisce il registro eventi per viste materializzate, tabelle di streaminge pipeline DLT.

Scopri di più sul DLT registro eventi .

Nota

Questa funzione si applica solo alle pipeline del catalogo Unity pubblicate usando la modalità di pubblicazione legacy. Per tutte le altre pipeline, interrogare direttamente la tabella del registro eventi.

La funzione con valori di tabella event_log può essere chiamata solo dal proprietario di una tabella di streaming o di una vista materializzata, e una vista creata sulla funzione con valori di tabella event_log può essere interrogata solo dal proprietario di una tabella di streaming o di una vista materializzata. La vista non può essere condivisa con altri utenti.

Sintassi

event_log( { TABLE ( table_name ) | pipeline_id } )

Argomenti

  • table_name: nome di una vista materializzata o di una tabella di streaming. Il nome non deve includere una specifica temporale. Se il nome non è qualificato, il catalogo e lo schema correnti vengono usati per qualificare l'identificatore.
  • pipeline_id: un identificatore di stringa di una pipeline DLT.

Valori restituiti

  • id STRING NOT NULL: identificatore univoco per il record del registro eventi.
  • sequence STRING NOT NULL: oggetto JSON contenente metadati per identificare e ordinare gli eventi.
  • origin STRING NOT NULL: oggetto JSON contenente metadati per l'origine dell'evento, ad esempio provider di servizi cloud, area, user_ido pipeline_id.
  • timestamp TIMESTAMP NOT NULL: ora in cui l'evento è stato registrato in formato UTC.
  • message STRING NOT NULL: messaggio leggibile che descrive l'evento.
  • level STRING NOT NULL: livello di registrazione, ad esempio , INFO, WARNERROR, o METRICS.
  • maturity_level STRING NOT NULL: stabilità dello schema di eventi. I valori possibili sono:
    • STABLE: lo schema è stabile e non cambierà.
    • NULL: lo schema è stabile e non cambierà. Il valore può essere NULL se il record è stato creato prima dell'aggiunta del maturity_level campo (versione 2022.37).
    • EVOLVING: lo schema non è stabile e può cambiare.
    • DEPRECATED: lo schema è deprecato e il runtime DLT potrebbe interrompere la produzione di questo evento in qualsiasi momento.
  • error STRING: Se si è verificato un errore, vengono forniti i dettagli che descrivono l'errore.
  • details STRING NOT NULL: oggetto JSON contenente i dettagli strutturati dell'evento. Questo è il campo principale usato per l'analisi degli eventi.
  • event_type STRING NOT NULL: tipo di evento.

Esempi

Per altri esempi, consultare il registro degli eventi .

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