مرجع جدول نظام الوظائف
هام
يوجد جدول النظام هذا في المعاينة العامة. للوصول إلى الجدول، يجب تمكين المخطط في الكتالوج.system
لمزيد من المعلومات، راجع تمكين مخططات جدول النظام.
إشعار
lakeflow
كان المخطط يعرف سابقا باسم workflow
. محتوى كلا المخططين متطابق. لجعل المخطط مرئيا lakeflow
، يجب تمكينه بشكل منفصل.
توفر هذه المقالة مرجعا لكيفية استخدام lakeflow
جداول النظام لمراقبة المهام في حسابك. تتضمن هذه الجداول سجلات من جميع مساحات العمل في حسابك المنشورة في نفس منطقة السحابة. لمشاهدة السجلات من منطقة أخرى، تحتاج إلى عرض الجداول من مساحة عمل تم نشرها في تلك المنطقة.
system.lakeflow
يجب تمكينه بواسطة مسؤول حساب. يمكنك تمكينه باستخدام واجهة برمجة تطبيقات SystemSchemas.
للحصول على أمثلة لاستخدام هذه الجداول لتكلفة الوظيفة وإمكانية المراقبة الصحية، راجع مراقبة تكاليف الوظائف باستخدام جداول النظام.
جداول الوظائف المتوفرة
تعيش جميع جداول النظام المتعلقة بالوظائف في system.lakeflow
المخطط. حاليا، يستضيف المخطط أربعة جداول:
jobs
: يتعقب الإنشاء والحذف والمعلومات الأساسية للوظائف.job_tasks
: يتعقب الإنشاء والحذف والمعلومات الأساسية للمهام الوظيفية.job_run_timeline
: يسجل البداية والنهاية والحالة الناتجة عن تشغيل المهمة.job_task_run_timeline
: يسجل بداية المهام الوظيفية وانتهاءها وحالتها الناتجة.
مخطط جدول الوظيفة
jobs
الجدول هو جدول أبعاد متغير ببطء. عند تغيير صف، يتم إصدار صف جديد، ليحل محل الصف السابق منطقيا.
مسار الجدول: يقع جدول النظام هذا في system.lakeflow.jobs
.
اسم العمود | نوع البيانات | الوصف |
---|---|---|
account_id |
سلسلة | معرف الحساب الذي تنتمي إليه هذه الوظيفة. |
workspace_id |
سلسلة | معرف مساحة العمل التي تنتمي إليها هذه المهمة. |
job_id |
سلسلة | معرف الوظيفة. هذا المفتاح فريد فقط داخل مساحة عمل واحدة. |
name |
سلسلة | اسم الوظيفة الذي يوفره المستخدم. |
description |
سلسلة | الوصف الذي يوفره المستخدم للوظيفة. لم يتم ملؤها للصفوف المنبعثة قبل أواخر أغسطس 2024. |
creator_id |
سلسلة | معرف المدير الذي أنشأ الوظيفة. |
tags |
سلسلة | العلامات المخصصة التي يوفرها المستخدم المقترنة بهذه المهمة. |
change_time |
الطابع الزمني | الوقت الذي تم فيه تعديل الوظيفة آخر مرة. يتم تسجيل معلومات المنطقة الزمنية في نهاية القيمة مع +00:00 تمثيل UTC. |
delete_time |
الطابع الزمني | الوقت الذي تم فيه حذف المهمة من قبل المستخدم. يتم تسجيل معلومات المنطقة الزمنية في نهاية القيمة مع +00:00 تمثيل UTC. |
run_as |
سلسلة | معرف المستخدم أو كيان الخدمة الذي يتم استخدام أذوناته لتشغيل المهمة. |
مخطط جدول مهمة المهمة
جدول مهام الوظيفة هو جدول أبعاد متغير ببطء. عند تغيير صف، يتم إصدار صف جديد، ليحل محل الصف السابق منطقيا.
مسار الجدول: يقع جدول النظام هذا في system.lakeflow.job_tasks
.
اسم العمود | نوع البيانات | الوصف |
---|---|---|
account_id |
سلسلة | معرف الحساب الذي تنتمي إليه هذه الوظيفة. |
workspace_id |
سلسلة | معرف مساحة العمل التي تنتمي إليها هذه المهمة. |
job_id |
سلسلة | معرف الوظيفة. هذا المفتاح فريد فقط داخل مساحة عمل واحدة. |
task_key |
سلسلة | المفتاح المرجعي لمهمة في وظيفة. هذا المفتاح فريد فقط داخل وظيفة واحدة. |
depends_on_keys |
صفيف | مفاتيح المهام لجميع تبعيات المصدر لهذه المهمة. |
change_time |
الطابع الزمني | الوقت الذي تم فيه تعديل المهمة آخر مرة. يتم تسجيل معلومات المنطقة الزمنية في نهاية القيمة مع +00:00 تمثيل UTC. |
delete_time |
الطابع الزمني | الوقت الذي تم فيه حذف مهمة من قبل المستخدم. يتم تسجيل معلومات المنطقة الزمنية في نهاية القيمة مع +00:00 تمثيل UTC. |
مخطط جدول المخطط الزمني لتشغيل المهمة
جدول المخطط الزمني لتشغيل المهمة غير قابل للتغيير وكامل في وقت إنتاجه.
مسار الجدول: يقع جدول النظام هذا في system.lakeflow.job_run_timeline
.
اسم العمود | نوع البيانات | الوصف |
---|---|---|
account_id |
سلسلة | معرف الحساب الذي تنتمي إليه هذه الوظيفة. |
workspace_id |
سلسلة | معرف مساحة العمل التي تنتمي إليها هذه المهمة. |
job_id |
سلسلة | معرف الوظيفة. هذا المفتاح فريد فقط داخل مساحة عمل واحدة. |
run_id |
سلسلة | معرف تشغيل الوظيفة. |
period_start_time |
الطابع الزمني | وقت البدء للتشغيل أو للفترة الزمنية. يتم تسجيل معلومات المنطقة الزمنية في نهاية القيمة مع +00:00 تمثيل UTC. |
period_end_time |
الطابع الزمني | وقت انتهاء التشغيل أو الفترة الزمنية. يتم تسجيل معلومات المنطقة الزمنية في نهاية القيمة مع +00:00 تمثيل UTC. |
trigger_type |
سلسلة | نوع المشغل الذي يمكنه تشغيل. للحصول على القيم المحتملة، راجع قيم نوع المشغل |
run_type |
سلسلة | نوع تشغيل المهمة. للحصول على القيم المحتملة، راجع تشغيل قيم النوع. |
run_name |
سلسلة | اسم التشغيل الذي يوفره المستخدم مع تشغيل هذه المهمة. |
compute_ids |
صفيف | صفيف يحتوي على معرفات الحوسبة لتشغيل المهمة الأصل. يستخدم لتحديد نظام المجموعة المستخدم من قبل SUBMIT_RUN أنواع التشغيل.WORKFLOW_RUN للحصول على معلومات حساب أخرى، راجع job_task_run_timeline الجدول. لم يتم ملؤها للصفوف المنبعثة قبل أواخر أغسطس 2024. |
result_state |
سلسلة | نتيجة تشغيل الوظيفة. للحصول على القيم المحتملة، راجع قيم حالة النتيجة. |
termination_code |
سلسلة | رمز إنهاء تشغيل المهمة. للحصول على القيم المحتملة، راجع قيم رمز الإنهاء. لم يتم ملؤها للصفوف المنبعثة قبل أواخر أغسطس 2024. |
job_parameters |
map | المعلمات على مستوى الوظيفة المستخدمة في تشغيل الوظيفة. لم يتم ملؤها للصفوف المنبعثة قبل أواخر أغسطس 2024. |
قيم نوع المشغل
القيم المحتملة trigger_type
للعمود هي:
CONTINUOUS
CRON
FILE_ARRIVAL
ONETIME
ONETIME_RETRY
تشغيل قيم النوع
القيم المحتملة run_type
للعمود هي:
JOB_RUN
SUBMIT_RUN
: تشغيل لمرة واحدة تم إنشاؤه عبر POST /api/2.1/jobs/runs/submit.WORKFLOW_RUN
: تم بدء تشغيل المهمة من سير عمل دفتر الملاحظات.
قيم حالة النتيجة
القيم المحتملة result_state
للعمود هي:
SUCCEEDED
FAILED
SKIPPED
CANCELLED
TIMED_OUT
ERROR
BLOCKED
قيم التعليمات البرمجية للإنهاء
القيم المحتملة termination_code
للعمود هي:
SUCCESS
CANCELLED
SKIPPED
DRIVER_ERROR
CLUSTER_ERROR
REPOSITORY_CHECKOUT_FAILED
INVALID_CLUSTER_REQUEST
WORKSPACE_RUN_LIMIT_EXCEEDED
FEATURE_DISABLED
CLUSTER_REQUEST_LIMIT_EXCEEDED
STORAGE_ACCESS_ERROR
RUN_EXECUTION_ERROR
UNAUTHORIZED_ERROR
LIBRARY_INSTALLATION_ERROR
MAX_CONCURRENT_RUNS_EXCEEDED
MAX_SPARK_CONTEXTS_EXCEEDED
RESOURCE_NOT_FOUND
INVALID_RUN_CONFIGURATION
CLOUD_FAILURE
MAX_JOB_QUEUE_SIZE_EXCEEDED
مخطط جدول المخطط الزمني لتشغيل مهمة المهمة
جدول المخطط الزمني لتشغيل مهمة الوظيفة غير قابل للتغيير وكامل في وقت إنتاجه.
مسار الجدول: يقع جدول النظام هذا في system.lakeflow.job_task_run_timeline
.
اسم العمود | نوع البيانات | الوصف |
---|---|---|
account_id |
سلسلة | معرف الحساب الذي تنتمي إليه هذه الوظيفة. |
workspace_id |
سلسلة | معرف مساحة العمل التي تنتمي إليها هذه المهمة. |
job_id |
سلسلة | معرف الوظيفة. هذا المفتاح فريد فقط داخل مساحة عمل واحدة. |
run_id |
سلسلة | معرف تشغيل المهمة. |
job_run_id |
سلسلة | معرف تشغيل الوظيفة. لم يتم ملؤها للصفوف المنبعثة قبل أواخر أغسطس 2024. |
parent_run_id |
سلسلة | معرف تشغيل الأصل. لم يتم ملؤها للصفوف المنبعثة قبل أواخر أغسطس 2024. |
period_start_time |
الطابع الزمني | وقت البدء للمهمة أو الفترة الزمنية. يتم تسجيل معلومات المنطقة الزمنية في نهاية القيمة مع +00:00 تمثيل UTC. |
period_end_time |
الطابع الزمني | وقت انتهاء المهمة أو الفترة الزمنية. يتم تسجيل معلومات المنطقة الزمنية في نهاية القيمة مع +00:00 تمثيل UTC. |
task_key |
سلسلة | المفتاح المرجعي لمهمة في وظيفة. هذا المفتاح فريد فقط داخل وظيفة واحدة. |
compute_ids |
صفيف | صفيف يحتوي على معرفات الحوسبة المستخدمة من قبل مهمة الوظيفة. |
result_state |
سلسلة | نتيجة تشغيل المهمة الوظيفية. |
termination_code |
سلسلة | رمز إنهاء تشغيل المهمة. راجع القيم المحتملة أسفل هذا الجدول. لم يتم ملؤها للصفوف المنبعثة قبل أواخر أغسطس 2024. |
القيم المحتملة result_state
للعمود هي:
SUCCEEDED
FAILED
SKIPPED
CANCELLED
TIMED_OUT
ERROR
BLOCKED
القيم المحتملة termination_code
للعمود هي:
SUCCESS
CANCELLED
SKIPPED
DRIVER_ERROR
CLUSTER_ERROR
REPOSITORY_CHECKOUT_FAILED
INVALID_CLUSTER_REQUEST
WORKSPACE_RUN_LIMIT_EXCEEDED
FEATURE_DISABLED
CLUSTER_REQUEST_LIMIT_EXCEEDED
STORAGE_ACCESS_ERROR
RUN_EXECUTION_ERROR
UNAUTHORIZED_ERROR
LIBRARY_INSTALLATION_ERROR
MAX_CONCURRENT_RUNS_EXCEEDED
MAX_SPARK_CONTEXTS_EXCEEDED
RESOURCE_NOT_FOUND
INVALID_RUN_CONFIGURATION
CLOUD_FAILURE
MAX_JOB_QUEUE_SIZE_EXCEEDED
مثال على الاستعلامات
يتضمن هذا القسم نماذج الاستعلامات التي يمكنك استخدامها لتحقيق أقصى استفادة من جداول تدفق البحيرة.
- الحصول على أحدث إصدار من الوظائف
- عدد الوظائف اليومية حسب مساحة العمل
- توزيع حالة الوظيفة اليومية حسب مساحة العمل
- نظرة عامة على أطول الوظائف قيد التشغيل
- وقت تشغيل الوظيفة للوظائف المنفذة عبر runSubmit (أي. تدفق الهواء)
- تحليل تشغيل المهمة
- الوظائف التي تعمل على الحوسبة لجميع الأغراض
- تشغيل مهمة تمت إعادة المحاولة
الحصول على أحدث إصدار من الوظائف
نظرا لأن الجدولين jobs
و job_tasks
يغيران جداول الأبعاد ببطء، يتم إنشاء سجل جديد في كل مرة يتم فيها إجراء تغيير. للحصول على أحدث إصدار من وظيفة، يمكنك الطلب حسب change_time
العمود.
SELECT
*,
ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
system.lakeflow.jobs QUALIFY rn=1
عدد الوظائف اليومية حسب مساحة العمل
يحصل هذا الاستعلام على عدد المهام اليومية حسب مساحة العمل لآخر 7 أيام:
SELECT
workspace_id,
COUNT(DISTINCT run_id) as job_count,
to_date(period_start_time) as date
FROM system.lakeflow.job_run_timeline
WHERE
period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
GROUP BY ALL
توزيع حالة الوظيفة اليومية حسب مساحة العمل
يقوم هذا الاستعلام بإرجاع عدد الوظائف اليومية حسب مساحة العمل لآخر 7 أيام، موزعة حسب نتيجة تشغيل الوظيفة. يزيل الاستعلام أي سجلات تكون فيها المهام في حالة معلقة أو قيد التشغيل.
SELECT
workspace_id,
COUNT(DISTINCT run_id) as job_count,
result_state,
to_date(period_start_time) as date
FROM system.lakeflow.job_run_timeline
WHERE
period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
AND result_state IS NOT NULL
GROUP BY ALL
نظرة عامة على أطول الوظائف قيد التشغيل
يقوم هذا الاستعلام بإرجاع متوسط وقت تشغيل المهمة، مقاسا بالثوان. يتم تنظيم السجلات حسب الوظيفة. يظهر أعلى 90 عمودا وعمودا بنسبة 95 بالمائة متوسط أطوال أطول عمليات تشغيل الوظيفة.
with job_run_duration as (
SELECT
workspace_id,
job_id,
run_id,
CAST(SUM(period_end_time - period_start_time) AS LONG) as duration
FROM
system.lakeflow.job_run_timeline
WHERE
period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
GROUP BY ALL
),
most_recent_jobs as (
SELECT
*,
ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
system.lakeflow.jobs QUALIFY rn=1
)
SELECT
t1.workspace_id,
t1.job_id,
first(t2.name, TRUE) as name,
COUNT(DISTINCT t1.run_id) as runs,
MEAN(t1.duration) as mean_seconds,
AVG(t1.duration) as avg_seconds,
PERCENTILE(t1.duration, 0.9) as p90_seconds,
PERCENTILE(t1.duration, 0.95) as p95_seconds
FROM
job_run_duration t1
LEFT OUTER JOIN most_recent_jobs t2 USING (workspace_id, job_id)
GROUP BY ALL
ORDER BY mean_seconds DESC
LIMIT 100
وقت تشغيل الوظيفة للوظائف المنفذة عبر runSubmit (أي. تدفق الهواء)
يوفر هذا الاستعلام وقت تشغيل تاريخي لوظيفة معينة استنادا إلى المعلمة run_name
. لكي يعمل الاستعلام، يجب عليك تعيين run_name
.
يمكنك أيضا تحرير طول الوقت للتحليل عن طريق تحديث عدد الأيام في INTERVAL 60 DAYS
المقطع.
SELECT
workspace_id,
run_id,
SUM(period_end_time - period_start_time) as run_time
FROM system.lakeflow.job_run_timeline
WHERE
run_type="SUBMIT_RUN"
AND run_name={run_name}
AND period_start_time > CURRENT_TIMESTAMP() - INTERVAL 60 DAYS
GROUP BY ALL
تحليل تشغيل المهمة
يوفر هذا الاستعلام وقت تشغيل تاريخي لوظيفة معينة. لكي يعمل الاستعلام، يجب عليك تعيين workspace_id
و job_id
.
يمكنك أيضا تحرير طول الوقت للتحليل عن طريق تحديث عدد الأيام في INTERVAL 60 DAYS
المقطع.
with job_run_duration as (
SELECT
workspace_id,
job_id,
run_id,
min(period_start_time) as run_start,
max(period_start_time) as run_end,
CAST(SUM(period_end_time - period_start_time) AS LONG) as duration,
FIRST(result_state, TRUE) as result_state
FROM
system.lakeflow.job_run_timeline
WHERE
period_start_time > CURRENT_TIMESTAMP() - INTERVAL 60 DAYS
AND workspace_id={workspace_id}
AND job_id={job_id}
GROUP BY ALL
ORDER BY run_start DESC
),
most_recent_jobs as (
SELECT
*,
ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
system.lakeflow.jobs QUALIFY rn=1
)
SELECT
t1.workspace_id,
t1.job_id,
t2.name,
t1.run_id,
t1.run_start,
t1.run_end,
t1.duration,
t1.result_state
FROM job_run_duration t1
LEFT OUTER JOIN most_recent_jobs t2 USING (workspace_id, job_id)
الوظائف التي تعمل على الحوسبة لجميع الأغراض
ينضم هذا الاستعلام مع compute.clusters
جدول النظام لإرجاع المهام الأخيرة التي يتم تشغيلها على حساب متعدد الأغراض بدلا من حساب الوظائف.
with clusters AS (
SELECT
*,
ROW_NUMBER() OVER(PARTITION BY workspace_id, cluster_id ORDER BY change_time DESC) as rn
FROM system.compute.clusters
WHERE cluster_source="UI" OR cluster_source="API"
QUALIFY rn=1
),
job_tasks_exploded AS (
SELECT
workspace_id,
job_id,
EXPLODE(compute_ids) as cluster_id
FROM system.lakeflow.job_task_run_timeline
WHERE period_start_time >= CURRENT_DATE() - INTERVAL 30 DAY
),
all_purpose_cluster_jobs AS (
SELECT
t1.*,
t2.cluster_name,
t2.owned_by,
t2.dbr_version
FROM job_tasks_exploded t1
INNER JOIN clusters t2 USING (workspace_id, cluster_id)
)
SELECT * FROM all_purpose_cluster_jobs LIMIT 10;
تشغيل مهمة تمت إعادة المحاولة
يجمع هذا الاستعلام قائمة بالعمليات التي تمت إعادة محاولة تشغيلها مع عدد مرات إعادة المحاولة لكل تشغيل.
with repaired_runs as (
SELECT
workspace_id, job_id, run_id, COUNT(*) - 1 as retries_count
FROM system.lakeflow.job_run_timeline
WHERE result_state IS NOT NULL
GROUP BY ALL
HAVING retries_count > 0
)
SELECT
*
FROM repaired_runs
ORDER BY retries_count DESC
LIMIT 10;