Amazon QuickSightで既存データセットから新しいデータセットを作成出来るようになりました

2021.09.20

いわさです。

先日のAmazon QuickSightアップデートで、既存データセットを使って新しいデータセットを作成することが出来るようになったようです。
継承したデータセットでは、既存データセットにフィールドを追加したりデータセット同士の結合を行うことも出来ます。

これは、QuickSightの設計が今後大きく変わりそうなアップデートですね。

Amazon QuickSight launches Dataset-as-a-Source

本日は早速試してみました。

親となるデータセットの選択画面で、「新しいデータセットでの使用」を選択するだけ

簡単なデータソースとしてS3へCSVファイルをアップロードしてデータセットを作成しSPICEへロードさせておきます。

uriage.csv

date,item,count
2021/9/19,1,4
2021/9/20,2,5
2021/9/21,3,6

uriage-manifest.json

{
    "fileLocations": [
        {
            "URIs": [
                "s3://iwasa-20210919-hogedata/uriage.csv"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV",
        "delimiter": ",",
        "textqualifier": "'",
        "containsHeader": "true"
    }
}

適当に分析へ表示しておきます。

では、このデータセットをもとに子となるデータセットを作成してみましょう。
まず、データセット画面の左上から「データセット」を押して、親データセットを選択出来る状態にします。

選択データセットの設定メニューが表示されるので、「新しいデータセットでの使用」を選択します。

そうすると、子データセットの編集画面が表示されます。

上記例は、売上数が4件以下の場合はカウント対象としない、ようなフィールドを追加しています。
これらの変更は既存データセットや分析には影響しません。
継承された子データセットで利用可能なフィールドです。

クエリモードはSPICEと直接クエリの2種類。設定にはいくつか条件が。

子データセット編集時にクエリモードを選択します。

それぞれの挙動を確認してみました。
また、特定の条件時にはクエリモードの選択に制限が生じます。

直接クエリ

デフォルトの挙動です。
直接クエリは今までのデータセットと同じ考え方で、ダッシュボードや分析を表示したタイミングでデータソースへのクエリが都度発生します。
ここでいうデータソースは既存データセットになります。

先程のuriage.csvへレコードを追加し、既存データセットを更新してみましょう。

そして、子データセットで作成した分析を表示してみます。

追加したレコードが表示されましたね。

SPICE

こちらは指示したタイミングでSPICEへデータソースからのクエリ結果を格納します。
既存のSPICEと同じ動きです。

以下のようなCSVファイルをS3へアップロードし、親データセットを1つ作成しておきます。
最新の在庫数を管理するテーブルをイメージしています。

item,zaiko
1,60
2,70
3,80

こちらから作成した親データセットをデータソースとして、子データセットを作成します。
そしてクエリモードはSPICEを選択します。
在庫件数が100個未満の場合はsukunaiというキーワードを表示するようにしました。

在庫情報を更新したCSVをアップロードし、親データセットを更新しましょう。

親データセットを使用した分析は更新されていますね。

しかし、子データセットでは情報が更新されていません。
子データセットがSPICEへロードした情報が使われているからですね。

更新する場合は、子データセットにて更新操作を行いましょう。

更新されました。
このように、親データから同期的に分析やダッシュボードを更新する必要がない場合はSPICEモードを使うことが可能です。

また、複数のデータセットをデータソースとして選択し、結合することも可能です。
この場合、クエリモードはSPICEのみしか選択できないようです。

継承は3世代まで

このデータセットの親子関係は3世代まで設定が可能です。
S3を元のデータソースとした場合、S3 -> 親データセット -> 子データセット -> 孫データセット までです。

それ以上の継承関係をもったデータセットは作成出来ません。
作成しようとしても以下のように制御されています。

まとめ

データセットに親子関係をもたせることが出来るようになりました。
従来までは元データ(S3など)へ各メンバーや複数の個別データセットがアクセスし個別に更新に追従する必要がありましたが、共通のデータを一元管理するだけで重複管理しなくても済むようになります。
また、データセットへの情報や加工処理の追加、データセット同士の結合を行うことによって、BI用の加工をQuickSightにより寄せることが出来るようになったのではないでしょうか。

本来こういった直感的な使い方をされたかった方個人的にとても多い気がしています。是非試してみてください。