QuickSight で郵便番号を使ってマップビジュアルを描画してみる

2022.10.05

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

いわさです。

QuickSight ではビジュアルに地図を選択することが出来ます。
地図にはポイントあるいは領域の塗りつぶしで描画することが出来るのですが、位置を指定するための地理情報が必要です。

地理空間データと呼ばれているようですが、QuickSight では以下のようなものが使えるとのことです。

Amazon QuickSight は緯度と経度の座標をマップに記すことができます。国、州または地域、郡または地区、市町村、および郵便番号などの地理的コンポーネントも認識します。

緯度経度はよく使うパターンですし、国や都道府県などを指定することもあります。
ただ郵便番号をまだ試したことがありませんでしたので本日はこちらを使ってみました。

データ準備

かなり適当ですが、以下のようなデータを用意し SPICE へアップロードしました。
郵便番号にハイフンがいるのかいらないのか、あるいはどっちでも良いのか、よくわからなかったのでどちらも用意してみました。

郵便番号1,郵便番号2,場所
060-0003,0600003,場所1
064-0804,0640804,場所2
004-0052,0040052,場所3

フィールドを郵便番号にして取り込む

CSV から取り込まれた状態で文字列フィールドになっていたのでフィールドのデータ型を「郵便番号」にだけ変更しておきましょう。

分析でマップビジュアルを選択して、郵便番号フィールドを選択してみます。

うまくレンダリングが出来ませんでした。
そして郵便番号を扱う際には国が明確になっている必要があるようで、この場合では US がデフォルト指定されていました。

このあたりの仕様は以下に記載があります。

まず、郵便番号を始め地理データを扱う際にはデータセットの編集時に「階層」を作成することが出来ます。
階層の作成時に静的あるいは動的な国を指定します。

階層が指定されていなかった場合は、AWS リージョンごとにデフォルトの国が選択されるようです。
どうやら東京リージョンの場合は US が指定されるようですね。

ちなみに、US の郵便番号であればこのままでも動きます。

階層を作成

日本をターゲットに利用する場合は階層を作成する必要があることがわかりました。
以下のようにデータセット編集画面で階層を追加しましょう。

1 つの国用

階層を作成する際に国を指定するわけですが静的に指定するか動的に指定するかを選択することが出来ます。
複数の国を対象としている場合は別途国フィールドを用意し関連付けることでレコードごとに国と郵便番号のセットを用意することが出来ます。

まずは 1 つの国用に作成してみます。
以下のように対象国の選択肢から日本を選択しました。

作成した階層(郵便番号)をマップビジュアルに設定してみましょう。
準備したデータでは郵便番号にハイフンが含まれているものと含まれていないものがありましたね。

ハイフンありの場合は以下のようにエラーとなりました。

ハイフンなしの場合は以下のように正しく描画されました。ポイントマップです。
この郵便番号は我らが札幌を指しています。(私は江別在住ですが)

ちょっとびっくりしたのが、塗りつぶしマップの場合だと以下のように郵便番号ごとに(おそらく)適切な領域が塗りつぶされています。
かなりしっかりしていますね。

複数の国用

続いて複数の国用も試してみます。
日本のデータのみだったのでここでは JP 固定値の計算フィールドを作成しました。

データ型を国に変更し、階層で指定します。

マップビジュアルに階層を追加すると、国と郵便番号の2つが対象フィールドに指定されます。
先程と違う点として国 ↔ 郵便番号 のドリルダウン・ドリルアップを行うことが出来ます。

以下は国での表示です。

以下は郵便番号での表示です。

さいごに

本日は QuickSight で郵便番号を使ってマップへのレンダリングをしてみました。

郵便番号を扱う際には国を意識する必要がある点をまず覚えておきましょう。
日本の場合はデフォルトで選択する方法がないので階層が必須です。

また、QuickSight 上では郵便番号はハイフン除去した上で使いましょう。