مراقبة خطوط أنابيب Delta Live Tables

توضح هذه المقالة كيف يمكنك استخدام ميزات المراقبة والمراقبة المضمنة لمسارات Delta Live Tables، بما في ذلك دورة حياة البيانات وسجل التحديثات وإعداد تقارير جودة البيانات.

يمكنك مراجعة معظم بيانات المراقبة يدويا من خلال واجهة مستخدم تفاصيل البنية الأساسية لبرنامج ربط العمليات التجارية. بعض المهام أسهل لإنجازها عن طريق الاستعلام عن بيانات تعريف سجل الأحداث. راجع ما هو سجل أحداث Delta Live Tables؟.

ما هي تفاصيل البنية الأساسية لبرنامج ربط العمليات التجارية المتوفرة في واجهة المستخدم؟

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

تتضمن التفاصيل المعروضة معرف المسار ومكتبات المصدر وتكلفة الحساب وإصدار المنتج والقناة التي تم تكوينها للبنية الأساسية لبرنامج ربط العمليات التجارية.

للاطلاع على طريقة عرض جدولية لمجموعات البيانات، انقر فوق علامة التبويب قائمة . تسمح لك طريقة عرض القائمة برؤية جميع مجموعات البيانات في البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك ممثلة كصف في جدول، وهي مفيدة عندما يكون DAG للمسار كبيرا جدا بحيث يتعذر تصوره في طريقة عرض Graph . يمكنك التحكم في مجموعات البيانات المعروضة في الجدول باستخدام عوامل تصفية متعددة مثل اسم مجموعة البيانات ونوعها وحالتها. للعودة إلى مرئيات DAG، انقر فوق Graph.

التشغيل كمستخدم هو مالك البنية الأساسية لبرنامج ربط العمليات التجارية، ويتم تشغيل تحديثات البنية الأساسية لبرنامج ربط العمليات التجارية بأذونات هذا المستخدم. لتغيير run as المستخدم، انقر فوق أذونات وقم بتغيير مالك المسار.

كيف يمكنك عرض تفاصيل مجموعة البيانات؟

يؤدي النقر فوق مجموعة بيانات في الرسم البياني للمسار أو قائمة مجموعة البيانات إلى عرض تفاصيل حول مجموعة البيانات. تتضمن التفاصيل مخطط مجموعة البيانات ومقاييس جودة البيانات وارتباطا مرة أخرى إلى التعليمات البرمجية المصدر التي تحدد مجموعة البيانات.

عرض محفوظات التحديثات

لعرض محفوظات تحديثات البنية الأساسية لبرنامج ربط العمليات التجارية وحالتها، انقر فوق القائمة المنسدلة محفوظات التحديث في الشريط العلوي.

لعرض الرسم البياني والتفاصيل والأحداث للتحديث، حدد التحديث في القائمة المنسدلة. للعودة إلى التحديث الأخير، انقر فوق إظهار آخر تحديث.

الحصول على إعلامات لأحداث البنية الأساسية لبرنامج ربط العمليات التجارية

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

ما هو سجل أحداث Delta Live Tables؟

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

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

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

مخطط سجل الأحداث

يصف الجدول التالي مخطط سجل الأحداث. تحتوي بعض هذه الحقول على بيانات JSON التي تتطلب التحليل لتنفيذ بعض الاستعلامات، مثل details الحقل. يدعم : Azure Databricks عامل التشغيل لتحليل حقول JSON. راجع : (علامة النقطين) عامل التشغيل.

الحقل ‏‏الوصف
id معرف فريد لسجل سجل الأحداث.
sequence مستند JSON يحتوي على بيانات تعريف لتحديد الأحداث وترتيبها.
origin مستند JSON يحتوي على بيانات تعريف لأصل الحدث، على سبيل المثال، موفر السحابة أو منطقة user_idpipeline_idموفر السحابة أو أو pipeline_type لإظهار مكان إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية، إما DBSQL أو WORKSPACE.
timestamp وقت تسجيل الحدث.
message رسالة يمكن للبشر قراءتها تصف الحدث.
level نوع الحدث، على سبيل المثال، أو INFOWARNأو ERRORأو .METRICS
error إذا حدث خطأ، فالتفاصيل التي تصف الخطأ.
details مستند JSON يحتوي على تفاصيل منظمة للحدث. هذا هو الحقل الأساسي المستخدم لتحليل الأحداث.
event_type نوع الحدث.
maturity_level استقرار مخطط الحدث. تشمل القيم المحتملة ما يلي:

- STABLE: المخطط مستقر ولن يتغير.
- NULL: المخطط مستقر ولن يتغير. قد تكون NULL القيمة إذا تم إنشاء السجل قبل maturity_level إضافة الحقل (الإصدار 2022.37).
- EVOLVING: المخطط غير مستقر وقد يتغير.
- DEPRECATED: تم إهمال المخطط وقد يتوقف وقت تشغيل Delta Live Tables عن إنتاج هذا الحدث في أي وقت.

الاستعلام عن سجل الأحداث

يعتمد موقع سجل الأحداث والواجهة للاستعلام عن سجل الأحداث على ما إذا كان المسار الخاص بك قد تم تكوينه لاستخدام Hive metastore أو كتالوج Unity.

Hive metastore

إذا كانت البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك تنشر الجداول إلى Hive metastore، يتم تخزين سجل الأحداث في /system/events أسفل storage الموقع. على سبيل المثال، إذا قمت بتكوين إعداد المسار storage الخاص بك ك /Users/username/data، يتم تخزين سجل الأحداث في /Users/username/data/system/events المسار في DBFS.

إذا لم تقم بتكوين storage الإعداد، يكون /pipelines/<pipeline-id>/system/events موقع سجل الأحداث الافتراضي في DBFS. على سبيل المثال، إذا كان معرف المسار الخاص بك هو 91de5e48-35ed-11ec-8d3d-0242ac130003، فإن موقع التخزين هو /pipelines/91de5e48-35ed-11ec-8d3d-0242ac130003/system/events.

يمكنك إنشاء طريقة عرض لتبسيط الاستعلام عن سجل الأحداث. ينشئ المثال التالي طريقة عرض مؤقتة تسمى event_log_raw. يتم استخدام طريقة العرض هذه في مثال استعلامات سجل الأحداث المضمنة في هذه المقالة:

CREATE OR REPLACE TEMP VIEW event_log_raw AS SELECT * FROM delta.`<event-log-path>`;

استبدل <event-log-path> بموقع سجل الأحداث.

يسمى كل مثيل لتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية تحديثا. غالبا ما تريد استخراج المعلومات لآخر تحديث. قم بتشغيل الاستعلام التالي للعثور على معرف التحديث الأخير وحفظه في طريقة العرض المؤقتة latest_update_id . يتم استخدام طريقة العرض هذه في مثال استعلامات سجل الأحداث المضمنة في هذه المقالة:

CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;

يمكنك الاستعلام عن سجل الأحداث في دفتر ملاحظات Azure Databricks أو محرر SQL. استخدم دفتر ملاحظات أو محرر SQL لتشغيل استعلامات سجل الأحداث النموذجية.

كتالوج Unity

إذا كانت البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك تنشر الجداول إلى كتالوج Unity، فيجب عليك استخدام دالة event_log قيم الجدول (TVF) لجلب سجل الأحداث للبنية الأساسية لبرنامج ربط العمليات التجارية. يمكنك استرداد سجل الأحداث للبنية الأساسية لبرنامج ربط العمليات التجارية عن طريق تمرير معرف المسار أو اسم جدول إلى TVF. على سبيل المثال، لاسترداد سجلات سجل الأحداث للبنية الأساسية لبرنامج ربط العمليات التجارية ذات المعرف 04c78631-3dd7-4856-b2a6-7d84e9b2638b:

SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")

لاسترداد سجلات سجل الأحداث للبنية الأساسية لبرنامج ربط العمليات التجارية التي أنشأت الجدول my_catalog.my_schema.table1أو تمتلكه :

SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))

لاستدعاء TVF، يجب استخدام نظام مجموعة مشترك أو مستودع SQL. على سبيل المثال، يمكنك استخدام دفتر ملاحظات مرفق بمجموعة مشتركة أو استخدام محرر SQL المتصل بمستودع SQL.

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

إشعار

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

CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");

استبدل <pipeline-ID> بالمعرف الفريد لمسار Delta Live Tables. يمكنك العثور على المعرف في لوحة تفاصيل المسار في واجهة مستخدم Delta Live Tables.

يسمى كل مثيل لتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية تحديثا. غالبا ما تريد استخراج المعلومات لآخر تحديث. قم بتشغيل الاستعلام التالي للعثور على معرف التحديث الأخير وحفظه في طريقة العرض المؤقتة latest_update_id . يتم استخدام طريقة العرض هذه في مثال استعلامات سجل الأحداث المضمنة في هذه المقالة:

CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;

معلومات دورة حياة الاستعلام من سجل الأحداث

تحتوي الأحداث التي تحتوي على معلومات حول دورة حياة البيانات على نوع flow_definitionالحدث . details:flow_definition يحتوي الكائن على output_dataset وتعريف input_datasets كل علاقة في الرسم البياني.

يمكنك استخدام الاستعلام التالي لاستخراج مجموعات بيانات الإدخال والإخراج لمشاهدة معلومات دورة حياة البيانات:

SELECT
  details:flow_definition.output_dataset as output_dataset,
  details:flow_definition.input_datasets as input_dataset
FROM
  event_log_raw,
  latest_update
WHERE
  event_type = 'flow_definition'
  AND
  origin.update_id = latest_update.id
output_dataset input_datasets
customers null
sales_orders_raw null
sales_orders_cleaned ["customers", "sales_orders_raw"]
sales_order_in_la ["sales_orders_cleaned"]

جودة بيانات الاستعلام من سجل الأحداث

إذا قمت بتحديد التوقعات على مجموعات البيانات في البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك، يتم تخزين مقاييس جودة البيانات في details:flow_progress.data_quality.expectations الكائن. تحتوي الأحداث التي تحتوي على معلومات حول جودة البيانات على نوع flow_progressالحدث . يستعلم المثال التالي عن مقاييس جودة البيانات لآخر تحديث للبنية الأساسية لبرنامج ربط العمليات التجارية:

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
  (
    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_raw,
      latest_update
    WHERE
      event_type = 'flow_progress'
      AND origin.update_id = latest_update.id
  )
GROUP BY
  row_expectations.dataset,
  row_expectations.name
dataset expectation passing_records failing_records
sales_orders_cleaned valid_order_number 4083 0

مراقبة تراكم البيانات عن طريق الاستعلام عن سجل الأحداث

تتعقب Delta Live Tables كمية البيانات الموجودة في التراكم في details:flow_progress.metrics.backlog_bytes الكائن. تحتوي الأحداث التي تحتوي على مقاييس تراكم على نوع flow_progressالحدث . يستعلم المثال التالي عن مقاييس تراكم آخر تحديث للبنية الأساسية لبرنامج ربط العمليات التجارية:

SELECT
  timestamp,
  Double(details :flow_progress.metrics.backlog_bytes) as backlog
FROM
  event_log_raw,
  latest_update
WHERE
  event_type ='flow_progress'
  AND
  origin.update_id = latest_update.id

إشعار

قد لا تتوفر مقاييس تراكم البيانات استنادا إلى نوع مصدر بيانات البنية الأساسية لبرنامج ربط العمليات التجارية وإصدار وقت تشغيل Databricks.

مراقبة أحداث التحجيم التلقائي المحسنة من سجل الأحداث

يلتقط سجل الأحداث تغيير حجم نظام المجموعة عند تمكين التحجيم التلقائي المحسن في البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك. تحتوي الأحداث التي تحتوي على معلومات حول التحجيم التلقائي المحسن على نوع autoscaleالحدث . يتم تخزين معلومات طلب تغيير حجم نظام المجموعة في details:autoscale الكائن . يستعلم المثال التالي عن طلبات تغيير حجم نظام مجموعة التحجيم التلقائي المحسن لآخر تحديث للبنية الأساسية لبرنامج ربط العمليات التجارية:

SELECT
  timestamp,
  Double(
    case
      when details :autoscale.status = 'RESIZING' then details :autoscale.requested_num_executors
      else null
    end
  ) as starting_num_executors,
  Double(
    case
      when details :autoscale.status = 'SUCCEEDED' then details :autoscale.requested_num_executors
      else null
    end
  ) as succeeded_num_executors,
  Double(
    case
      when details :autoscale.status = 'PARTIALLY_SUCCEEDED' then details :autoscale.requested_num_executors
      else null
    end
  ) as partially_succeeded_num_executors,
  Double(
    case
      when details :autoscale.status = 'FAILED' then details :autoscale.requested_num_executors
      else null
    end
  ) as failed_num_executors
FROM
  event_log_raw,
  latest_update
WHERE
  event_type = 'autoscale'
  AND
  origin.update_id = latest_update.id

مراقبة استخدام موارد الحساب

cluster_resources توفر الأحداث مقاييس حول عدد فتحات المهام في نظام المجموعة، ومقدار استخدام فتحات المهام هذه، وعدد المهام التي تنتظر جدولتها.

عند تمكين التحجيم التلقائي المحسن، cluster_resources تحتوي الأحداث أيضا على مقاييس لخوارزمية التحجيم التلقائي، بما في ذلك latest_requested_num_executorsو.optimal_num_executors تظهر الأحداث أيضا حالة الخوارزمية على أنها حالات مختلفة مثل CLUSTER_AT_DESIRED_SIZEو SCALE_UP_IN_PROGRESS_WAITING_FOR_EXECUTORSو BLOCKED_FROM_SCALING_DOWN_BY_CONFIGURATION. يمكن عرض هذه المعلومات بالاقتران مع أحداث التحجيم التلقائي لتوفير صورة شاملة للتحجيم التلقائي المحسن.

يستعلم المثال التالي عن محفوظات حجم قائمة انتظار المهام لآخر تحديث للبنية الأساسية لبرنامج ربط العمليات التجارية:

SELECT
  timestamp,
  Double(details :cluster_resources.avg_num_queued_tasks) as queue_size
FROM
  event_log_raw,
  latest_update
WHERE
  event_type = 'cluster_resources'
  AND
  origin.update_id = latest_update.id

يستعلم المثال التالي عن محفوظات الاستخدام لآخر تحديث للبنية الأساسية لبرنامج ربط العمليات التجارية:

SELECT
  timestamp,
  Double(details :cluster_resources.avg_task_slot_utilization) as utilization
FROM
  event_log_raw,
  latest_update
WHERE
  event_type = 'cluster_resources'
  AND
  origin.update_id = latest_update.id

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

SELECT
  timestamp,
  Double(details :cluster_resources.num_executors) as current_executors,
  Double(details :cluster_resources.latest_requested_num_executors) as latest_requested_num_executors,
  Double(details :cluster_resources.optimal_num_executors) as optimal_num_executors,
  details :cluster_resources.state as autoscaling_state
FROM
  event_log_raw,
  latest_update
WHERE
  event_type = 'cluster_resources'
  AND
  origin.update_id = latest_update.id

تدقيق البنية الأساسية لبرنامج ربط العمليات التجارية ل Delta Live Tables

يمكنك استخدام سجلات سجل أحداث Delta Live Tables وسجلات تدقيق Azure Databricks الأخرى للحصول على صورة كاملة لكيفية تحديث البيانات في Delta Live Tables.

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

راجع أحداث كتالوج Unity للحصول على مرجع لأحداث تدقيق كتالوج Unity.

الاستعلام عن إجراءات المستخدم في سجل الأحداث

يمكنك استخدام سجل الأحداث لتدقيق الأحداث، على سبيل المثال، إجراءات المستخدم. تحتوي الأحداث التي تحتوي على معلومات حول إجراءات المستخدم على نوع user_actionالحدث .

يتم تخزين معلومات حول الإجراء في user_action الكائن في details الحقل. استخدم الاستعلام التالي لإنشاء سجل تدقيق لأحداث المستخدم. لإنشاء event_log_raw طريقة العرض المستخدمة في هذا الاستعلام، راجع الاستعلام عن سجل الأحداث.

SELECT timestamp, details:user_action:action, details:user_action:user_name FROM event_log_raw WHERE event_type = 'user_action'
timestamp action user_name
2021-05-20T19:36:03.517+0000 START user@company.com
2021-05-20T19:35:59.913+0000 CREATE user@company.com
2021-05-27T00:35:51.971+0000 START user@company.com

معلومات وقت التشغيل

يمكنك عرض معلومات وقت التشغيل لتحديث البنية الأساسية لبرنامج ربط العمليات التجارية، على سبيل المثال، إصدار Databricks Runtime للتحديث:

SELECT details:create_update:runtime_version:dbr_version FROM event_log_raw WHERE event_type = 'create_update'
dbr_version
11.0