مرجع جدول نظام أحداث المستودع
هام
هذه الميزة في المعاينة العامة. يجب تمكين المخطط ليكون مرئيا في الكتالوج.system
لمزيد من المعلومات، راجع تمكين مخططات جدول النظام
في هذه المقالة، ستتعلم كيفية استخدام جدول نظام أحداث المستودع لمراقبة مستودعات SQL وإدارتها في مساحات العمل الخاصة بك. يسجل هذا الجدول صفا لكل مرة يبدأ فيها المستودع ويتوقف ويشغل ويتوسع صعودا وهبوطا. يمكنك استخدام نماذج الاستعلامات في هذه المقالة مع التنبيهات لإبقائك على علم بالتغييرات التي تم إجراؤها على مستودعاتك.
يوجد جدول نظام أحداث المستودع في system.compute.warehouse_events
.
أنواع أحداث المستودع المسجلة
يسجل جدول النظام هذا الأنواع التالية من الأحداث:
SCALED_UP
: تمت إضافة مجموعة جديدة إلى المستودع.SCALED_DOWN
: تمت إزالة نظام مجموعة من المستودع.STOPPING
: المستودع قيد الإيقاف.RUNNING
: المستودع قيد التشغيل بشكل نشط.STARTING
: المستودع في طور البدء.STOPPED
: توقف المستودع تماما عن التشغيل.
مخطط أحداث المستودع
warehouse_events
يستخدم جدول النظام المخطط التالي:
اسم العمود | نوع البيانات | الوصف | مثال |
---|---|---|---|
account_id |
سلسلة | معرف حساب Azure Databricks. | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
سلسلة | معرف مساحة العمل حيث يتم نشر المستودع. | 123456789012345 |
warehouse_id |
سلسلة | معرف مستودع SQL الذي يرتبط به الحدث. | 123456789012345 |
event_type |
سلسلة | نوع حدث المستودع. القيم المحتملة هي SCALED_UP و STOPPING SCALED_DOWN وRUNNING STARTING .STOPPED |
SCALED_UP |
cluster_count |
integer | عدد المجموعات التي يتم تشغيلها بنشاط. | 2 |
event_time |
الطابع الزمني | الطابع الزمني لوقت وقوع الحدث في التوقيت العالمي المتفق عليه. | 2023-07-20T19:13:09.504Z |
نماذج الاستعلامات
نماذج الاستعلامات التالية هي قوالب. قم بتوصيل أي قيم منطقية لمؤسستك. يمكنك أيضا إضافة تنبيهات إلى هذه الاستعلامات لمساعدتك على البقاء على علم بالتغييرات التي تطرأ على مستودعاتك. راجع إنشاء تنبيه.
استخدم نماذج الاستعلامات التالية للحصول على نظرة ثاقبة حول سلوك المستودع:
- ما هي المستودعات التي تعمل بنشاط وكم من الوقت؟
- تحديد المستودعات التي يتم تحجيمها لفترة أطول من المتوقع
- المستودعات التي تبدأ لأول مرة
- التحقيق في رسوم الفوترة
- ما هي المستودعات التي لم تستخدم في آخر 30 يوما؟
- المستودعات التي لها وقت تشغيل أكبر في شهر
- المستودعات التي أمضت معظم الوقت في رفع الحجم خلال شهر
ما هي المستودعات التي تعمل بنشاط وكم من الوقت؟
يحدد هذا الاستعلام المستودعات النشطة حاليا جنبا إلى جنب مع وقت التشغيل بالساعات.
USE CATALOG `system`;
SELECT
we.warehouse_id,
we.event_time,
TIMESTAMPDIFF(MINUTE, we.event_time, CURRENT_TIMESTAMP()) / 60.0 AS running_hours,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
we.event_type = 'RUNNING'
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND we2.event_time > we.event_time
)
فرصة التنبيه: كمسؤول مساحة عمل، قد ترغب في أن يتم تنبيهك إذا كان المستودع يعمل لفترة أطول من المتوقع. على سبيل المثال، يمكنك استخدام نتائج الاستعلام لتعيين شرط تنبيه لتشغيله عندما تتجاوز ساعات التشغيل حدا معينا.
تحديد المستودعات التي يتم تحجيمها لفترة أطول من المتوقع
يحدد هذا الاستعلام المستودعات النشطة حاليا جنبا إلى جنب مع وقت التشغيل بالساعات.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
TIMESTAMPDIFF(MINUTE, we.event_time, CURRENT_TIMESTAMP()) / 60.0 AS upscaled_hours,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
we.event_type = 'SCALED_UP'
AND we.cluster_count >= 2
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND (
(we2.event_type = 'SCALED_DOWN') OR
(we2.event_type = 'SCALED_UP' AND we2.cluster_count < 2)
)
AND we2.event_time > we.event_time
)
فرصة التنبيه: يمكن أن يساعدك التنبيه على هذا الشرط في مراقبة الموارد والتكلفة. يمكنك تعيين تنبيه عندما تتجاوز الساعات المتدرجة حدا معينا.
المستودعات التي تبدأ لأول مرة
يعلمك هذا الاستعلام عن المستودعات الجديدة التي تبدأ لأول مرة.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
we.cluster_count
FROM
compute.warehouse_events we
WHERE
(we.event_type = 'STARTING' OR we.event_type = 'RUNNING')
AND NOT EXISTS (
SELECT 1
FROM compute.warehouse_events we2
WHERE we2.warehouse_id = we.warehouse_id
AND we2.event_time < we.event_time
)
فرصة التنبيه: يمكن أن يساعد التنبيه على المستودعات الجديدة مؤسستك على تتبع تخصيص الموارد. على سبيل المثال، يمكنك تعيين تنبيه يتم تشغيله في كل مرة يبدأ فيها مستودع جديد.
التحقيق في رسوم الفوترة
إذا كنت تريد أن تفهم على وجه التحديد ما كان يفعله المستودع لإنشاء رسوم الفوترة، يمكن أن يخبرك هذا الاستعلام بالتواريخ والأوقات الدقيقة التي تم فيها توسيع نطاق المستودع أو خفضه، أو بدء تشغيله وإيقافه.
use catalog `system`;
SELECT
we.warehouse_id AS warehouse_id,
we.event_type AS event,
we.event_time AS event_time,
we.cluster_count AS cluster_count
FROM
compute.warehouse_events AS we
WHERE
we.event_type IN (
'STARTING', 'RUNNING', 'STOPPING', 'STOPPED',
'SCALING_UP', 'SCALED_UP', 'SCALING_DOWN', 'SCALED_DOWN'
)
AND MONTH(we.event_time) = 7
AND YEAR(we.event_time) = YEAR(CURRENT_DATE())
AND we.warehouse_id = '19c9d68652189278'
ORDER BY
event_time DESC
ما هي المستودعات التي لم تستخدم في آخر 30 يوما؟
يساعدك هذا الاستعلام على تحديد الموارد غير المستخدمة، ما يوفر فرصة لتحسين التكلفة.
use catalog `system`;
SELECT
we.warehouse_id,
we.event_time,
we.event_type,
we.cluster_count
FROM
compute.warehouse_events AS we
WHERE
we.warehouse_id IN (
SELECT DISTINCT
warehouse_id
FROM
compute.warehouse_events
WHERE
MONTH(event_time) = 6
AND YEAR(event_time) = YEAR(CURRENT_DATE())
)
AND we.warehouse_id NOT IN (
SELECT DISTINCT
warehouse_id
FROM
compute.warehouse_events
WHERE
MONTH(event_time) = 7
AND YEAR(event_time) = YEAR(CURRENT_DATE())
)
ORDER BY
event_time DESC
فرصة التنبيه: يمكن أن يساعد تلقي تنبيه على الموارد غير المستخدمة مؤسستك على تحسين التكاليف. على سبيل المثال، يمكنك تعيين تنبيه يتم تشغيله عندما يكتشف الاستعلام مستودعا غير مستخدم.
المستودعات التي لها وقت تشغيل أكبر في شهر
يوضح هذا الاستعلام المستودعات التي تم استخدامها أكثر خلال شهر معين. يستخدم هذا الاستعلام يوليو كمثال.
use catalog `system`;
SELECT
warehouse_id,
SUM(TIMESTAMPDIFF(MINUTE, start_time, end_time)) / 60.0 AS uptime_hours
FROM (
SELECT
starting.warehouse_id,
starting.event_time AS start_time,
(
SELECT
MIN(stopping.event_time)
FROM
compute.warehouse_events AS stopping
WHERE
stopping.warehouse_id = starting.warehouse_id
AND stopping.event_type = 'STOPPED'
AND stopping.event_time > starting.event_time
) AS end_time
FROM
compute.warehouse_events AS starting
WHERE
starting.event_type = 'STARTING'
AND MONTH(starting.event_time) = 7
AND YEAR(starting.event_time) = YEAR(CURRENT_DATE())
) AS warehouse_uptime
WHERE
end_time IS NOT NULL
GROUP BY
warehouse_id
ORDER BY
uptime_hours DESC
فرصة التنبيه: قد ترغب في تتبع المستودعات عالية الاستخدام. على سبيل المثال، يمكنك تعيين تنبيه يتم تشغيله عندما تتجاوز ساعات وقت التشغيل للمستودع حدا معينا.
المستودعات التي أمضت معظم الوقت في رفع الحجم خلال شهر
يعلمك هذا الاستعلام عن المستودعات التي أمضت وقتا طويلا في حالة تكلس الحجم خلال شهر. يستخدم هذا الاستعلام يوليو كمثال.
use catalog `system`;
SELECT
warehouse_id,
SUM(TIMESTAMPDIFF(MINUTE, upscaled_time, downscaled_time)) / 60.0 AS upscaled_hours
FROM (
SELECT
upscaled.warehouse_id,
upscaled.event_time AS upscaled_time,
(
SELECT
MIN(downscaled.event_time)
FROM
compute.warehouse_events AS downscaled
WHERE
downscaled.warehouse_id = upscaled.warehouse_id
AND (downscaled.event_type = 'SCALED_DOWN' OR downscaled.event_type = 'STOPPED')
AND downscaled.event_time > upscaled.event_time
) AS downscaled_time
FROM
compute.warehouse_events AS upscaled
WHERE
upscaled.event_type = 'SCALED_UP'
AND upscaled.cluster_count >= 2
AND MONTH(upscaled.event_time) = 7
AND YEAR(upscaled.event_time) = YEAR(CURRENT_DATE())
) AS warehouse_upscaled
WHERE
downscaled_time IS NOT NULL
GROUP BY
warehouse_id
ORDER BY
upscaled_hours DESC limit 0;
فرصة التنبيه: قد ترغب في تتبع المستودعات عالية الاستخدام. على سبيل المثال، يمكنك تعيين تنبيه يتم تشغيله عندما تتجاوز ساعات وقت التشغيل للمستودع حدا معينا.