ウェアハウス events システムテーブル リファレンス
プレビュー
このシステムテーブルは パブリック プレビュー段階です。
この記事では、ウェアハウス イベント システム テーブルを使用して、ワークスペース内のSQLウェアハウスを監視および管理する方法について説明します。このテーブルには、ウェアハウスが開始、停止、実行、スケールアップ、スケールダウンするたびに行が記録されます。この記事のサンプルクエリーをアラートと一緒に使用することで、ウェアハウスの変更を常に通知することができます。
テーブルパス :このシステムテーブルは system.compute.warehouse_eventsにあります。
ログに記録されたウェアハウス・イベント・タイプ
このシステム テーブルには、以下のタイプのイベントが記録されます。
SCALED_UP: 新規クラスターがウェアハウスに追加されました。SCALED_DOWN: 新規クラスターがウェアハウスから削除されました。STOPPING: ウェアハウスが停止中です。RUNNING: ウェアハウスが実行中です。STARTING: ウェアハウスが起動中です。STOPPED: ウェアハウスが完全に停止しました。
ウェアハウス・イベント・スキーマ
このwarehouse_eventsシステム テーブルは次のスキーマを使用しています。
列名  | データ型  | 説明  | 例  | 
|---|---|---|---|
  | string  | DatabricksアカウントのID。  | 
  | 
  | string  | 倉庫が配置されているワークスペースのID。  | 
  | 
  | string  | イベントが関連するSQLウェアハウスのID。  | 
  | 
  | string  | ウェアハウス イベントのタイプ。指定できる値は、  | 
  | 
  | 整数タイプ  | アクティブに実行されているクラスターの数。  | 
  | 
  | タイムスタンプ  | イベントが発生した日時のタイムスタンプ (UTC)。  | 
  | 
サンプル クエリ
次のサンプル クエリはテンプレートです。 あなたの組織にとって意味のある価値を何でも差し込んでください。 また、これらのクエリにアラートを追加して、ウェアハウスの変更に関する情報を入手することもできます。 「アラートを作成する」を参照してください。
次のサンプルクエリーを使用して、ウェアハウスの行動に関する理解を深めてください。
- どのウェアハウスが現在実行中で、どのくらいの長さ実行されていますか?
 - 予想よりも長くアップスケールされているウェアハウスを特定する
 - 初めて起動するウェアハウス
 - 請求料金の調査
 - 過去30日間に使用されていないウェアハウスはどれですか?
 - 月間稼働率が最も長いウェアハウス
 - 1ヶ月にアップスケールに最も時間を費やしたウェアハウス
 
どのウェアハウスがどのくらいの期間、アクティブに稼働していますか?
このクエリーは、現在アクティブなウェアハウスとその稼働時間 (時間単位) を識別します。
USE CATALOG `system`;
SELECT
  we.warehouse_id,
  we.event_time,
  TIMESTAMPDIFF(MINUTE, we.event_time, NOW()) / 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
アラートの機会 : 未使用のリソースに関するアラートを受け取ると、組織がコストを最適化するのに役立つ可能性があります。 たとえば、クエリで未使用のウェアハウスが検出されたときにトリガーされるアラートを設定できます。
1か月で最も稼働時間の多いウェアハウス
このクエリーは、特定の月に最も使用されたウェアハウスを表示します。このクエリーは7月を例にしています。
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
アラートの機会 : 使用率の高いウェアハウスを追跡することができます。たとえば、ウェアハウスの稼働時間が特定のしきい値を超えたときにトリガーされるアラートを設定できます。
1か月の間にアップスケールに最も多くの時間を費やしたウェアハウス
このクエリーは、1ヶ月の間にアップスケール状態でかなりの時間を費やしたウェアハウスについてお知らせします。このクエリーは7月を例にしています。
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
アラートの機会 : 使用率の高いウェアハウスを追跡することができます。たとえば、ウェアハウスの稼働時間が特定のしきい値を超えたときにトリガーされるアラートを設定できます。