tablo-değerli fonksiyon event_log

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 13.3 LTS ve üzeri

Gerçekleştirilmiş görünümler, akış tabloları ve Lakeflow Spark Bildirimli İşlem Hatları için olay günlüğünü döndürür.

Lakeflow Spark Bildirimli İşlem Hatları olay günlüğü hakkında daha fazla bilgi edinin.

Note

Tablo değerli event_log işlevi yalnızca akış tablosunun veya gerçekleştirilmiş görünümün sahibi tarafından çağrılabilir ve tablo değerli event_log işlevi üzerinde oluşturulan bir görünüm yalnızca akış tablosunun sahibi veya gerçekleştirilmiş görünümün sahibi tarafından sorgulanabilir. Görünüm diğer kullanıcılarla paylaşılamaz.

Syntax

event_log( { TABLE ( table_name ) | pipeline_id } )

Arguments

  • table_name: Gerçekleştirilmiş görünümün veya akış tablosunun adı. Ad bir zamansal belirtim içermemelidir. Ad nitelenmiş değilse, tanımlayıcıyı nitelemek için geçerli katalog ve şema kullanılır.
  • pipeline_id: İşlem hattının dize tanımlayıcısı.

Returns

  • id STRING NOT NULL: Olay günlüğü kaydı için benzersiz bir tanımlayıcı.
  • sequence STRING NOT NULL: Olayları tanımlamak ve sıralamak için meta verileri içeren bir JSON nesnesi.
  • origin STRING NOT NULL: Olayın kaynağı için meta verileri içeren bir JSON nesnesi, örneğin, bulut sağlayıcısı, bölge, user_idveya pipeline_id.
  • timestamp TIMESTAMP NOT NULL: Olayın UTC olarak kaydedilildiği saat.
  • message STRING NOT NULL: Olayı açıklayan, insan tarafından okunabilen bir ileti.
  • level STRING NOT NULL: Günlüğe kaydetme düzeyi; örneğin, INFO, WARN, ERROR, veya METRICS.
  • maturity_level STRING NOT NULL: Olay şemasının kararlılığı. Olası değerler şunlardır:
    • STABLE: Şema kararlıdır ve değişmez.
    • NULL: Şema kararlıdır ve değişmez. Kayıt, NULL alanı eklenmeden önce oluşturulduysa (sürüm 2022.37), değer maturity_level olabilir.
    • EVOLVING: Şema kararlı değildir ve değişebilir.
    • DEPRECATED: Şema kullanımdan kaldırılmıştır ve Lakeflow Spark Bildirimli İşlem Hatları çalışma zamanı bu olayı herhangi bir zamanda üretmeyi durdurabilir.
  • error STRING: Bir hata oluştuysa, hatayı açıklayan ayrıntılar.
  • details STRING NOT NULL: Olayın yapılandırılmış ayrıntılarını içeren bir JSON nesnesi. Bu, olayları çözümlemek için kullanılan birincil alandır.
  • event_type STRING NOT NULL: Olay türü.

Examples

Daha fazla örnek için İşlem hattı olay günlüğüne bakın.

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