QuickSightのデータセットバージョニング機能をつかってみた

2022.01.07

いわさです。

QuickSightでは昨年11月末ごろにデータセットのバージョニング機能が実装されました。

当時「SPICEのバージョン管理できるのか。イイネ。」くらいに思ってたのですが、使ってみたら思ってたのと違ったので注意点など含めて紹介したいと思います。
ちなみに、思ってたのと違ったというのはアップデート内容がわかりにくいとかではなくて、ただ私が勘違いしていただけです。

この記事では以下のCSVファイルをS3バケットからSPICEへロードするデータセットを用意し、それをバージョンアップしていきます。

hoge1,hoge2,hoge3
111,aaa,AAA
222,bbb,BBB
333,ccc,CCC

dataset-manifest.json

{
    "fileLocations": [
        {
            "URIs": [
                "s3://20220104dataset/data.csv"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV",
        "delimiter": ",",
        "textqualifier": "'",
        "containsHeader": "true"
    }
}

SPICEデータのバージョン管理ではない

まず最初に紹介しておきたいのが、この機能はデータのバージョニング機能ではなくて、データセットのバージョニング機能という点です。

SPICEデータのバージョン管理をしてくれると思ったのですが、そうではなくてデータセットでは複数のデータソースを結合したり、あるいは計算フィールドを追加したりと様々な定義をおこなうことが出来ますが、データセットバージョニングはその定義をバージョン管理してくれる機能となります。

試しに、データソース(ここではS3バケットのCSVファイル)を更新してSPICEをロードしてみましょう。

hoge1,hoge2,hoge3
111,aaa,AAA
222,bbb,BBB
333,ccc,CCC
444,ddd,DDD

期待どおり最新データで分析が更新されました。

バージョニングはデータセットの編集画面から確認を行うことが可能です。

下記ではまだ新しいバージョンが登場していません。
データソースの更新とデータセットのバージョンは無関係であることを確認することが出来ました。

データセット定義をバージョン管理し、過去のバージョンからの復元やプレビューが出来る

データセットの定義をバージョン管理してくれるようなので、データセット編集画面で計算フィールドを追加することでバージョンアップされるか確認してみましょう。

フィールド1とフィールド2を文字列結合する計算フィールド4を追加しました。
バージョン更新するためには、保存が必要です。

分析側のテーブルでもフィールド4を参照するように変更します。

さて、バージョニング機能を試してみるため、追加で計算フィールドを修正してみます。
フィールド3も文字列結合に含めてみましょう。

バージョニング画面を確認してみると、新たなバージョンが追加されていますね。
ここから復元やプレビューなどの個別の機能を確認してみましょう。

プレビュー

プレビューはデータセット編集画面上で、過去バージョンのデータセット定義におけるデータのプレビュー表示を行うことが出来ます。
分析やダッシュボードではなくてデータセット編集画面でのプレビュー確認ですね。

以下ではバージョン2の状態をプレビューしています。

分析やダッシュボードに影響が出ていないことが確認出来ました。

復元

一方、復元を行うと分析やダッシュボードも更新されます。

バージョン2の状態で分析が表示されました。

また、ここでの復元はバージョン3を削除するわけではなく、バージョン2の状態で新たなバージョンを作成するようなイメージになります。
以下では、バージョン番号は2ですが新たな公開日の4つめのバージョンが表示されていますね。

SPICEの再ロード

どうやら復元時にはSPICEが強制的に更新されるみたいです。
復元操作には少し時間が必要で、その間にデータソースから最新データを取得していました。

ためしにデータソースだけ更新した状態で復元操作をしてみましょう。

hoge1,hoge2,hoge3
111,aaa,AAA
222,bbb,BBB
333,ccc,CCC
444,ddd,DDD
555,eee,EEE

5行インポートされています。

データセット定義はバージョン2から3に戻りましたが、データについてはS3の最新のデータソースの状態で更新されました。
データソースからのアップデートタイミングをコントロールしている環境ではこの挙動は注意したほうが良さそうですね。

まとめ

本日はQuickSight データセットのバージョン管理機能を確認してみました。

基本的なところとしてまず、SPICEつまりデータのバージョン管理ではないことを覚えておきましょう。
その上でデータセット定義をバージョン管理出来ますが、復元時にはSPICEの再ロードが発生します。意図しない更新による分析やダッシュボードの変更が起きる可能性を考慮しておきましょう。