مرجع جداول نظام دورة حياة البيانات

هام

هذه الميزة في المعاينة العامة.

توفر هذه المقالة نظرة عامة على جدولي نظام النسب. تعتمد جداول النظام هذه على ميزة دورة حياة البيانات في كتالوج Unity، ما يسمح لك بالاستعلام برمجيا عن بيانات دورة حياة البيانات لإذكاء صنع القرار والتقارير.

هناك جدولان لنظام دورة حياة البيانات:

  • system.access.table_lineage
  • system.access.column_lineage

إشعار

يمثل كلا جدولي دورة الحياة مجموعة فرعية من جميع أحداث القراءة/الكتابة، حيث لا يمكن دائما التقاط دورة حياة البيانات. يتم إرسال السجلات فقط عندما يمكن استنتاج دورة حياة البيانات.

جدول دورة حياة الجدول

يتضمن جدول نظام دورة حياة الجدول سجلا لكل حدث قراءة أو كتابة على جدول أو مسار كتالوج Unity. يتضمن ذلك على سبيل المثال لا الحصر تشغيل المهام وتشغيل دفتر الملاحظات ولوحات المعلومات المحدثة بحدث القراءة أو الكتابة.

جدول دورة حياة الأعمدة

لا يتضمن جدول دورة حياة الأعمدة الأحداث التي ليس لها مصدر. على سبيل المثال، إذا قمت بإدراج عمود باستخدام قيم صريحة، فلن يتم التقاطه. إذا قرأت عمودا، يتم التقاطه سواء كتبت الإخراج أم لا. دورة حياة الأعمدة غير معتمدة لجداول Delta Live.

مخطط جدول نظام دورة حياة البيانات

تستخدم جداول نظام دورة حياة البيانات المخطط التالي. لا يتضمن source_column_name مخطط دورة حياة الجدول و target_column_name.

اسم العمود نوع البيانات ‏‏الوصف مثال
account_id سلسلة معرف حساب Azure Databricks. 7af234db-66d7-4db3-bbf0-956098224879
metastore_id سلسلة معرف metastore كتالوج Unity. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
workspace_id سلسلة معرف مساحة العمل 123456789012345
entity_type سلسلة نوع الكيان الذي تم التقاط معاملة دورة حياة البيانات منه. القيمة هي NOTEBOOK، JOB، PIPELINE، DBSQL_DASHBOARD، DBSQL_QUERYأو .NULL NOTEBOOK
entity_id سلسلة معرف الكيان الذي تم التقاط معاملة دورة حياة البيانات منه. إذا كان entity_type ، entity_idNULLهو NULL. *دفتر الملاحظات: 23098402394234
*الوظيفه: 23098402394234
* استعلام Databricks SQL: e9cd8a31-de2f-4206-adfa-4f6605d68d88
* لوحة معلومات Databricks SQL: e9cd8a31-de2f-4206-adfa-4f6605d68d88
*خط انابيب: e9cd8a31-de2f-4206-adfa-4f6605d68d88
entity_run_id سلسلة معرف لوصف التشغيل الفريد للكيان، أو NULL. يختلف هذا لكل نوع كيان:

* دفتر الملاحظات: command_run_id
* الوظيفة: job_run_id
* استعلام Databricks SQL: query_run_id
* لوحة معلومات Databricks SQL: query_run_id
* البنية الأساسية لبرنامج ربط العمليات التجارية: pipeline_update_id

إذا كان entity_type ، entity_run_idNULLهو NULL.
*دفتر الملاحظات: 23098402394234
*الوظيفه: 23098402394234
* استعلام Databricks SQL: e9cd8a31-de2f-4206-adfa-4f6605d68d88
* لوحة معلومات Databricks SQL: e9cd8a31-de2f-4206-adfa-4f6605d68d88
*خط انابيب: e9cd8a31-de2f-4206-adfa-4f6605d68d88
source_table_full_name سلسلة اسم من ثلاثة أجزاء لتعريف الجدول المصدر. catalog.schema.table
source_table_catalog سلسلة كتالوج الجدول المصدر. catalog
source_table_schema سلسلة مخطط الجدول المصدر. catalog.schema
source_table_name سلسلة اسم الجدول المصدر. table
source_path سلسلة الموقع في التخزين السحابي للجدول المصدر، أو المسار إذا كان يقرأ من التخزين السحابي مباشرة. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type سلسلة نوع المصدر. القيمة هي TABLEأو PATHVIEWأو أو STREAMING_TABLE. TABLE
source_column_name سلسلة اسم العمود المصدر. date
target_table_full_name سلسلة اسم من ثلاثة أجزاء لتعريف الجدول الهدف. catalog.schema.table
target_table_catalog سلسلة كتالوج الجدول الهدف. catalog
target_table_schema سلسلة مخطط الجدول الهدف. catalog.schema
target_table_name سلسلة اسم الجدول الهدف. table
target_path سلسلة الموقع في التخزين السحابي للجدول الهدف. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type سلسلة نوع الهدف. القيمة هي TABLEأو PATHVIEWأو أو STREAMING TABLE. TABLE
target_column_name سلسلة اسم العمود الهدف. date
created_by سلسلة المستخدم الذي أنشأ دورة حياة البيانات هذه. يمكن أن يكون هذا اسم مستخدم Azure Databricks أو معرف كيان خدمة Azure Databricks أو "مستخدم النظام" أو NULL إذا تعذر تسجيل معلومات المستخدم. crampton.rods@email.com
event_time الطابع الزمني الطابع الزمني عند إنشاء دورة حياة البيانات. 2023-06-20T19:47:21.194+0000
event_date date التاريخ الذي تم فيه إنشاء دورة حياة البيانات. هذا عمود مقسم. 2023-06-20

قراءة جداول نظام دورة حياة البيانات

لاحظ الاعتبارات التالية عند تحليل جداول نظام دورة حياة البيانات:

  • بالنسبة إلى entity_type، يدعم Azure Databricks جداول Delta Live ودفاتر الملاحظات والوظائف واستعلامات Databricks SQL ولوحات المعلومات. الأحداث من الكيانات الأخرى غير مدعومة.
  • إذا رأيت ك entity_typenull، فهذا يعني أنه لا يوجد كيان Azure Databricks مشارك في الحدث. على سبيل المثال، قد يكون نتيجة استعلام JDBC أو من مستخدم ينقر فوق علامة التبويب Sample Data في واجهة مستخدم Azure Databricks.
  • لتحديد ما إذا كان الحدث للقراءة أو الكتابة، يمكنك عرض نوع المصدر ونوع الهدف.
    • للقراءة فقط: نوع المصدر ليس خاليا، ولكن نوع الهدف فارغ.
    • الكتابة فقط: النوع الهدف ليس خاليا، ولكن نوع المصدر خال.
    • القراءة والكتابة: نوع المصدر ونوع الهدف غير فارغين.

مثال على جدول نظام دورة حياة البيانات

كمثال على كيفية تسجيل دورة حياة البيانات في جداول النظام، فيما يلي مثال استعلام متبوعا بسجلات النسب التي ينشئها الاستعلام:

CREATE OR REPLACE TABLE car_features
AS SELECT *,  in1+in2 as premium_feature_set
FROM car_features_exterior
JOIN car_features_interior
USING(id, model);

سيبدو السجل في system.access.table_lineage كما يلي:

entity_type entity_id source_table_name target_table_name created_by event_time
NOTEBOOK 27080565267 car_features_exterior car_features crampton@email.com 2023-01-25T16:19:58.908+0000
NOTEBOOK 27080565267 car_features_interior car_features crampton@email.com 2023-01-25T16:19:58.908+0000

سيبدو السجل في system.access.column_lineage كما يلي:

entity_type entity_id source_table_name target_table_name source_column_name target_column_name event_time
NOTEBOOK 27080565267 car_features_interior car_features in1 premium_feature_set 2023-01-25T16:19:58.908+0000
NOTEBOOK 27080565267 car_features_interior car_features in2 premium_feature_set 2023-01-25T16:19:58.908+0000

إشعار

لا تظهر كافة أعمدة دورة الحياة في المثال أعلاه. للحصول على المخطط الكامل، راجع مخطط دورة حياة البيانات أعلاه.

استكشاف أخطاء استعلامات الجدول الخارجي وإصلاحها

عند الإشارة إلى جدول خارجي باستخدام مسار التخزين السحابي الخاص به، يتضمن سجل دورة الحياة المقترنة اسم المسار فقط وليس اسم الجدول. على سبيل المثال، قد يتضمن سجل دورة حياة هذا الاستعلام اسم المسار وليس اسم الجدول:

SELECT * FROM delta.`abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1`;

إذا كنت تحاول الاستعلام عن سجلات دورة حياة جدول خارجي مشار إليه حسب المسار، فستحتاج إلى تصفية الاستعلام باستخدام source_path أو بدلا من source_table_full_name أو target_pathtarget_table_full_name. على سبيل المثال، يسحب الاستعلام التالي كافة سجلات دورة الحياة لجدول خارجي:

SELECT *
FROM system.access.table_lineage
WHERE
  source_path = "abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1" OR
  target_path = "abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1";

مثال: استرداد سجلات دورة حياة البيانات استنادا إلى اسم الجدول الخارجي

إذا كنت لا تريد استرداد مسار التخزين السحابي يدويا للعثور على دورة حياة البيانات، يمكنك استخدام الدالة التالية للحصول على بيانات دورة حياة البيانات باستخدام اسم الجدول. يمكنك أيضا استبدال system.access.table_lineage ب system.access.column_lineage في الدالة إذا كنت تريد الاستعلام عن دورة حياة العمود.

def getLineageForTable(table_name):
  table_path = spark.sql(f"describe detail {table_name}").select("location").head()[0]

  df = spark.read.table("system.access.table_lineage")
  return df.where(
    (df.source_table_full_name == table_name)
    | (df.target_table_full_name == table_name)
    | (df.source_path == table_path)
    | (df.target_path == table_path)
  )

ثم استخدم الأمر التالي لاستدعاء الدالة وعرض سجلات النسب للجدول الخارجي:

display(getLineageForTable("table_name"))