BigQueryのデータをData Studioにてグラフ化する

## はじめに

今年もアドベントカレンダーはじまりました！
この記事はNE Advent Calendar 2022のカレンダー1枚目1日目の記事です。
[NE株式会社](https://www.ne-inc.jp/)のエンジニアが自分の興味あるテーマについて自由に書いていきます。
毎年一緒に参加して盛り上げてくれる皆さんに感謝です :clap:

## 動機

業務で扱っているデータにおいてデイリーで集計しグラフ化し毎日監視できる状態にしたかった。
今回は例として各企業毎にあるスコアがあり、それの日別の推移を見ていきたいとします。

## BigQuery

既にBigQuery上に業務データが蓄積されており、それを加工してスコア化して別テーブルにデイリーで保持することにします。

```sql
SELECT
  company_id,
  target_date,
  score
FROM hoge
WHERE
  target_date >= DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)
  AND target_date < CURRENT_DATE
GROUP BY
  1, 2
ORDER BY
  1, 2
;
```

hogeテーブルに蓄積データがあり、こちらから前日分のデータを取得するクエリ。
こちらをBigQueryの機能でスケジュール実行し別テーブルに蓄積します。

![スクリーンショット 2022-11-22 17.20.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/9ae357b1-3111-2fac-f176-7f18956b22a6.png)
![スクリーンショット 2022-11-22 17.22.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/9d151bed-16a2-2dde-5b0e-89bf006a8c35.png)
![スクリーンショット 2022-11-22 17.22.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/fab23c7c-cba0-c819-7837-08fa9e35e15a.png)

### スコアデータ

こんな感じになりました。
![スクリーンショット 2022-11-22 17.43.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/fd37db16-b319-b42d-66d0-39c214f2b90f.png)

## Data Studio

次にData Studio側にて先程のデータを呼び出します。

![スクリーンショット 2022-11-22 17.46.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/1df3ee1f-e45d-7123-48b9-c5e10f207ee2.png)
![スクリーンショット 2022-11-22 17.47.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/0ad3e8c8-1ac0-55ee-cd83-0e22d99c0349.png)
該当のテーブルを指定してあげると無事に読み込めます。

![スクリーンショット 2022-11-22 17.48.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/72a339be-c88d-8c54-93b7-a8dbb3efacc6.png)

### グラフ化

後はこれを欲しい形に加工していきましょう。
横軸を時間にして縦軸をスコア、企業毎に遷移が見たいので以下のような設定になります。

![スクリーンショット 2022-11-22 17.51.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/e4003314-cd39-1749-d5ed-81856865e0a2.png)
![スクリーンショット 2022-11-22 17.50.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/3c11f8f7-7c42-4d97-9b2d-d738e15f556d.png)
![スクリーンショット 2022-11-22 17.52.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/02430419-55e2-ae0f-03cc-26a3b75c43d7.png)

この設定でできあがったグラフが以下。
![スクリーンショット 2022-11-22 17.53.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/21fa8391-364b-b330-26c4-6fc9d630de36.png)

イメージ通りのグラフが作れました。
BigQuery側でデイリー集計しているため、後は放っておいても自動でデータが更新されていきます、便利。

## ぷちポイント

* スコアを加工する場合は「フィールドを追加」から計算式を書くといける
    * 例えば2倍のスコアで計算したい場合は以下
    * ![スクリーンショット 2022-11-22 17.58.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/0a000ad2-39e8-1b20-2f57-d899e99498e7.png)
* 系列の数は20までしかいけず、企業が20以上あると1度には表示できない
    * ![スクリーンショット 2022-11-22 17.59.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/a855696a-7215-1943-fdd2-8ed66017b204.png)
* スコアいくつ以上いくつ以下とかでフィルタすると見たい部分が見やすくなる
    * ![スクリーンショット 2022-11-22 18.26.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67471/9f924836-7508-ba08-0d91-94c69d42be00.png)



## まとめ

* BiqQueryにてグラフ用のデータをスケジュール実行
* それをData Studioにて呼び出し
    * グラフ化の設定

ができました。
数値の可視化と監視は重要なので覚えておきたい知識ですね！

## おわりに

今年も完走目指して頑張りましょー！
この後もNEのアドカレをお楽しみに！！