Amazon QuickSight のアクション機能を整理してみた

2022.09.29

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

いわさです。

QuickSight にはアクションという機能があります。
DevelopersIO でもいくつかアクションを取り扱った記事がありますが、最新のアクションでは少し出来ることが増えていたりします。

今回はその「アクション」にフォーカスして出来ることを整理してみることにしました。

事前準備

紹介する意味はあまりないのですが以下のような CSV を作成し SPICE へ取り込みます。
記事にしておくと別の機会の検証データとして再利用しやすいので。

CSV 内容

hoge0927ds1.csv

date,item,value
2022-01-15,item1,100
2022-01-15,item2,50
2022-01-22,item1,110
2022-01-22,item2,55
2022-01-29,item1,120
2022-01-29,item2,60
2022-02-05,item1,110
2022-02-05,item2,55
2022-02-12,item1,120
2022-02-12,item2,60
2022-02-19,item1,130
2022-02-19,item2,65
2022-02-26,item1,120
2022-02-26,item2,60
2022-03-05,item1,130
2022-03-05,item2,65
2022-03-12,item1,140
2022-03-12,item2,70
2022-03-19,item1,130
2022-03-19,item2,65
2022-03-26,item1,140
2022-03-26,item2,70
2022-04-02,item1,150
2022-04-02,item2,75
2022-04-09,item1,140
2022-04-09,item2,70

hoge0927ds2.csv

item,count
item1,10
item2,30

データセットの準備が出来たら分析でグラフとテーブルを表示します。

アクションを作成する

アクションを作成するにはビジュアルを選択した状態でサイドバーからアクションメニューを選択するか、ビジュアルのコンテキストメニューからアクションを選択します。
そうするとアクションペインが展開されるのでここでアクションを作成します。

アクションはビジュアルごとに作成します。

アクションで設定するのは大きく2つでアクティベーションとアクションタイプです。
アクションタイプごとにさらに設定可能な項目があります。

アクティベーションを決める

アクティベーションはアクションのトリガーとなる操作を「選択」か「メニューオプション」か選択することが出来ます。

選択

選択の場合はビジュアルの対象レコードなどを「選択」することでフィルタリングやナビゲーションなどのアクションが実行されます。
以下は右のビジュアルで item1 のレコードを選択したときに左のビジュアルを item1 でフィルタリングしています(ふたつのビジュアルは別データセット)

以下は item2 を選択したときです。

メニューオプション

メニューオプションを選択した場合は、ビジュアル上で対象レコードを右クリックなどした際のコンテキストメニュー上にアクションを実行するためのメニューが追加されています。

複数のアクション

ビジュアルごとに複数のアクションを作成することが出来ますが、ひとつのビジュアルでアクティベーションが「選択」のアクションはひとつまでです。
それ以外は「メニューオプション」を設定する必要があります。

アクションタイプ

次にアクションタイプです。
本日時点でアクションタイプは大きく以下の 3 つがあります。

フィルタアクション

フィルタアクションはソースビジュアルの選択したフィールド値を使って、複数のターゲットビジュアルに対してフィルタリングを行います。
アクションパラメータとしては、フィルタ範囲とターゲットビジュアルを設定します。

フィルタ範囲を指定することでソースビジュアルのどのフィールドを使ってフィルタリングを行うか指定することが出来ます。

ここで注意点があるのですが、データセット間の自動データマッピングについて意識する必要があります。
同じ分析内のデータセット間でフィールドが自動的にマッピングされるのですが、マッピングの条件がいくつかあります(フィールド名が同じ、データ型が同じ)

そのため、以下のように値として同一でもマッピングが出来ていないとフィルタリングが出来ません。

条件を満たし自動マッピングが構成されていればフィルタ処理が実施されます。

また、上記ドキュメントに記述がありますが、自動マッピングが構成されたあとであればフィールド名の変更が出来ます。(データ型の変更は不可)

ただしマッピングを再構成されるタイミングでうまくマッピングできなくなるので、原則フィールド名やデータ型を一致させることを意識したほうが良いと思います。計算フィールドでもマッピングが出来るので名称とデータ型をあわせた計算フィールドを用意する方法も可能です。

ちなみにフィルタアクションの動作は「フィルター」機能とは別です。
ちょっとわかりにくいですが次項のナビゲーションアクションで少し触れます。

ナビゲーションアクション

ナビゲーションアクションでは指定したシートにパラメータ付きで遷移させることが出来ます。
先程は同一ビジュアルに対してフィルタリングをしましたが、別シートに対してフィルタリングを行う際に利用出来ます。

フィルタアクションと異なっている点として、ターゲットシートに移動した後にパラメータを設定することが出来ます。
また、同一シートへのナビゲーションも可能なので単純にパラメータを使ったアクションを行いたい場合にナビゲーションアクションを使うことが出来ます。

逆に、ナビゲーションアクションの場合はマッピングが作成されません。パラメータを使った制御になります。

そのため前提としてパラメータによるフィルターを実装している必要がありますのでその点だけ覚えておきましょう。

このようにターゲットシートへ遷移し、パラメータを渡すことでフィルタリングされた状態にすることが出来ます。

あるいは同一シートに対してフィルター用のパラメータを設定するために利用することも出来ます。

フィルタアクションで少し触れましたがフィルター機能とフィルタアクションは別なのでアクションで item1 のみフィルタリングし、フィルターで item2 のみに絞り込んでしまうと次のようになってしまいます。

フィルターを使う場合は次のようにフィルターペインに設定パラメータが指定されます。
あるいはコントロールを使ってユーザーにパラメータを変更させる場合もあります。アクションで使うフィルタアクションとは違うものという点を覚えておきましょう。

URL アクション

最後に URL アクションです。

こちらはアクションが実行された際に指定された URL へ遷移を行う機能です。
以下のように任意の URL を指定しつつ、選択されたレコード値など動的なパラメータを引き渡すことが出来ます。

仮に上記のように URL を指定してみると、新しいタブで次のページが開かれます。

対応しているプロトコルは HTTP, HTTPS, MAILTO とされています。
MAILTO を確認してみましたが私の環境では動作しませんでした。ブラウザのセキュリティ設定の問題か...

この URL アクションを使うと先ほどのナビゲーションより広範囲な遷移が可能になります。
また、QuickSight ダッシュボードの URL を指定しつつ GET パラメータを指定することで以下のような使い方も出来ます。

さいごに

本日は Amazon QuickSight のアクション機能を整理してみました。

今回解説した「アクション」を使うと、分析だけでなくダッシュボードからも利用することが出来ますので閲覧者向けの機能として提供することが出来ます。

ビジュアル間のフィルター処理やナビゲーションなどダッシュボードの幅がとても広がる機能なのでぜひ使ってみてください。