メインコンテンツまでスキップ

ウェアハウス events システムテーブル リファレンス

備考

プレビュー

このシステムテーブルは パブリック プレビュー段階です。 テーブルにアクセスするには、 system カタログでスキーマを有効にする必要があります。 詳細については、「 システムテーブル スキーマを有効にする」を参照してください

この記事では、ウェアハウス イベント システム テーブルを使用して、ワークスペース内のSQLウェアハウスを監視および管理する方法について説明します。このテーブルには、ウェアハウスが開始、停止、実行、スケールアップ、スケールダウンするたびに行が記録されます。この記事のサンプルクエリーをアラートと一緒に使用することで、ウェアハウスの変更を常に通知することができます。

テーブルパス :このシステムテーブルは system.compute.warehouse_eventsにあります。

ログに記録されたウェアハウス・イベント・タイプ

このシステム テーブルには、以下のタイプのイベントが記録されます。

  • SCALED_UP: 新規クラスターがウェアハウスに追加されました。
  • SCALED_DOWN: 新規クラスターがウェアハウスから削除されました。
  • STOPPING: ウェアハウスが停止中です。
  • RUNNING: ウェアハウスが実行中です。
  • STARTING: ウェアハウスが起動中です。
  • STOPPED: ウェアハウスが完全に停止しました。

ウェアハウス・イベント・スキーマ

このwarehouse_eventsシステム テーブルは次のスキーマを使用しています。

列名

データ型

説明

account_id

string

DatabricksアカウントのID。

7af234db-66d7-4db3-bbf0-956098224879

workspace_id

string

倉庫が配置されているワークスペースのID。

123456789012345

warehouse_id

string

イベントが関連するSQLウェアハウスのID。

123456789012345

event_type

string

ウェアハウス イベントのタイプ。指定できる値は、SCALED_UPSCALED_DOWNSTOPPINGRUNNINGSTARTING、およびSTOPPEDです。

SCALED_UP

cluster_count

整数タイプ

アクティブに実行されているクラスターの数。

2

event_time

タイムスタンプ

イベントが発生した日時のタイムスタンプ (UTC)。

2023-07-20T19:13:09.504Z

サンプル クエリ

次のサンプル クエリはテンプレートです。 あなたの組織にとって意味のある価値を何でも差し込んでください。 また、これらのクエリにアラートを追加して、ウェアハウスの変更に関する情報を入手することもできます。 「アラートを作成する」を参照してください

次のサンプルクエリーを使用して、ウェアハウスの行動に関する理解を深めてください。

どのウェアハウスがどのくらいの期間、アクティブに稼働していますか?

このクエリーは、現在アクティブなウェアハウスとその稼働時間 (時間単位) を識別します。

SQL
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
)

アラートの機会 :ワークスペースの管理者として、ウェアハウスの作業時間が予想より長くなった場合にアラートを出したい場合があります。例えば、クエリーの結果を使用して、稼働時間が特定のしきい値を超えた場合に発動するアラート条件を設定することができます。

予想よりも長くアップスケールされているウェアハウスを特定する

このクエリーは、現在アクティブなウェアハウスとその稼働時間 (時間単位) を識別します。

SQL
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
)

アラートの機会 :この状態に関するアラートは、リソースとコストの監視に役立ちます。アップスケールされた時間が一定の上限を超えた場合にアラートを設定することができます。

初めてスタートするウェアハウス

このクエリーは、初めて開始される新規ウェアハウスについてお知らせします。

SQL
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
)

アラートの機会 :新規ウェアハウスに関するアラートは、リソースの割り当てを追跡するのに役立ちます。たとえば、新規ウェアハウスが稼働するたびにトリガーされるアラートを設定できます。

請求料金を調査する

倉庫が課金請求のために何を行っていたかを具体的に理解したい場合、このクエリで、倉庫のスケールアップまたはスケールダウン、あるいは開始と停止の正確な日時を知ることができます。

SQL
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日間に使用されていないウェアハウスはどれですか?

このクエリーは、未使用のリソースを特定し、コストを最適化する機会を提供するのに役立ちます。

SQL
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月を例にしています。

SQL
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月を例にしています。

SQL
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

アラートの機会 :利用率の高いウェアハウスを追跡したいと思うかもしれません。例えば、ウェアハウスの稼働時間が特定のしきい値を超えたときに発動されるアラートを設定することができます。