DatabricksのDelta Live Tables(DLT)を用いることで、高信頼・高性能のデータパイプラインを容易に構築、管理できるようになります。
このDLTでは、宣言型でETLパイプラインを構築することで複雑なデータパイプラインを容易に構築でき、以下のようにパイプラインの可視性を高めることができます。
そして、DLTでパイプラインを作成すると、パイプラインに含まれるDeltaテーブルをメンテナンスするメンテナンスタスクがデイリーで実行されるようになります。このタスクのコストを追跡したい際にどうするのかというのがタイトルの話という訳です。
Databricksのコストはアカウントコンソールの使用量で確認することができます。ただ、ここから上記のメンテナンスタスクのコストを切り出すには、事前の準備が必要になります。当該メンテナンスタスクを実行するクラスターにタグを追加することで、そのタグが紐付けられているタスクを切り出します。
-
clusters
に以下のブロックを追加します。"label": "maintenance"
でメンテナンスタスク用のクラスターを参照し、その配下に"custom_tags"
で任意のタグを追加しています。以下の例では"Resource"
が"DLT_Maintenance"
というタグを追加していますが、任意のタグを追加することができます。JSON{ "label": "maintenance", "custom_tags": { "Resource": "DLT_Maintenance" } }
-
clusters
は以下のようになります。これで、メンテナンスタスクのクラスターを"Resource"
が"DLT_Maintenance"
というタグで特定できるようになります。JSON"clusters": [ { "label": "default", "autoscale": { "min_workers": 1, "max_workers": 1, "mode": "LEGACY" } }, { "label": "maintenance", "custom_tags": { "Resource": "DLT_Maintenance" } } ]
-
DLTパイプラインを実行します。これで上記設定が反映されたメンテナンスタスクが実行されるようになります。
-
メンテナンスタスクが実行されるように、24時間待ちます。
-
アカウントコンソールの使用量にアクセスし、タグ別を開くと、上で設定したタグ
Resource
が表示されるはずです。これを選択するとタグResource
ごとに集計された使用量が表示されます。