
Amazon Quickの新しいトピックを分析シートで使って、複数データセットのビジュアルを作ってみた
こんにちは、こーへいです。
Amazon Quickの新しいトピックを分析シートのデータモデルとして使うと、複数のデータセットのフィールドを1つのビジュアルにまとめられるようになりました。
複数のデータをあらかじめ1つに結合したデータセットを作っておかなくても、トピックに関係を定義しておけば、各データセットは元のままでQuick Sightが実行時に結合してくれます(Quick Sight 分析でのトピックの使用)。実際にやってみます。
先に結論をまとめると、こんな感じです。
- トピックを分析シートのデータモデルにすると、複数データセットのフィールドを1つのビジュアルに置ける
- あらかじめ1つに結合したデータセットは不要。各データセットは元のまま、定義した関係にもとづいて実行時に結合される
- 準備として、データセット間の関係の定義が必要。関係が無いとビジュアルは描画できない
使うデータ
架空の店舗売上をテーマに、日付でつながる3つのデータセットを用意しました。サンプルなので中身は単純にしています。
| データセット | 主な列 |
|---|---|
| sales(売上) | 日付 / 売上金額 / 客数 |
| weather(天気) | 日付 / 天気 / 最高気温 |
| campaign(キャンペーン) | 日付 / キャンペーン / 割引率 |
売上を中心に、天気とキャンペーンを日付でつなぐ構成です。中身はそれぞれこんなデータにしています。
sales(売上)
| 日付 | 売上金額 | 客数 |
|---|---|---|
| 2026-08-01 | 120000 | 300 |
| 2026-08-02 | 150000 | 360 |
| 2026-08-03 | 90000 | 220 |
| 2026-08-04 | 200000 | 480 |
weather(天気)
| 日付 | 天気 | 最高気温 |
|---|---|---|
| 2026-08-01 | 晴れ | 33 |
| 2026-08-02 | 晴れ | 34 |
| 2026-08-03 | 雨 | 27 |
| 2026-08-04 | 晴れ | 35 |
campaign(キャンペーン)
| 日付 | キャンペーン | 割引率 |
|---|---|---|
| 2026-08-01 | なし | 0 |
| 2026-08-02 | 週末セール | 10 |
| 2026-08-03 | なし | 0 |
| 2026-08-04 | 夏の大感謝祭 | 20 |
いずれも2026-08-01からの数日分で、3つとも同じ日付を持っています。この日付が結合キーになります。
トピックを作る
データ画面のトピックタブから、Create topicを選びます。今回は新しいトピックを使うので、Create legacy topicではなくCreate topicです。

トピック名と説明を入れて、追加するデータセットを選びます。今回は「店舗売上分析」という名前にして、sales・weather・campaignの3つを選びました。選んだらCreateします。

トピックに関係を定義する
作成した直後はまだ関係が定義されていないので、Relationshipsタブは「There are no relationships」の状態です。Editから編集します。

関係は、データセット同士をどの列でつなぐかを指定するものです。結合列を手で選ぶほか、JSONやYAMLでまとめてアップロードすることもできます(トピック内のデータセット間の関係の定義)。
今回はsalesを中心に、weatherとcampaignをそれぞれ日付でつなぎました。右側のペインで「日付 = 日付」のペアが2つできています。定義できたらSaveします。

関係を組むには、両側のデータセットに結合できる共通の列が必要です。今回はどのデータセットも日付を持っているので、日付でつなげます。JSONで書くと次のようになります。
{
"datasetPairs": [
{
"datasetLeft": { "datasetName": "sales-csv", "joinColumnNames": ["日付"] },
"datasetRight": { "datasetName": "weather-csv", "joinColumnNames": ["日付"] }
},
{
"datasetLeft": { "datasetName": "sales-csv", "joinColumnNames": ["日付"] },
"datasetRight": { "datasetName": "campaign-csv", "joinColumnNames": ["日付"] }
}
]
}
関係を保存できたら、Publishでトピックを公開します。

分析シートで複数データセットのビジュアルを作る
トピックができたら、分析を作成します。分析の作成ダイアログでトピックタブを開き、「店舗売上分析」を選びます。

分析シートでは、トピック内のどのデータセットからでもフィールドを選べます。複数データセットのフィールドを1つのビジュアルに置くと、定義した関係にもとづいてQuick Sightが実行時に結合します(Quick Sight 分析でのトピックの使用)。
今回は積み上げ棒コンボグラフで、X軸に日付(campaign)、棒に売上金額(sales)、折れ線に最高気温(weather)を置きました。別々のデータセットのフィールドが1つのビジュアルにまとまって描画されます。

あらかじめ3つを1つに結合したデータセットを用意していないのに、トピックに定義した関係だけで、売上と気温という別データセットの値を1枚のグラフで並べられました。
関係がないと描画できない
比較のため、関係を定義していない状態も見てみます。トピックから関係を消すと、Relationshipsタブは「There are no relationships」に戻ります。

この状態で分析シートに複数データセットのフィールドを一緒に置くと、「これらのフィールド間の有効な関係はありません。同じデータセットからフィールドを選択するか、データセット間のリレーションシップを作成してそれらを一緒に使用してください。」というメッセージになって描画できませんでした。

まとめ
新しいトピックを分析シートのデータモデルにすると、複数データセットのフィールドを1つのビジュアルにまとめられて、あらかじめ1つに結合したデータセットを作らなくてよくなりました。
とはいえ触ってみると、トピックの作成自体が実質的な事前準備だとも感じました。データを1つに結合しておく作業が、トピックで関係を定義する作業に置き換わった、という見方もできます。
それでも私がメリットに感じたのは、つなぎ方を使い分けられる点です。カスタム指示で自然言語でデータの関連性を補足するパターンと、Relationshipsで結合キーをきっちり決めるパターンの2つがあり用途に応じて選べます。
あわせて、意味づけはデータセット側、複数データセットのつなぎはトピック側、というように役割を綺麗に分けられるのも扱いやすいところです。
複数データにまたがるビジュアルを、元のデータセットを作り直さずに用意したい場面で便利だと思います。それでは。







