Google BigQuery

BigQuery BI Engine解説

こんにちは、エクスチュア渡部です。
2019/4/9-4/11に行われたGoogleNext@サンフランシスコに参加して来ました。

GoogleNextのレポートは、以下のブログも是非読んでください。
GoogleNext 2019レポート:1日目
GoogleNext 2019レポート:2日目
GoogleNext 2019レポート:3日目
データアナリスト/データエンジニア向けNext19まとめ

今回はデータアナリティクス周りの発表の目玉の一つである
「BigQuery BI Engine」に関して解説していきたいと思います。

https://cloud.google.com/blog/products/data-analytics/google-cloud-smart-analytics-accelerates-your-business-transformationより引用

【概要】

BI Engineとはざっくり、
BigQuery×BIツールのパフォーマンスを向上させるBigQueryの拡張サービスです。

これまで、BIツールの接続先としてBigQueryを選択する場合、当然ですが「直繋ぎ」でした。
BIツール側で指定された動作に対して、都度BigQueryがクエリを走らせていたため、
キャッシュが効かない場合あまりパフォーマンスに期待が出来ないこともありました。

そのためにデータマートを都度作成し、その分バッチも組んで処理が増え続けていく・・
なんてことは、DWH×BIの領域ではよくある事態だと思います。

そんな現状への打開策として提供されたのが「BigQuery BI Engine」です。
BI Engineはこれまで直繋ぎだった「BigQueyとBIツールの間」にデータを蓄積するメモリが加わり、
レポートで頻繁に必要とされるデータをインメモリ処理にしてくれることで、パフォーマンスを向上させる仕組みです。
※Tableauを使用されている方は、「抽出」を自動的にしてくれるようなものだと思ってください。

【BI Engine VS BQ直繋ぎ】

比較動画を作成してみました。
アメリカの新生児の名前の件数のデータ(163.49 MB)において、
BIEngineを使用しているデータソースとBIEngineを使用しないデータソースを用いた集計結果において、
①オハイオ州のみデータでフィルター
②ミシガン州のみデータでフィルター
という動作がどの程度パフォーマンスに差が出るのかを見ています。

結果、ざっくりですが①も②もBI Engine側は「2秒」、
BI Engineを使用していないものは「10秒」ほどの結果となりました。
データソースの容量や集計条件によってこれより効果が出るものもあれば、出ないものもあるでしょうが、
100MBレベルのデータソースでもこれだけ差が出ると言うのは一つ驚きです。

また、BQ側に発行されるクエリの本数にも大きな違いがありました。
この動画を作成する間20分程ごちゃごちゃデータスタジオを操作した結果、
・BI Engine側のプロジェクトでDSから発行されたクエリの本数は2本
・非BI Engine側のプロジェクトでDSから発行されたクエリの本数は60本(うち40本は課金対象)
でした。

BI Engineではインメモリで処理出来るデータは、追加のクエリの発行が行われません。
そのため、コスト面でのメリットも生み出すほか、大量同時アクセスでBQのクエリ制限に
引っかかり画面が表示できない!なんて事態ともおさらば出来ます。

【価格】

BQ Engineの価格は「キャッシュするデータの容量(1GB~10GBまでで選択)」によって変化します。
BI Engine>Documentation>Pricing

1GBあたり月$30と一見強気な価格設定ですが、
①無駄なクエリ課金を減らせる
②時間を買える(レポート表示やアドホックな分析がサクサク行える)
③「表示重い・・・データマート作るか・・・」から生まれるタスクが(データによっては)無くせる
と考えたら安い買い物だと思います。

【BI Engineの始め方】

BI Engineの始め方は簡単です。

①BQコンソールからBI Engineの画面に行き、「CREATE RESERVATION」を選択

②ロケーションと金額を選択する

1つのreservationあたり、1つのロケーションしか選択出来ません。
BI Engineを使用したいデータがどこに格納されているのかを調べ、該当のロケーションを選択してください。


あとは確認してReservationを作成するのみで、
BI Engineの準備は完了です。

【制約】

現時点では以下の制約があるようです。
・BIツールはDataStudioのみサポート(TableauやLookerは近いうちに対応予定)
・ビュー/カスタムクエリに対しては完全には最適化されない(つまりテーブルにしろってことですね)
・最適化できるテーブルの容量は10GBまで

【まとめ】

BigQueryの機能の拡充が続き、ますます便利なツールとなってきました。
そんな中今回追加された機能であるBigQuery BI Engineによって、
BigQueryに格納されたデータをもとに
レポート作成/アドホック分析を行う方にとって非常に大きなメリットを生み出していく機能になりますね。

私も参加したGoogleNextのセッション
Serverless BI Reporting on GCP with Data Studio
でも、BigQuery BI Engineに関する言及がありました。
お時間がある方は是非こちらもチェックして見てください。
※BI Engineに関する言及は25:20~から


エクスチュアはGoogleCloudの公式パートナー企業です。
また、Tableau、Adobe Experience Cloudなどのマーケティングテクノロジーに精通した
経験豊富なスタッフが、御社のビッグデータ分析をサポートします。

お問い合わせはこちらから

ブログへの記事リクエストはこちらまで

関連記事

  1. Adobe Analytics

    Adobe Analytics: BigQuery+Lookerでアトリビューション分析

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。今回はAd…

  2. Azure

    Google Cloud StorageとAzure Blob Storage間でファイルを並列コピ…

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。今回はGC…

  3. Adobe Analytics

    Adobe Analytics: BigQueryでパーティシペーション指標を集計するSQL

    こんにちは、エクスチュアの権泳東/コン・ヨンドン(@exturekwo…

  4. Adobe Analytics

    Adobe Analytics: DatafeedをGoogle BigQueryにロード(2019…

    こんにちは、エクスチュアの権泳東/コン・ヨンドン(@exturekwo…

  5. Google Cloud Platform

    Node.js+GAE: 日本語自然文を形態素解析してネガポジ判定をする

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。今回は…

  6. Adobe Analytics

    Adobe Analytics + Google BigQueryでよく使うSQL例 6選

    こんにちは、エクスチュアの権泳東(コン・ヨンドン)です。今回は…

最近の記事

  1. Adobe Analytics: BigQueryでパーティ…
  2. 続・SafariのITP2.x対策として別サーバー使ってクッ…
  3. Big QueryでWindow関数を用いて、累積和を計算す…
  4. Adobe Analytics: DatafeedをGoog…
  5. Adobe DTMからAdobe Launchに一発アップグ…
  1. Mouseflow

    Mouseflow:計測対象からの除外
  2. Adobe Analytics

    Adobe Analytics: SegmentsAPIを使って大量のセグメント…
  3. Tableau

    Tableau:分かりやすいLOD – INCLUDE編
  4. Tableau

    Tableau:累計ユニークカウント数を時系列グラフで表現する
  5. Adobe Analytics

    Adobe AnalyticsとGoogle Analyticsの違い② サンプ…
PAGE TOP