背景
- SPICEの容量を食いつぶしているデータセットを特定したい!!
- QuickSightのUIでは各データセットのSPICE利用容量を把握するのが困難!!
対応
- aws cliをつかってデータを取得しました
- aws account idを書き換えてください
- jsonを扱うためjqコマンドが必要です
quick_sight_dataset_list.sh
#!/bin/bash
# QuickSightでSPICEを利用しているデータセットを一覧化します
# Id, 名称, 容量, 作成日, 更新日の情報を出力します
# QuickSightでSPICEを利用するデータセット一覧を取得
function get_quicksight_datasets() {
aws quicksight list-data-sets --aws-account-id 0123456789 \
--query 'DataSetSummaries[?ImportMode==`SPICE`].DataSetId'
}
# メインの処理
function main() {
# QuickSightのデータセット一覧を取得
datasets=$(get_quicksight_datasets)
# 文字列を配列に変換
IFS=$'\n' read -d '' -r -a array <<< "$datasets"
for item in "${array[@]}"; do
# データセットidを抽出
result="${item//\"/}"
result="${result// /}"
result="${result//,/}"
# データセット情報を取得
dataset=$(aws quicksight describe-data-set --aws-account-id 0123456789 \
--data-set-id "$result")
dataset_name=$(echo "$dataset" | jq -r .DataSet.Name)
dataset_size=$(echo "$dataset" | jq -r .DataSet.ConsumedSpiceCapacityInBytes)
dataset_id=$(echo "$dataset" | jq -r .DataSet.DataSetId)
dataset_created=$(echo "$dataset" | jq .DataSet.CreatedTime)
dataset_updated=$(echo "$dataset" | jq .DataSet.LastUpdatedTime)
# CSV形式で出力
echo "$dataset_id,$dataset_name,$dataset_size,$dataset_created,$dataset_updated"
done
}
# メイン関数の呼び出し
main
実行
$ bash quick_sight_dataset_list.sh
こーんな感じの一覧がでてくれば成功です
00000000-1111-2222-3333-444444444444,データセット名1,120000,"2022-12-05T14:39:59.943000+09:00","2022-12-05T14:40:15.929000+09:00"
00000000-1111-2222-3333-555555555555,データセット名3,508000,"2023-07-05T14:39:59.943000+09:00","2023-07-05T14:40:15.929000+09:00"
まとめ
- 結果をスプレッドシートに貼って容量で降順ソートしたら、容量を食いつぶしているデータセットを無事に発見することができました
- bashスクリプトビギナーなんです...変なところあったらすみません
文献
大変助かりました。ありがとうございます!!