0
0

More than 1 year has passed since last update.

QuickSight のデータセットに紐づく Athena のテーブルを再作成したらどうなるのか検証してみた

Posted at

はじめに

QuickSight と Athena を連携しているときに、Athena 側のテーブルを再作成したいときがあります。例えば、Athena で CTAS (CREATE TABLE AS SELECT) でデータ加工を行うとき、テーブルを DROP TABLE した後に、再度全体のデータを使って CREATE TABLE したいタイミングがあります。

QuickSight と Athena が連携しているときに、DROP TABLE, CREATE TABLE をしても問題ないのか気になったので検証してみました。QuickSight のデータ定義からやり直しになるのは大変そうなので、設定上にどのような影響があるのか調べてみます。

結論

同じテーブル名で再作成すると、QuickSight 側は何も設定変更せずとも、そのまま利用できる。

データ可視化の観点では、DROP TABLE と CREATE TABLE の間はデータが無いので、エラーになる。

新しいテーブルを作成

Athena で適当に新しいテーブルを作ります。テーブルを再作成したときにわかりやすくするため、WHERE で「東京支店」のみのデータに限定してみます。再作成するときには、この WHERE 句を外します。

CREATE TABLE recreate_table AS 
SELECT * 
FROM outputs
WHERE name = '東京支店';

image-20220723182624516.png

QuickSight のデータセット作成

Athena で作成したテーブルを使って、新しいデータセットを作成していきます。

image-20220723181006516.png

Athena

image-20220723181543930.png

Create

athena-recreate-test

image-20220723181626775.png

Edit

image-20220723182716319.png

Save

image-20220723182735937.png

こんな感じでデータの可視化ができました

image-20220723183024857.png

ダッシュボード化

image-20220723183138532.png

ダッシュボードが作られました

image-20220723183146678.png

テーブル削除

次に、QuickSight が参照しているテーブルを削除します。

DROP TABLE recreate_table;

image-20220723183313610.png

すると、QuickSight 上でDashboard が見えなくなりました。エラーメッセージが表示されます。

image-20220723183338521.png

Analysis も同様のエラーが出ています。

image-20220723183354007.png

再作成

では、同じ名前でテーブルを再作成してみましょう。今度はWHERE 句を付けていないので、「東京支店」以外のデータも見えるはずです。

CREATE TABLE recreate_table AS 
SELECT * 
FROM outputs;

image-20220723183418186.png

Create Table した直後に、Analysis が普通に反映されました。QuickSight 側は何も設定変更していません。

image-20220723183448288.png

Dashboard ももちろん反映されています。

image-20220723183503270.png

検証を通じてわかったこと

  • QuickSight で Athena を使って Dashboard や Analysis を作ったあとに、Table を同じ名前で再作成したら、QuickSight 側は何も気にせずそのまま利用可能
    • Direct Query の場合は何もきにしないでOK
    • SPICE の場合は、データのリフレッシュはもちろん必要
  • DROP TABLE と CREATE TABLE の間は、ダッシュボードが表示されなくなる。エラーメッセージが表示される。
0
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
0
0