Amazon QuickSightでサンキー図を表示してみた

QuickSightがサンキー図(sanky diagram)に対応したので試してみました。
2021.05.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

データアナリティクス事業本部の藤川です。
Amazon QuickSightがサンキー図(sanky diagram)に対応したので試してみました。

概要

サンキー図を作成するために必要なデータについて

サンキー図を作成するために必要なデータはシンプルです。 例えば、次のようなデータがあれば、下図のようなサンキー図が描けます。

ソース(ディメンション) 宛先(ディメンション) 値(メジャー)
A W 500
A X 23
A Y 147

参考

進め方について

e-Stat(政府統計の総合窓口)からデータをダウンロードします。今回使用したデータは「住民基本台帳人口移動報告」の「年報(基本集計)」です。 東名阪各圏の人口の移動状況をQuickSightのサンキー図で可視化してみました。進め方は次の通りです。

  1. データを準備します。
  2. データセットを新規作成します。
  3. 分析を新規作成します。
  4. サンキー図を作成します。
  5. フィルターを設定します。

やってみる

データを準備

  1. 政府統計の総合窓口にアクセスします。
  2. 「分野」をクリックして開きます。
  3. 「人口・世帯」の「すべて見る」をクリックします。
  4. 一覧から「政府統計コード」が「00200523」の行をクリックします。
  5. 「ファイル」アイコンをクリックします。
  6. 「年報(基本集計)」にぶら下がっている「年次[xx件]」リンクをクリックします。
  7. 「2019年」(2021.5.10現在)リンクをクリックします。
  8. 「表番号」が「2」の行の「DB」ボタンをクリックします。
    項目
    政府統計名 住民基本台帳人口移動報告
    政府統計コード 00200523
    提供統計名 住民基本台帳人口移動報告
    提供分類1 年報(基本集計)
    表番号 2
    調査年月 2019年
  9. 「ダウンロード」ボタンをクリックします。

  10. CSVファイルは、クロス集計表形式ではなく、「列指向形式」でダウンロードしました。
  11. ヘッダーが必要ですので、「ヘッダの出力」は「出力する」を選んでください。
  12. value列の値が「"-"」である行は、QuickSightへインポートする際にエラーとなりますので、「"0"」に置換すると良いでしょう。「特殊文字の選択」で「0(数字のゼロ)に置き換える」を選択します。

    項目
    ダウンロード範囲 全データ
    ファイル形式 CSV形式(列指向形式)
    ヘッダの出力 出力する
    コードの出力 出力する
    特殊文字の選択 0(数字のゼロ)に置き換える

    download-e-stat

  13. CSVファイルは、2つのファイルに分割されました。

  14. これら2ファイルの26行目までは不要なため除去しなければなりません。なお、26行目とは限りませんので、必ずファイルを開いて確認してください。
  15. 27行目以降と28行目以降をそれぞれ取り出し、1ファイルにマージします。さらに、後者からはヘッダーも除去します。

    tail +27 FEH_00200523_210506130134.csv > FEH_00200523.csv
    tail +28 FEH_00200523_210506130139.csv >> FEH_00200523.csv
  16. CSVファイル(FEH_00200523.csv)を「UTF-8」に変換してください。

データセットを新規作成

  1. QuickSightを開きます。
  2. 「データセット」を開きます。 quicksight-datasets
  3. 「新しいデータセット」ボタンをクリックします。 quicksight-create-dataset
  4. 「ファイルのアップロード」をクリックします。 quicksight-fileupload
  5. 先ほどダウンロードしたCSVファイル(FEH_00200523.csv)を選択してください。
  6. ファイルのアップロードが終了すると、次のダイアログボックスが表示されます。「次へ」ボタンをクリックします。 quicksight-verify-fileupload
  7. 以上で、データセットが作成されたので、「視覚化する」ボタンをクリックして、「分析」ページを開きます。 quicksight-create-analysis

分析を新規作成

  1. 次のアイコン(サンキー図)をクリックします。
  2. 「移動前の住所地」、「全国・都道府県・大都市」を順に選びます。「value」を選びます。
    ディメンション(青)とメジャー(緑)は自動的に選択されるため、先に「value」を選んでも問題ありません。 quicksight-sankey-visual

フィルターを設定

データが多過ぎて、線が混み合っていますので、フィルターでデータを絞り込みます。

  1. 「フィルター」タブを開きます。フィルターを追加するときは、「+」ボタンをクリックします。
  2. 「時間軸(年次)」、「性別」、「移動前の住所地」、「全国・都道府県・大都市」をフィルターに追加します。 quicksight-create-filter
  3. 各フィルターを設定します。このとき、必ず「適用」ボタンをクリックしてから、「閉じる」ボタンをクリックしてください。
    項目
    時間軸(年次) 2019年
    性別 総数
    移動前の住所地 東京圏、名古屋圏、大阪圏
    全国・都道府県・大都市 東京圏、名古屋圏、大阪圏

    quicksight-setup-filter

サンキー図の完成

2019年における、東名阪各圏の人口の移動状況をQuickSightのサンキー図で可視化できました。

quicksight-visual

さいごに

AWSの分析サービスとの親和性が非常に高いQuickSightですが、常に進化していて、表現の幅が広がりつつあります。 最小限の構成だと非常に安価ですし、マネージド・サービスなので構築不要です。 アドホックな分析をちょっと試してみたいといったニーズにはベストマッチなのではないでしょうか。 今後のQuickSightの進化に注目したいと思います。

合わせて読みたい