はじめに
re:Invent 2024 がはじまり、サバワメンバも ブログ をいっぱい書いてくれてる中、
居残り組のアプリケーションサービス部の森です。
今回は、 Amazon QuickSight を使った小技3選をご紹介します。
なお、データの加工などは今回取り上げず、QuickSight側だけのお話です。
ということで、ご紹介、スタートです。
注意事項
今回、キャプチャーは基本的に貼り付けません。
AWSマネジメントコンソールはよく変更されるため、公式ドキュメントのURLを代わりに貼り付けますので、そちらでご確認ください。
小ネタ披露
(その1) シート内のフィルターをまとめる
シート内に異なるデータセットで作った複数の表やグラフが掲載することはよくあると思います。
そこで、フィルタを行う際、グラフ一つずつだとあまり見栄えが良くないのですが、一つのフィルターで処理することができます。
では、やり方です。
- まずはパラメータを設定 します。
このときの注意点の1つ目としては、データ型の指定があります。
[String (文字列)]、[Number (数値)]、[Integer (整数)]、[Datetime (日時)] のいずれかを選択してください。
注意点の2つ目は、フィルターとして利用する場合、 [単一の値] にするのか [複数の値] にするのかです。
この2つは、作成後に変更ができないので慎重に考えて設定してください。
[作成]ボタンをクリックするとパラメータが追加され、パラメータをどう接続するかの画面が出てくるので、[コントロール]を選択してください。
その後、名前の入力とスタイルの設定(ドロップダウン/一覧/スライダー/テキストフィールド) を行い、[追加]ボタンをクリックするとシート上部にフィルターが追加されます。 - 次に各グラフや表を選択して、フィルター を設定します。(ここでは対象となるグラフや表すべて同じことを実施してください)
フィルターでよく使われるのは、年度だったり月だったり、何かの型番だったりすると思います。
対象となるカラムのフィルターを設定した後、「⋮」をクリックして、「編集」を選択してください。
[フィルタータイプ]は「カスタムフィルター」を選択し、[フィルター条件]は「次と等しい」を選択。
「カスタムフィルター」を選択したときに「すべてのビジュアルとシートにフィルターを適用しますか?」とダイアログが表示されますが、ここは「いいえ」を選択してください。[パラメータを選択]で先程作成したパラメータを選択していただき、[適用]ボタンをクリックしてください。
これで設定は完了です。
実際に試していただくとわかるようにフィルターを変更するとシート内のすべての表やグラフがそれに連動してフィルター指定された値に変わります。
(その2) 行や列に表示する日付形式を年や年月で集計する
データセットとしては、年月日のデータに売上データが紐づいていると仮定します。
1つのデータセットで、他の表では日単位の表やグラフを表示しているものの、一部表やグラフでは月間でみたい場合などがあると思います。
その場合、わざわざデータセットとして日単位のデータセットと月単位のデータセットを用意する必要はありません。
日単位のデータセットを用意していただき、以下の手法で月単位で表示します。
今回の例はデータとしては日単位のデータではあるのですが、Amazon QuickSight側で月単位での集計を行う方法になります。
yrmthday
という名前のカラムがあり、そこにはYYYY/MM/DD形式でデータが格納されています。
表にしたときには、日単位の表にはなるのですが、この表では月間売上を見たいと仮定します。
その場合は、 ビジュアルの列にあるyrmthday
の「⋮」をクリックし、「集計」→「月」を選択すればOKです。
年間売上にしたい場合は、「月」を「年」にすればOKですね。
(その3) 先月の値と今月の値を計算する
AWS GlueやAWS Lambdaで事前に処理はできるんですが、Amazon QuickSightだけで、先月の値と今月の値を加減算などして、カラムとしてみるというやり方です。
ここでは、 sales_amount
(売上金額) というカラムと yrmthday
という YYYY/MM/DD
形式の日付型があることを前提とします。
ここで使うのは、 計算フィールド というものを利用します。
まずは答えです。
periodOverPeriodDifference(sum({sales_amount}), {yrmthday}, MONTH, 1)
periodOverPeriodDifference 関数は、期間粒度とオフセットで指定された2つの異なる期間におけるメジャーの差分を計算するもののようです。
まずは引数の説明です。
sum({sales_amount})
の部分ですが、集計される値を定義します。ここでは合計(sum)しておく必要があります。
{yrmthday}
の部分ですが、日付型を入れます。
MONTH
の部分ですが、期間の単位を指定します。 YEAR
/ QUARTER
/ MONTH
/ WEEK
/ DAY
/ HOUR
/ MINUTE
/ SECONDS
が指定可能で、デフォルト値は DAY
です。
1
の部分ですが、オフセットということで単位を MONTH
にして、オフセットを1
にすると1ヶ月ということになります。
ということで、今回の計算フィールドの式で行くと「sales_amount
の今月から先月を引き算する」になります。
さいごに
いかがでしたでしょうか。
最近、Amazon QuickSightを利用することが増えてきて、色々ダッシュボードを作成しています。
AWS Glue DataBrewで加工してAmazon QuickSightで可視化していますので、次回は、AWS Glue DataBrewの話も含めて書いてみようと思います。