تهيئة بيانات النَّسَب (Lineage Metadata)
Configuring Lineage Metadata
دليل شامل لإنشاء عمليات استيراد بيانات النَّسَب (lineage) عبر الملفات أو استعلامات SQL، وعرضها في Explorer.
نظرة عامة
تمنح بيانات النَّسَب (data lineage) رؤية واضحة لمصدر البيانات ووجهتها. وباعتبارك محترف بيانات، يتيح لك الوصول إلى النَّسَب تحليلاً أسرع للأسباب الجذرية وتصورًا أفضل لعملية بياناتك. تُعد معرفة النَّسَب مفيدة لعدة أسباب:
- فهم مصدر البيانات
- التعرف بسرعة على مصادر الأخطاء
- توفير مسارات تدقيق لتتبّع أصول البيانات بشكل أفضل
- تحسين أداء الأعمال من خلال تحسين تحليل الأعمال
- إدارة الامتثال لحوكمة البيانات وغير ذلك الكثير!
توفّر Validatar طريقة لعرض النَّسَب على مستوى الجدول والعمود لمصدر بيانات في Explorer. لعرض النَّسَب، يجب إنشاء عملية استيراد نَسَب (lineage ingestion) لمصدر البيانات، ويمكنك الاختيار بين استيراد ملف (File) أو استعلام SQL (SQL Query).
استخدم استعلام SQL إذا كانت بيانات النَّسَب قادمة من مصدر واحد مخزَّن في قاعدة بيانات. استخدم استيراد الملف (File ingestion) إذا كانت بياناتك قادمة من مصادر متعددة أو غير مخزنة في قاعدة بيانات.
قبل إنشاء وتنفيذ عملية استيراد النَّسَب، تأكد من استيراد بيانات وصفية (schema metadata) لمصدر البيانات.
File Process
تتكون عملية استيراد الملف (File Ingestion) من 4 خطوات:
- 1إنشاء عملية ملف جديدة (Create a New File Process)
- 2توليد ملف الاستيراد (Generate the Import File)
- 3تعبئة جدول البيانات (Fill out the spreadsheet)
- 4رفع ملف الاستيراد (Upload the Import File)
إنشاء عملية ملف جديدة
لإنشاء عملية ملف جديدة:
- 1انتقل إلى Settings > Lineage Metadata.
- 2انقر على القائمة المنسدلة New Process، ثم اختر New File Process.
- 3أدخل اسم العملية ووصفًا اختياريًا.
- 4انقر على زر Save.
توليد ملف الاستيراد
يحتفظ ملف النَّسَب بمعلومات ربط المصدر بالهدف (source to target mapping) لعملية بياناتك. يوفّر توليد ملف الاستيراد من Validatar جميع رؤوس الأعمدة اللازمة لاستيراد النَّسَب. يمكن لعمليات الملفات الموجودة إنشاء ملف الاستيراد من عملية استيراد سابقة، وهذا الخيار معطّل بالنسبة لعمليات الملفات الجديدة.
لتوليد ملف الاستيراد:
- 1في عملية الملف الجديدة، انقر على Generate Import File.
- 2اختر Headers Only، ثم انقر على Download File.
يحتوي ملف الاستيراد الذي تم توليده على الأعمدة التالية:
| Source Information | Target Information | Lineage Notes |
|---|---|---|
| source.server_name | target.server_name | |
| source.database_name | target.database_name | lineage_transformation* |
| source.schema_name | target.schema_name | lineage_notes* |
| source.table_name | target.table_name | |
| source.column_name | target.column_name |
* غير مطلوب (not required).
يمثّل كل صف ربط مصدر بهدف (source to target mapping) في عملية بياناتك وصولاً إلى مستوى العمود، بمعنى أن كل عمود في الجدول سيكون له سجل في الملف. أما بالنسبة للربط على مستوى الجدول، فتترك الحقلين source.column_name و target.column_name فارغين.
يوضح حقل lineage_transformation نوع تحويل البيانات الذي حدث على الكائن الهدف، بينما يعرض lineage_notes أي ملاحظات إضافية على الكائن الهدف. يمكن عرض كليهما على كائن البيانات في Explorer.
المثال أعلاه يوضح مصدر قاعدة بيانات باسم "SalesDemo" موجودة على الخادم 10.0.1.237 ومربوطة بقاعدة بيانات سحابية باسم "Sales" في Snowflake. لاحظ أن السجل الأول يترك الحقلين source.column_name و target.column_name فارغين لأنه ربط على مستوى الجدول بين جدول "Address" وجدول "LOAD_ADDRESS_DEMOLT2019". أما بقية سجلات Address فهي ربط على مستوى الأعمدة.
بمجرد اكتمال الربط، حان الوقت لرفع الملف وتنفيذ عملية النَّسَب.
رفع الملف
لرفع الملف:
- 1في عملية الملف الجديدة، انقر على Upload Import File.
- 2اختر الملف.
- 3انقر على Import.
- 4انقر على Save.
Query Process
إنشاء عملية استعلام جديدة
لإنشاء عملية استعلام جديدة:
- 1انتقل إلى Settings > Lineage Metadata.
- 2انقر على القائمة المنسدلة New Process، ثم اختر New Query Process.
- 3أدخل اسم العملية ووصفًا اختياريًا.
- 4أضف اتصال Lineage Metadata Connection.
- 5قم بتهيئة استعلام SQL الخاص بالاستيراد.
- 6حدد Refresh Schedule (اختياري).
- 7انقر على Save.
Lineage Metadata Connection
الخطوة الأولى في تهيئة الاستعلام هي إنشاء اتصال بيانات النَّسَب الوصفية (lineage metadata connection). لا يمكنك استخدام اتصالات مصادر البيانات الموجودة لهذه الخطوة؛ بدلاً من ذلك، عليك تعريف الاتصال في صفحة تهيئة العملية. لمزيد من المساعدة حول تهيئة الاتصال، راجع مقالة إنشاء مصدر بيانات (Creating a Data Source).
Configure Ingestion SQL
يشير استعلام SQL إلى نفس الأعمدة المستخدمة في عملية الملف. تتطلب Validatar أن تكون جميع الأعمدة في الاستعلام مُعرَّفة بأسماء مستعارة (aliases) وفق أسماء حقول Validatar. انسخ قالب الاستعلام التالي للمساعدة في بناء الاستعلام.
select
[replace] as [source.server_name],
[replace] as [source.database_name],
[replace] as [source.schema_name],
[replace] as [source.table_name],
[replace] as [source.column_name],
[replace] as [target.server_name],
[replace] as [target.database_name],
[replace] as [target.schema_name],
[replace] as [target.table_name],
[replace] as [target.column_name],
[replace] as [lineage_transformation],
[replace] as [lineage_notes]
from [replace]استبدل أسماء الأعمدة الخاصة بك بالوسم [replace]، وتذكر أن تُبقي تلك الأعمدة معرَّفة بأسماء مستعارة وفق حقول Validatar. يمكنك أيضًا العثور على هذا القالب بالنقر على Copy Template Query في نافذة SQL ingestion المنبثقة.
هذا هو أبسط شكل لاستعلام الاستيراد. في الواقع، قد تأتي بيانات النَّسَب الخاصة بك من عدة جداول تحتاج إلى ربطها معًا. في هذا المثال، سنستعرض استعلام نَسَب نموذجي لمستودع بيانات مبني باستخدام WhereScape. يستخرج هذا الاستعلام نَسَب جداول الأبعاد (Dimension tables) باستخدام مستودع WhereScape.
SELECT distinct
'10.0.1.237' as 'source.server_name',
dc.dc_odbc_source as 'source.database_name',
sdt.dt_schema as 'source.schema_name',
dc_src_table AS 'source.table_name',
'' as 'source.column_name',
'10.0.1.237' as 'target.server_name',
dc.dc_odbc_source as 'target.database_name',
dt.dt_schema as 'target.schema_name',
dt_table_name AS 'target.table_name',
'' as 'target.column_name',
'' as 'lineage_transformation',
'' as 'lineage_notes'
FROM dbo.ws_dim_tab d
INNER JOIN ws_dim_col on dc_obj_key = dt_obj_key
inner join ws_obj_object on oo_obj_key = dt_obj_key
inner join ws_dbc_target dt on dt_target_key = oo_target_key or
case when oo_target_key = 0 then 'dbo' else '' end =
dt.dt_schema
inner join ws_dbc_connect dc on dt.dt_connect_key =
dc.dc_obj_key
inner join ws_obj_object so on so.oo_name = dc_src_table
inner join ws_dbc_target sdt on sdt.dt_target_key =
so.oo_target_key or case when so.oo_target_key = 0 then 'dbo'
else '' end = sdt.dt_schema
inner join ws_dbc_connect sdc on sdt.dt_connect_key =
dc.dc_obj_key
WHERE COALESCE(LTRIM(RTRIM(dc_src_table)),'') <> ''يعثر هذا الاستعلام على أسماء قاعدة البيانات والمخطط (schema) والجدول عن طريق ربط كائنات المصدر والهدف باستخدام مفاتيحها الخاصة عبر جداول WhereScape. وبما أن هذا الاستعلام مخصص للنَّسَب على مستوى الجدول، فإن الحقلين source.column_name و target.column_name يُتركان فارغين. يمكنك دمج (union) نصوص مشابهة للحصول على نَسَب أنواع كائنات أخرى.
على غرار استيراد الملف، لا يُعد lineage_transformation و lineage_notes مطلوبين في استعلام الاستيراد.
Set Refresh Schedule
حدد جدولاً للتحديث (refresh schedule) لضمان وجود أحدث بيانات النَّسَب في Validatar. اختر تكرار ومدة الجدولة.
Possible Errors
قد تحدث الأخطاء التالية أثناء محاولة استيراد بيانات النَّسَب الوصفية:
| Error | Description |
|---|---|
| Target object was not found | لم يتم العثور على جدول أو عمود مطابق في مصدر البيانات الهدف. |
| Source object was not found | لم يتم العثور على جدول أو عمود مطابق في مصدر البيانات المصدر. |
| Duplicate Mapping | يحتوي الملف أو الاستعلام على ربط مكرر. تأكد من ظهور ربط المصدر بالهدف مرة واحدة فقط. |
| Invalid Column | يحتوي الملف أو الاستعلام على عمود غير معروف. قم بإزالة أي أعمدة غير صالحة. |