مشاركة عبر


event_log دالة ذات قيمة جدولية

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime 13.3 LTS وما فوق

إرجاع سجل الأحداث لطرق العرض المجسدة وجداول الدفق وتدفقات DLT.

تعرف على المزيد حول سجل أحداث Delta Live Tables.

إشعار

event_log يمكن استدعاء الدالة ذات القيمة الجدولية فقط من قبل مالك جدول دفق أو طريقة عرض مجسدة، ويمكن الاستعلام عن طريقة العرض التي تم إنشاؤها عبر event_log الدالة ذات القيمة الجدولية فقط من قبل مالك جدول دفق أو طريقة عرض مجسدة. يتعذر مشاركة طريقة العرض مع مستخدمين آخرين.

بناء الجملة

event_log( { TABLE ( table_name ) | pipeline_id } )

الوسيطات

  • table_name: اسم طريقة عرض مجسدة أو جدول دفق. يجب ألا يتضمن الاسم مواصفات زمنية. إذا لم يكن الاسم مؤهلا، يتم استخدام الكتالوج والمخطط الحاليين لتأهيل المعرف.
  • pipeline_id: معرف السلسلة لمسار Delta Live Tables.

المرتجعات

  • id STRING NOT NULL: معرف فريد لسجل سجل الأحداث.
  • sequence STRING NOT NULL: كائن JSON يحتوي على بيانات تعريف لتحديد الأحداث وترتيبها.
  • origin STRING NOT NULL: كائن JSON يحتوي على بيانات تعريف لأصل الحدث، على سبيل المثال، موفر السحابة أو المنطقة user_idأو أو pipeline_id.
  • timestamp TIMESTAMP NOT NULL: وقت تسجيل الحدث بالتوقيت العالمي المتفق عليه.
  • message STRING NOT NULL: رسالة يمكن للبشر قراءتها تصف الحدث.
  • level STRING NOT NULL: مستوى التسجيل، على سبيل المثال، أو INFOWARNأو ERRORأو .METRICS
  • maturity_level STRING NOT NULL: استقرار مخطط الحدث. القيم المحتملة هي:
    • STABLE: المخطط مستقر ولن يتغير.
    • NULL: المخطط مستقر ولن يتغير. قد تكون NULL القيمة إذا تم إنشاء السجل قبل maturity_level إضافة الحقل (الإصدار 2022.37).
    • EVOLVING: المخطط غير مستقر وقد يتغير.
    • DEPRECATED: تم إهمال المخطط وقد يتوقف وقت تشغيل Delta Live Tables عن إنتاج هذا الحدث في أي وقت.
  • error STRING: إذا حدث خطأ، فالتفاصيل التي تصف الخطأ.
  • details STRING NOT NULL: كائن JSON يحتوي على تفاصيل منظمة للحدث. هذا هو الحقل الأساسي المستخدم لتحليل الأحداث.
  • event_type STRING NOT NULL: نوع الحدث.

الأمثلة

لمزيد من الأمثلة، راجع الاستعلام عن سجل الأحداث.

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