ウェアハウス イベント システム テーブル リファレンス
重要
この機能はパブリック プレビュー段階にあります。
この記事では、ウェアハウス イベント システム テーブルを使って、ワークスペース内の SQL ウェアハウスを監視および管理する方法について説明します。 このテーブルには、ウェアハウスの開始、停止、実行、スケールアップとスケールダウンのたびに行が記録されます。 この記事のサンプル クエリをアラートと共に使うと、ウェアハウスへの変更を常に通知できます。
ウェアハウス イベント システム テーブルは system.compute.warehouse_events
にあります。
ログされたウェアハウスのイベントの種類
このシステム テーブルには、次の種類のイベントがログされます。
SCALED_UP
: 新しいクラスターがウェアハウスに追加されました。SCALED_DOWN
: クラスターがウェアハウスから削除されました。STOPPING
: ウェアハウスは停止中です。RUNNING
: ウェアハウスはアクティブに実行しています。STARTING
: ウェアハウスは起動中です。STOPPED
: ウェアハウスは完全に実行を停止しました。
ウェアハウス イベントのスキーマ
warehouse_events
システム テーブルでは次のスキーマを使います。
列名 | データ型 | 説明 | 例 |
---|---|---|---|
account_id |
string | Azure Databricks アカウントの ID。 | 7af234db-66d7-4db3-bbf0-956098224879 |
workspace_id |
string | ウェアハウスがデプロイされているワークスペースの ID。 | 123456789012345 |
warehouse_id |
string | イベントが関連する SQL ウェアハウスの ID。 | 123456789012345 |
event_type |
string | ウェアハウス イベントの種類。 指定できる値は、SCALED_UP 、SCALED_DOWN 、STOPPING 、RUNNING 、STARTING 、および STOPPED です。 |
SCALED_UP |
cluster_count |
integer | アクティブに実行しているクラスターの数。 | 2 |
event_time |
timestamp | イベントが発生したときのタイムスタンプ (UTC)。 | 2023-07-20T19:13:09.504Z |
サンプル クエリ
次のサンプル クエリはテンプレートです。 組織にとって意味のある値をすべて代入します。 これらのクエリにアラートを追加して、ウェアハウスへの変更に関する情報を常に把握することもできます。 「アラートの作成」を参照してください。
ウェアハウスの動作についての分析情報を得るには、次のサンプル クエリを使います。
- アクティブに実行しているウェアハウスと、その実行期間
- 予想よりも長くアップスケールされているウェアハウスの特定
- 初めて起動するウェアハウス
- 課金料金の調査
- 過去 30 日間使われていないウェアハウス
- 1 か月のアップタイムが最も大きいウェアハウス
- 1 か月のアップスケールに最も多くの時間を費やしたウェアハウス
アクティブに実行しているウェアハウスと、その実行期間
このクエリは、現在アクティブなウェアハウスとその実行期間を時間単位で特定します。
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
アラートの機会: 使われていないリソースに関するアラートを受信すると、組織のコストの最適化に役立ちます。 たとえば、クエリによって使われていないウェアハウスを検出したときにトリガーされるアラートを設定できます。
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 limit 0;
アラートの機会: 使用率の高いウェアハウスを追跡することが必要な場合があります。 たとえば、ウェアハウスのアップタイムが特定のしきい値を超えたときにトリガーされるアラートを設定できます。