0
0

Databricksのコンピュートシステムテーブル

Posted at

SQウェアハウスだけでなく、クラスターに関するシステムテーブルも利用できるようになっています。

クラスター テーブルは、汎用クラスターとジョブ クラスターの時間の経過に伴うクラスター構成の完全な履歴を含む、変化の遅いディメンション テーブルです。
クラスター システム テーブルは system.compute.clusters にあり、次のスキーマを持ちます。

ノード タイプ テーブルは、現在使用可能なノード タイプとその基本的なハードウェア情報をキャプチャします。 ノード型システム テーブルは system.compute.node_types にあり、次のスキーマを持ちます。

クラスターレコードを最新の請求レコードと結合する

すでに利用量のテーブルがあるので結合すると、クラスターと利用量をマッピングできます。以下の例ではcurrent_user()を使って、自分自身が所有しているクラスターに限定しています。あと、クラスター名を返すように変更しています。

SELECT
  u.record_id,
  c.cluster_name,
  c.owned_by,
  c.change_time,
  u.usage_start_time,
  u.usage_quantity
FROM
  system.billing.usage u
  JOIN system.compute.clusters c
  JOIN (SELECT u.record_id, c.cluster_id, max(c.change_time) change_time
    FROM system.billing.usage u
    JOIN system.compute.clusters c
    WHERE
      u.usage_metadata.cluster_id is not null
      and u.usage_start_time >= '2023-01-01'
      and u.usage_metadata.cluster_id = c.cluster_id
      and date_trunc('HOUR', c.change_time) <= date_trunc('HOUR', u.usage_start_time)
    GROUP BY all) config
WHERE
  u.usage_metadata.cluster_id is not null
  and u.usage_start_time >= '2023-01-01'
  and u.usage_metadata.cluster_id = c.cluster_id
  and u.record_id = config.record_id
  and c.cluster_id = config.cluster_id
  and c.change_time = config.change_time
  and c.owned_by = current_user()
ORDER BY cluster_name, usage_start_time desc;

Screenshot 2024-01-28 at 8.05.04.png

グラフにもしてみます。
Screenshot 2024-01-28 at 8.09.08.png

クラスターのコストをクラスター所有者に帰属させる

SELECT
  u.record_id record_id,
  c.cluster_id cluster_id,
  max_by(c.owned_by, c.change_time) owned_by,
  max(c.change_time) change_time,
  any_value(u.usage_start_time) usage_start_time,
  any_value(u.usage_quantity) usage_quantity
FROM
  system.billing.usage u
  JOIN system.compute.clusters c
WHERE
  u.usage_metadata.cluster_id is not null
  and u.usage_start_time >= '2024-01-1'
  and u.usage_metadata.cluster_id = c.cluster_id
  and c.change_time <= u.usage_start_time
GROUP BY 1, 2
ORDER BY cluster_id, usage_start_time desc;

Screenshot 2024-01-28 at 8.11.49.png

ご活用ください!

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0