دليل Validatar

تهيئة بيانات النَّسَب (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. 1إنشاء عملية ملف جديدة (Create a New File Process)
  2. 2توليد ملف الاستيراد (Generate the Import File)
  3. 3تعبئة جدول البيانات (Fill out the spreadsheet)
  4. 4رفع ملف الاستيراد (Upload the Import File)

إنشاء عملية ملف جديدة

لإنشاء عملية ملف جديدة:

  1. 1انتقل إلى Settings > Lineage Metadata.
  2. 2انقر على القائمة المنسدلة New Process، ثم اختر New File Process.
  3. 3أدخل اسم العملية ووصفًا اختياريًا.
  4. 4انقر على زر Save.

توليد ملف الاستيراد

يحتفظ ملف النَّسَب بمعلومات ربط المصدر بالهدف (source to target mapping) لعملية بياناتك. يوفّر توليد ملف الاستيراد من Validatar جميع رؤوس الأعمدة اللازمة لاستيراد النَّسَب. يمكن لعمليات الملفات الموجودة إنشاء ملف الاستيراد من عملية استيراد سابقة، وهذا الخيار معطّل بالنسبة لعمليات الملفات الجديدة.

لتوليد ملف الاستيراد:

  1. 1في عملية الملف الجديدة، انقر على Generate Import File.
  2. 2اختر Headers Only، ثم انقر على Download File.

يحتوي ملف الاستيراد الذي تم توليده على الأعمدة التالية:

Source InformationTarget InformationLineage Notes
source.server_nametarget.server_name
source.database_nametarget.database_namelineage_transformation*
source.schema_nametarget.schema_namelineage_notes*
source.table_nametarget.table_name
source.column_nametarget.column_name

* غير مطلوب (not required).

شكل 1: توليد ملف الاستيراد
شكل 2: توليد ملف الاستيراد

يمثّل كل صف ربط مصدر بهدف (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. 1في عملية الملف الجديدة، انقر على Upload Import File.
  2. 2اختر الملف.
  3. 3انقر على Import.
  4. 4انقر على Save.

Query Process

إنشاء عملية استعلام جديدة

لإنشاء عملية استعلام جديدة:

  1. 1انتقل إلى Settings > Lineage Metadata.
  2. 2انقر على القائمة المنسدلة New Process، ثم اختر New Query Process.
  3. 3أدخل اسم العملية ووصفًا اختياريًا.
  4. 4أضف اتصال Lineage Metadata Connection.
  5. 5قم بتهيئة استعلام SQL الخاص بالاستيراد.
  6. 6حدد Refresh Schedule (اختياري).
  7. 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) نصوص مشابهة للحصول على نَسَب أنواع كائنات أخرى.

شكل 3: Configure Ingestion SQL

على غرار استيراد الملف، لا يُعد lineage_transformation و lineage_notes مطلوبين في استعلام الاستيراد.

Set Refresh Schedule

حدد جدولاً للتحديث (refresh schedule) لضمان وجود أحدث بيانات النَّسَب في Validatar. اختر تكرار ومدة الجدولة.

Possible Errors

قد تحدث الأخطاء التالية أثناء محاولة استيراد بيانات النَّسَب الوصفية:

ErrorDescription
Target object was not foundلم يتم العثور على جدول أو عمود مطابق في مصدر البيانات الهدف.
Source object was not foundلم يتم العثور على جدول أو عمود مطابق في مصدر البيانات المصدر.
Duplicate Mappingيحتوي الملف أو الاستعلام على ربط مكرر. تأكد من ظهور ربط المصدر بالهدف مرة واحدة فقط.
Invalid Columnيحتوي الملف أو الاستعلام على عمود غير معروف. قم بإزالة أي أعمدة غير صالحة.