見出し画像

Googleデータポータルでダッシュボードを作る際は、パラメータを活用してBigQueryのコストを抑えよう!

本日良い学びを得たので忘れないうちにアウトプットを兼ねたメモ。

前提

弊社では、BigQueryで管理しているデータテーブルをGoogle データポータルにつなぎ、そこで記述したカスタムクエリの結果をもとに様々なダッシュボードを作成しています。

ある日、BizDevからの要望

😃 < 営業資料などで活用しているダッシュボードについて、もっと柔軟な範囲で日付を指定したい!)


※当時、無駄なデータ使用コストをかけないために、記述しているカスタムクエリでは取得する日付範囲を過去90日くらいに絞っていました

課題

・前述の通り、デフォルトで全期間(2年分くらい)のクエリを実行するダッシュボードを作ると、データ使用上のコストがかかる

・だからと言ってクエリで指定する期間を狭めると、例えば昨対比でデータを見たい、となったときに毎度声をかけてもらうことになり柔軟性・スピードに欠ける

・ダッシュボード作成者以外には、なるべく編集権限を与えない運用にしたい(グラフを誰もが編集できてしまうと、ダッシュボードがカオスになりがち)

そこで、「パラメータ」が役に立つ!

そこで、弊社エンジニアのチャーリーくん(@gamu1012)から「パラメータ」の活用について教えてもらいました。

カスタムクエリを記述する際にパラメータを使用すれば、元データからダッシュボードで指定した範囲のデータだけを取得・実行した結果を表示する、というエコな運用ができるとのこと。
しかも期間指定だけの話であれば、編集権限がなくても期間を変えるだけですむので、これは便利。

▼詳しくはこちらの「クエリ パラメータ」の項目を参照


今回は「日付パラメータ」を使ってみるということで、手取り足取り教えてもらいながら、早速やってみました。

日付パラメータの記述方法

クエリの「WHERE」句にGoogle指定のパラメータの

@DS_START_DATE
@DS_END_DATE

を使って記述するだけ。(どちらも全部大文字で!)
扱うデータによって異なるとは思いますが、弊社の場合は実際に以下のようなクエリを記述しました。

WHERE
 FORMAT_DATE("%Y%m%d", DATE(created_at, 'Asia/Tokyo'))>= @DS_START_DATE
 AND FORMAT_DATE("%Y%m%d", DATE(created_at, 'Asia/Tokyo')) <= @DS_END_DATE

スクリーンショット 2020-07-28 16.47.59


今回は最初からGoogle側が用意してくれている「日付パラメータ」を使ったので、上記画像内の「日付パラメータを有効にする」にチェックを入れました。
そうすると、Googleがパラメータをテキストではなく日付と判断してくれます。
日付と判断されると、今回の要であるデータポータルの「期間設定」の指定がきちんとデータに反映されるようになります。

(ちなみに日付以外にも、IDなど他のデータに関する独自のパラメータを設定することもできるのですが、それについてはもう少しちゃんと習得してからまたいつか...)

あとはデータポータル上で期間指定のアイテムを設置するだけ

データポータルのメニューにある「期間」という項目をクリックすると、期間指定が出来るウィジェットが表示されます。
これがあれば、閲覧権限しかない人でも、好きに期間を指定することができます。

スクリーンショット 2020-07-28 17.11.44

ちなみに期間設定は、通常、期間を指定するとそのページ全体のグラフに反映されます。
一部のグラフだけに反映したい場合は、ウィジェットと反映させたいグラフをグループ化すれば影響範囲を指定できます。

なお、ウィジェットから期間指定したのになぜかグラフに反映されない...という場合は、反映されないグラフの「デフォルトの日付範囲」が「自動」になってるか確認してみてください。(「カスタム」になってると反映されません。恥ずかしながらこれでしばらく苦戦しました...。)

▼期間設定の詳細はこちら


この記事が気に入ったらサポートをしてみませんか?