Help us understand the problem. What is going on with this article?

【AWS】QuickSightのダッシュボードで直近10日間のデータをデフォルト表示する

はじめに

フィルタの相対日付を使うのではなく、パラメータとコントロールを使った動的デフォルト設定をやろうと思ったら、ちょっとトリッキーな対応が必要だったので共有します。

やりたいこと

パラメータの動的デフォルト値を使って、ダッシュボードで常に直近10日間のデータをデフォルト表示するようにしたい。
(貼り付けたコントロールのデフォルトのフィルタ条件を「FROM日付=9日前」~「TO日付=本日」にしたい)

手順

  1. AthenaにQuickSightのユーザーテーブルを作成する(カラムはuserのみでOK)

    CREATE EXTERNAL TABLE IF NOT EXISTS db_name.user (
      user string
    )
    LOCATION 's3://XXXXXXXX/USER/'
    TBLPROPERTIES ('classification'='csv')
    
  2. 上記のS3上にQuickSightのユーザー名のみを記載したcsvファイルを配置する

    (例) user.csv
    Yuto.Yamada
    Anne.Tanaka
    Gaku.Suzuki
    
  3. QuickSightのデータセットにて【新しいデータセット】からAthenaデータソースを作成する
    A01.png

  4. テーブルには先程作成したユーザーテーブルを選択する
    A02.png

  5. 【カスタムSQLを使用】からカスタムSQLクエリを以下のように入力する

    select
        user,
        DATE(current_timestamp AT TIME ZONE 'Asia/Tokyo' - interval '9' day) as reporteddate_jst_default_from,
        DATE(current_timestamp AT TIME ZONE 'Asia/Tokyo') as reporteddate_jst_default_to
    from db_name.user
    

    A03.png

  6. 今回はSPICEは使わない方針だったので「データクエリを直接実行」を選択
    A04.png

  7. 【データの編集/プレビュー】からカスタムSQLクエリと実行結果を確認したらuserデータセットを保存する
    A05.png

  8. 次に、予め作成していた分析の画面に移動し、先程作成したuserデータセットを分析に追加する
    A06.png

  9. FROM日付のパラメータを追加して【動的デフォルトを設定】へ進み、「デフォルト値とユーザー情報を含むデータセット」に先程作成したuserデータセットを選択し、「ユーザー名列」には user 、「デフォルト値の列」には reporteddate_jst_default_from を選択する(静的デフォルト値は使わないため適当な値を設定しておく)
    B01.png
    B02.png

  10. 同様に、TO日付のパラメータを追加して【動的デフォルトを設定】へ進み、「デフォルト値とユーザー情報を含むデータセット」に先程作成したuserデータセットを選択し、「ユーザー名列」には user 、「デフォルト値の列」には reporteddate_jst_default_to を選択する(静的デフォルト値は使わないため適当な値を設定しておく)
    B03.png
    B04.png

  11. 作成したFROM日付のパラメータをコントロールに追加する
    B05.png
    B06.png

  12. 同様に、TO日付のパラメータをコントロールに追加する
    B07.png
    B08.png

  13. フィルタにてフィルタ対象項目を追加し、「フィルタタイプ」、「開始日のパラメータ」、「終了日のパラメータ」を以下のように設定する
    B09.png

  14. コントロールの「レポート日From」と「レポート日To」に自動的に直近10日間の期間が設定され、この条件で分析結果が表示される
    B10.png

  15. この分析をダッシュボードとして公開すれば完了です

最後に

今回はuserデータセットにAthenaを利用しましたが、上記のようなuserデータセットはRedshiftなど他のデータソースから作成して、各データソースに応じたSQL関数を用いたカスタムSQLクエリを組むことでも同様に実現できるようです

kentaro_16
AWSを触る機会が最近増えているので、調べても答えが載っていなかったものは備忘を兼ねて投稿してみたいと思います。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away