Quicksightのデータソースにフィールドを追加してデータセットを更新した時の挙動を確認してみた
はじめに
QuickSightのデータソースにS3を選択することはよくあると思います。
S3内のデータにフィールドを追加してQuickSightのSPICEデータを更新した際、当然分析のフィールドにも反映されると思っていましたが、想定していた動きと違っていたので調査してみました。
いきなりまとめ
私が検証した限りでは、フィールドを追加した後にデータセットを更新しても、分析には反映されず少し操作が必要でした。
次のフローで更新内容を分析に反映させることができました。
- フィールドを追加
- データセット更新
- データセットを編集
- 保存して視覚化
- 再度、分析の画面へ戻る ←更新されている
フィールドを追加する
事前準備
まずはサンプルデータを用意してS3に置きます。
id,name,age,city
1,Alice,25,Tokyo
2,Bob,30,Osaka
3,Charlie,35,Nagoya
4,David,40,Sapporo
5,Eva,45,Fukuoka
これをS3に置きます。
aws s3 cp sample.csv s3://demo-quicksight-soruce-bucket/data/
S3のファイル構造はこのようになっています。
s3://demo-quicksight-soruce-bucket/
└── data/
└── sample.csv
では、このデータをQuickSightを使って可視化してみます。
まずはデータソースを作成します。
適当に都市ごとの平均年齢のグラフを作成します。
ここまでは事前準備です。
ではこのデータに対してフィールド(列)を追加した後、データセットを更新します。
フィールド追加
gender
フィールドを追加してS3にファイルをアップロードします。
id,name,age,city,gender
1,Alice,25,Tokyo,female
2,Bob,30,Osaka,male
3,Charlie,35,Nagoya,male
4,David,40,Sapporo,male
5,Eva,45,Fukuoka,female
aws s3 cp sample.csv s3://demo-quicksight-soruce-bucket/data/
S3のデータが上書きされたので、
データセット > 更新 > 今すぐ更新 の順に進み、データセットを更新します。
更新ができたので分析に戻ります。
SPICEへのインポートは成功しているようですがgender
フィールドは追加されていないですね。
色々調べてみると既知の事象のようで、データセットを更新してもSPICEにはデータが取り込まれても分析にはフィールドの更新は反映されないようです。
データセットの編集からSPICEにはデータが取り込まれていることを確認します。
データセット > 概要 > データセットの編集 の順に進みます。
データが取り込まれてフィールドが追加されていることが確認できます。
これでデータはSPICEへ取り込まれているけど、分析の画面へ反映されていないことが分かりました。
更新したフィールドを分析へ反映させる
分析への反映方法として先ほどのQ&Aを確認すると次の方法で解決できるようでした。
- 対象データセットを一旦Direct queryモードに変更し、保存して更新する
- 再度SPICEモードに変更し、保存して更新する
しかし、上記の方法はRDSなどダイレクトクエリモードへの切り替えをサポートしているデータソースの場合の解決方法のようです。
データソースにS3を指定している場合、SPICEモードからクエリモードへの切り替えはできないため、上記の方法は使えません。
S3をデータソースとする場合の解決方法が見つからなかったので色々やってみた結果、分析へ反映する方法がありました。
データセットの編集画面を開き、右上の保存して視覚化をクリックします
新規シートが作成されますが、こちらは何も修正せず閉じます。(不要なので削除しました)
その後、再度分析を開いてみると...
おっ、フィールドが追加されてるじゃないか!
色々試した結果、データセットを更新した後に新しい分析を作成すると、既存の分析にもフィールドが追加される動きでした。
データセットの編集画面でクエリモードを今すぐ更新するというボタンがありましたが、それでは分析へは反映されませんでした。
フィールドの削除
既存のフィールドを削除するパターンについても、同様の操作で分析へ反映させることができました。
さいごに
今回はQuickSightのデータソースにフィールドを追加した際の挙動を確認してみました。
期待した動きとは少し違いましたが、無事にフィールドの追加ができました。
データソースにフィールドを追加する機会はそんなに多くはないかもしれませんが、ダッシュボード設計の初期段階ではフィールドが追加、削除することもあるかと思います。
データソースがクエリモードの変更に対応しているかどうかでも手順が変わりそうなので、モードの変更ができないデータソースを利用している場合は、今回の記事を参考にしていただければと思います。