2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Glueジョブごとの使用リソース量や料金を調査するためにDPU Hoursを取得する

Last updated at Posted at 2023-03-14

はじめに

Glueジョブの料金が増加してしまったため、GlueジョブごとのDPU Hoursを調査したところ、APIで取得できるパターンとできないパターンががあることがわかりました。
APIから取得できる場合は特別苦労はないですが、今回は取得できないパターンにぶち当たってしまったため、その時の対応方法を記します。

APIでDPU Hoursを取得できるパターン

GlueジョブのAutoScalingの設定が有効になっている場合、GetJobRun API を利用して「DPUSeconds」からDPU Hoursの取得が可能です。

$ aws glue get-job-run --job-name your-job-name --run-id jr_xx --endpoint https://glue.us-east-1.amazonaws.com --region us-east-1
{
    "JobRun": {
        ...
        "GlueVersion": "3.0",
        "DPUSeconds": 386.0 ← DPU Hours
    }
}

APIでDPU Hoursを取得できないパターン

GlueジョブのAutoScalingの設定が有効でない場合、GetJobRun APIから取得できないです。
そのため、ExecutionTime x MaxCapacity の値が DPUSeconds になるため、3600で除算することでDPU Hoursを取得する方法で、算出しました。

取得できない場合の対応方法

Glueジョブごとの実行値を取得して、csvファイルを作成する

aws glue list-jobs --query 'JobNames[*]' --max-results ${任意の数字} | jq -r '.[]' \
| while read glue_job; do \
aws glue get-job-runs --job-name $glue_job \
  --query 'JobRuns[?StartedOn>=`${期間指定}`] | [?StartedOn<`${期間指定}`].[Id,JobName,ExecutionTime,MaxCapacity]' --output text | tr -s '\t' ','; \
done >> glue_job.csv

取得したcsvファイルをS3へ格納してGlueクローラーを実行することでテーブル化する。
その後Athenaからクエリを実行する際に、「ExecutionTime * MaxCapacity / 3600 as DPU_Hours」より、DPU Hoursの算出を行う

SELECT 
 Id, -- GlueジョブID
 JobName, -- Glueジョブ名
 ExecutionTime, -- 処理時間
 MaxCapacity, -- DPUの設定値
 ExecutionTime * MaxCapacity / 3600 as DPU_Hours -- DPU Hoursの算出
FROM "test_database"."glue_job"

Glueジョブの実行IDごとのDPU Hoursを取得したときの画像
スクリーンショット 2023-03-14 22.26.53.png

さいごに

GlueジョブのDPU Hoursは、モニタリングをせずに放置しておくと、思わぬ料金の増加につながります。
日頃からDPU Hoursを確認する癖を作っておくことで、高品質なデータ分析基盤になっていきます!

2
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?