ウェアハウス events システムテーブル リファレンス
プレビュー
このシステムテーブルは パブリック プレビュー段階です。 テーブルにアクセスするには、 system
カタログでスキーマを有効にする必要があります。 詳細については、「 システムテーブル スキーマを有効にする」を参照してください。
この記事では、ウェアハウス イベント システム テーブルを使用して、ワークスペース内の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, 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
アラートの機会 :利用率の高いウェアハウスを追跡したいと思うかもしれません。例えば、ウェアハウスの稼働時間が特定のしきい値を超えたときに発動されるアラートを設定することができます。