مرجع جداول نظام دورة حياة البيانات
هام
يوجد جدول النظام هذا في المعاينة العامة. للوصول إلى الجدول، يجب تمكين المخطط في الكتالوج.system
لمزيد من المعلومات، راجع تمكين مخططات جدول النظام.
توفر هذه المقالة نظرة عامة على جدولي نظام النسب. تعتمد جداول النظام هذه على ميزة دورة حياة البيانات في كتالوج Unity، ما يسمح لك بالاستعلام برمجيا عن بيانات دورة حياة البيانات لإذكاء صنع القرار والتقارير.
إشعار
يمثل كلا جدولي دورة الحياة مجموعة فرعية من جميع أحداث القراءة/الكتابة، حيث لا يمكن دائما التقاط دورة حياة البيانات. يتم إرسال السجلات فقط عندما يمكن استنتاج دورة حياة البيانات.
جدول دورة حياة الجدول
يتضمن جدول نظام دورة حياة الجدول سجلا لكل حدث قراءة أو كتابة على جدول أو مسار كتالوج Unity. يتضمن ذلك على سبيل المثال لا الحصر تشغيل المهام وتشغيل دفتر الملاحظات ولوحات المعلومات المحدثة بحدث القراءة أو الكتابة.
مسار الجدول: يقع جدول النظام هذا في system.access.table_lineage
.
جدول دورة حياة الأعمدة
لا يتضمن جدول دورة حياة الأعمدة الأحداث التي ليس لها مصدر. على سبيل المثال، إذا قمت بإدراج عمود باستخدام قيم صريحة، فلن يتم التقاطه. إذا قرأت عمودا، يتم التقاطه سواء كتبت الإخراج أم لا. دورة حياة الأعمدة غير معتمدة لجداول Delta Live.
مسار الجدول: يقع جدول النظام هذا في system.access.column_lineage
.
مخطط جدول نظام دورة حياة البيانات
تستخدم جداول نظام دورة حياة البيانات المخطط التالي. لا يتضمن 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 ، ، ، PIPELINE DASHBOARD_V3 (لوحة المعلومات)، DBSQL_DASHBOARD (لوحة المعلومات القديمة)، DBSQL_QUERY ، أو NULL . JOB |
NOTEBOOK |
entity_id |
سلسلة | معرف الكيان الذي تم التقاط معاملة دورة حياة البيانات منه. إذا كان entity_type ، entity_id NULL هو NULL . |
-دفتر: 23098402394234 -مهمة: 23098402394234 - استعلام Databricks SQL: e9cd8a31-de2f-4206-adfa-4f6605d68d88 -لوحه القياده: 01ef070d110715f2b6d3061b8bda89ea - لوحة المعلومات القديمة: 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 - لوحة المعلومات: query_run_id - لوحة المعلومات القديمة: query_run_id - البنية الأساسية لبرنامج ربط العمليات التجارية: pipeline_update_id إذا كان entity_type ، entity_run_id NULL هو NULL . |
-دفتر: e3cr5a10-de6f-6206-fdfa-4f5505d68d55 -مهمة: 51090402394234 - استعلام Databricks SQL: e9cd8a31-de2f-4206-adfa-4f6605d68d88 -لوحه القياده: c3ra5m10-pt6o-6206-mdfa-4f5505d68d55 - لوحة المعلومات القديمة: c3ra5m10-pt6o-6206-mdfa-4f5505d68d55 -خط انابيب: c5am1e0r-on2f-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 أو PATH VIEW أو أو 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 أو PATH VIEW أو أو STREAMING TABLE . |
TABLE |
target_column_name |
سلسلة | اسم العمود الهدف. | date |
created_by |
سلسلة | المستخدم الذي أنشأ دورة حياة البيانات هذه. يمكن أن يكون هذا اسم مستخدم Azure Databricks أو معرف كيان خدمة Azure Databricks أو "مستخدم النظام" أو NULL إذا تعذر تسجيل معلومات المستخدم. |
crampton.rods@email.com |
event_time |
الطابع الزمني | الطابع الزمني عند إنشاء دورة حياة البيانات. يتم تسجيل معلومات المنطقة الزمنية في نهاية القيمة مع +00:00 تمثيل UTC. |
2023-06-20T19:47:21.194+00:00 |
event_date |
date | التاريخ الذي تم فيه إنشاء دورة حياة البيانات. هذا عمود مقسم. | 2023-06-20 |
قراءة جداول نظام دورة حياة البيانات
لاحظ الاعتبارات التالية عند تحليل جداول نظام دورة حياة البيانات:
- بالنسبة إلى
entity_type
، يدعم Azure Databricks جداول Delta Live ودفاتر الملاحظات والوظائف واستعلامات Databricks SQL ولوحات المعلومات. الأحداث من الكيانات الأخرى غير مدعومة. - إذا رأيت ك
entity_type
null
، فهذا يعني أنه لا يوجد كيان 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_path
target_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"))