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

هام

هذه الميزة في المعاينة العامة. يجب تمكين المخطط ليكون مرئيا في الكتالوج.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و STOPPINGSCALED_DOWNوRUNNINGSTARTING.STOPPED SCALED_UP
cluster_count integer عدد المجموعات التي يتم تشغيلها بنشاط. 2
event_time الطابع الزمني الطابع الزمني لوقت وقوع الحدث في التوقيت العالمي المتفق عليه. 2023-07-20T19:13:09.504Z

نماذج الاستعلامات

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

استخدم نماذج الاستعلامات التالية للحصول على نظرة ثاقبة حول سلوك المستودع:

ما هي المستودعات التي تعمل بنشاط وكم من الوقت؟

يحدد هذا الاستعلام المستودعات النشطة حاليا جنبا إلى جنب مع وقت التشغيل بالساعات.

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;

فرصة التنبيه: قد ترغب في تتبع المستودعات عالية الاستخدام. على سبيل المثال، يمكنك تعيين تنبيه يتم تشغيله عندما تتجاوز ساعات وقت التشغيل للمستودع حدا معينا.