日々巨大化するデータを解析しビジネスに活用するためには、データアナリストや経営者などの分析データを活用するユーザーのスピード感に対応する必要があります。しかし従来のBIツールでは、増え続けるデータに対し、スピード感を持って対応することが難しくなっているといわれています
そこで本記事では、従来のBIツールの課題を解決するBigQuery BI Engineについてまとめました。導入を検討している方はぜひ参考にしてみてください。
BigQuery BI Engineとは
BigQuery™ は、Google Cloud が提供しているデータウェアハウスサービスです。BigQuery BI Engineはそれに付随する機能で、BI BigQuery 内に保持しているデータに対して使用できるインメモリ分析サービスのことです。BigQuery内のビッグデータをメモリ内に展開して解析処理を行うので、BigQuery 単体でデータを処理するよりも、更に高速に結果を得られるサービスなのです。
従来のBigQueryとBIツールの接続は直接接続でした。その間にデータを蓄積するためのメモリを挟むことで、出力データで頻繁に使われるデータをメモリ上で処理し、パフォーマンスを上げる仕組みです。インメモリにはBigQueryメタデータとテーブルデータが保存されており、有効にしたプロジェクトが所有している全テーブルデータが保存の対象です。そのため、効果が得られる最適なメモリ量の設定は、テーブルデータの総量にするのが一般的です。
BigQuery BI Engineの利点
Google Cloud の公式サイトには次のようにメリットが書かれています。
以下のデータは Google Cloud が公開しているデータから引用したものです。
- 高速: インサイトの成果をビジネスのスピードに合わせる
- 簡素化されたアーキテクチャ: 複雑なデータ パイプラインやサーバーを管理せずにすぐに開始
- スマートな調整: ごくわずかな構成
引用元:https://cloud.google.com/bigquery/docs/bi-engine-intro
つまり以下のようなニーズに応えられます。
- 意思決定のためにリアルタイムでデータ分析を行いたい
- データの抽出、変換、ロードを簡略化し、BIを早く実行したい
- クエリを減らし、運用を簡素化したい
分析スピード
分析結果を出力するダッシュボードの表示が遅いと、ユーザーは不満を感じやすくなります。また処理が遅いとデータも古くなるため、意思決定の際に不利になる可能性があるでしょう。BI Engineはインメモリを活用することで読み込み時間を抑え、BigQueryに保存されているデータの同時実行性を上げています。同時実行性を上げることで、1秒未満のクエリ応答時間を実現しました。そのため、ユーザーが不満を感じることなく、かつデータの更新頻度が低下することなくリアルタイム解析が可能です。
シンプルなアーキテクチャ
従来のBIツールで高速かつ適切なデータ分析を行うためには、データウェアハウスから必要なデータを加工し、分析用に保存したデータマートが必要です。または、BIプラットフォームにデータを抽出・変換・ロードする変換パイプラインが必要でした。しかし従来の方法では、データソースの増加、データタイプの変更などがあると処理の再構築に時間がかかるといった課題がありました。
BI EngineはBigQuery内で分析することでデータを移動し、変換パイプラインの作成が不要になるため、これまでの課題を解決可能です。
BigQuery BI Engineの制限事項
処理速度が速く、同時実行性もよいBigQuery BI Engineですが、いくつかの制限事項があります。
- BigQueryに対するクエリの一部がBI Engineによって完全には最適化されません。最適化されなかった場合はその理由が表示されます。
- BI Engineがキャッシュできるメモリは最大100GBです。
- テーブルあたりでサポートできるパーティション数は最大500個です。
- クエリの複雑さに応じてサポートできるデータ数は最大1億5000万行です。
- リーフレベルのサブクエリ内では標準SQL関数と演算子のみ高速化されます。
- 結合できるテーブルの数とサイズに制限があります。
- カスタムクエリとビューで最適化されない関数あるいは演算子を使用するクエリは実行速度が遅くなる場合があります。
- ワイルドカードテーブルを参照するクエリは使えません。
BigQuery BI Engineの利用料金
BI Engineの利用はデータ容量にによって料金が変わります。購入したデータ容量がデータ保存量の上限です。メモリに保存されたデータから、結果を出力するクエリを実行する場合は課金されません。容量を超える結果を出力するクエリを実行するとBigQueryスロットを使用してクエリを実行します。この場合はBigQueryのオンデマンドクエリ料金にもとづいて課金されます。
BI Engineの容量を購入するのは次の2種類です。
- オンデマンドで購入する
1 GB あたり $0.0416 - BigQueryを定額料金で登録するとセットで無料分が付加される
年契約するスロット数によって無料で追加されるBI Engineの容量が変わります。
500スロット → 25GB
1,000スロット → 50GB
1,500スロット → 75GB
2,000スロット → 100GB(最大)
BigQueryのスロットを2,000個購入するとBI Engineの容量が無料で100GB追加されます。
100GB以上の容量が必要な場合はオンデマンド料金で追加購入する必要があります。
購入例
会社Aが2000個のBigQueryスロットを定額料金で購入し、4つのプロジェクトで合計120GBの BI Engine容量を使用した場合。
<一括請求の場合>
無料で追加されたBI Engineの容量は100GBですが、合計で120GBの容量を使用したので、20GB分がオンデマンド料金で必要になります。
<プロジェクトごとの按分請求の場合>
プロジェクトごとに次のようにBI Engine容量を使用した場合は割合にもとづいて追加請求されます。
プロジェクトB:使用容量30GB → 追加請求容量分5GB
プロジェクトC:使用容量40GB → 追加請求容量分6.67GB
プロジェクトD:使用容量20GB → 追加請求容量分3.33GB
プロジェクトE:使用容量30GB → 追加請求容量分5GB
この計算は会社Aの追加容量(20 GB)を合計容量(120 GB)で割り、プロジェクトBで使用した合計容量(30 GB)をかけることで算出できます。
BI Engineには全てのユーザーに対して無料で最大1GBの空き容量が提供されます。
しかしこれはテスト用であるため、本番の実行環境では使用しないでください。
無料容量に対してはSLOの保証はありません。
BigQuery BI Engine の設定方法
BigQuery BI Engineの設定方法を説明します。
まずは以下の設定を行います。
- 請求先アカウントの作成
- プロジェクトの作成
- BigQuery 有効化
- データセットの作成
- テーブルの作成
今回は検証用のデータとして、Google Cloud が提供している一般公開データセットの中の、natality サンプルテーブルのデータを利用します。BI Engineはプロジェクトに紐づくリソースのため、機能を利用するためにはプロジェクト内にデータセットのテーブルを作成する必要があります。その際は、以下のSQLを実行して設定環境のプロジェクトのデータセット内にテーブルを作成します。
CREATE TABLE
`プロジェクト名.データセット名.テーブル名` AS
SELECT
*
FROM
`bigquery-public-data.samples.natality`
テーブルのサイズは約22GBです。
検証用のテーブルが作成されたら、BI Engineの設定をしていきます。
まずはBigQueryのWebUI上のBI Engineと表示されている部分をクリックしてください。
クリックするとBI Engineの予約一覧ページが表示されるので「+ CREATE RESERVATION」ボタンを選択します。
その後にBI Engineの予約作成ページが表示されるので、プロジェクトを選択して、BigQuery BI Engine を利用するLocationを選択します。その際 Location は必ずデータセット・テーブルと同じリージョンを選択しましょう。違うリージョンを選択すると BigQuery BI Engine によるインメモリ分析が実行されなくなり、表示が高速化されません。
Capacityは確保するインメモリの容量です。今回は1GBを選択します。
これらの設定が完了したら「NEXT」ボタンをクリックし次に進みます。
NEXTボタンをクリックするとBigQuery BI Engineの料金が表示されます。問題なければ次に進んでください。
この時点ではまだ課金が発生することはありません。
利用規約を確認したうえで問題がなければ同意して「CREATE」ボタンを選択してください。
これで BigQuery BI Engine の設定は完了します。
DSKが提供するデータ分析サービス
株式会社電算システム(DSK)は、お客様が現在抱えているビジネス上の課題、お悩みにデータを用いて解決いたします。データインテグレーターとして、コンサルティングに始まり、データ収集・加工・可視化といったデータ分析に関わる一連のプロセスの利用が可能です。また分析基盤の構築、システム化まで一貫してご提供いたします。
その他にも、データプラットフォームサービスやAIシステムの導入などのサポートも可能です。
まとめ
今回はBigQuery BI Engineについて解説しました。目まぐるしく変化するビジネス環境に対応する意思決定のために、日々巨大化していく最新データを活用するニーズは高まっています。ニーズを満たすために、今回紹介した内容を参考にBigQuery BI Engineの導入を検討してみてはいかがでしょうか。