Looker Studioの「データの抽出」を活用したBigQueryのクエリ分析コスト(コンピューティングの料金)を削減するためのテクニックについて解説。
「データの抽出」機能とは
「データの抽出」とはLooker Studioに備わっている機能で、簡単にいうとデータソース問わず、データをLooker Studioのバックグラウンドに静的なデータとして100MBを上限としてコピーすることができる機能になる。
「データの抽出」のメリットとしては、「データの抽出」で抽出したデータを読み込みには一切コストがかからない点。そして、レスポンスの改善が挙げられる。BigQueryも十分に速いが、「データの抽出」を読み込む方が若干ではあるがレスポンスがさらに改善される。
「データの抽出」で保存したデータは静的なデータであるが、自動更新の設定が可能であるため、例えば、BigQueryでテーブルを作成した時間よりも、後の時間を「データの抽出」の自動更新時間として設定することで、BigQueryのテーブルを丸々「データの抽出」化した静的なテーブルとして複製することが可能となる。
BigQueryのデータ最小処理容量は10MB
BigQueryで作成したテーブルをLooker Studioから参照する際、テーブル構成を最適化しデータ抽出量が10MBを超えない場合であっても、最低10MBかかるという仕様がある(キャッシュが効いていない場合)。
参照:BigQuery の料金 > オンデマンド コンピューティングの料金
これのやっかいなところは、それ単体では10MBと僅かな量ではあるが、Looker Studioのレポートの中で1つのテーブルに対して、10個のコンポーネントが参照していた場合、その分のクエリ参照コストがかかるため×10で100MB消費されることになる。日付をズラすなどの操作の度にクエリコストがかかり、10回レポートを表示させると100MB×10で1GBとなる。
BigQueryの1ヶ月間のクエリ抽出料金の無料枠は1TBである。これを1ヶ月(30日)で均等に割り振ると、1日に利用できる無料枠のデータ量は次のように計算される。
- 1TB = 1,024GB
- 1ヵ月 = 30日間
約34GB = 1,024GB / 30日
できる限りクエリ抽出量は抑えたい中、1回レポートを表示させるのに100MBを消費してしまうのは、できる限り避けたい。
「データの抽出」でデータを抽出
そこでLooker Studioの「データの抽出」機能を使うことで、データをBigQueryからLooker Studioのバックグラウンド側に保存することが可能になる。もともとのBigQueryのテーブルは整形済みとし不要な列はないものとする。よく「データの抽出」機能の解説でGA4との連携において「データの抽出」を使っているケースがあるが、何か特段の理由がない限り、「データの抽出」を活用する前にBigQueryへの移行を検討した方がよいだろう。
そのため、BigQueryのテーブルに対して「データの抽出」を活用する場合、そっくりそのままテーブルを抽出することになる。そして、Looker Studioの参照先を「データの抽出」で抽出したテーブルを参照することにより、クエリ分析コストをなくすことが可能になる。データの抽出のデータを参照する際は最小処理容量などはない。
ただ、すべてのレポートを「データの抽出」に置き換えるのも手間がかかるため、参照頻度が高いレポートに限定して置き換えてもよいだろう。