LoginSignup
2
0

[QuickSight] SPICE容量を食いつぶしているデータセットを探す

Posted at

背景

  • 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スクリプトビギナーなんです...変なところあったらすみません

文献

大変助かりました。ありがとうございます!!

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