ツイート分析でBigQueryのビックデータ分散処理を実地検証
樋口氏は、「BigQuery」を使ってビッグデータの分散処理を行い、それを同じくGoogle Cloud Platformで提供されているBIツール「Google Data Studio」で可視化するという、一連のプロセスを通じて、データ分析基盤の構築・運用に関する検証を自ら行ったと話す。
BigQueryによるビッグデータの分散処理で特徴的なのは、Apache HadoopやApache Sparkといった大規模な分散処理のための分析基盤をあらかじめ構築しなくても済む点だ。
「BigQueryのバックエンドには数百~数千台規模の分散処理用サーバーが稼働しており、クエリに分析のロジックを埋め込めるのであればリソースはこれで十分です。またQueryはUDF(ユーザー定義関数)にJavaScriptが使用できるので、JavaScriptが書けるユーザーならば、サーバーレスでこの分析環境を実現できます」
今回実際の検証として行ったのは、Twitterのツイートを収集して、数の多いものを「流行ワード」として分析する作業だ。
具体的には、あるゲームのハッシュタグがついているツイートを1週間分、API経由で取得してBigQueryに集積。一方でツイート内容からワードを抽出するUDFを作成してクエリを実行し、集計結果の中から数の多いワードを見える化する。
今回の検証では約89万3000行のレコード数、テーブルサイズ0.2GBに当たるツイートを収集・分析した。クエリの実行にかかった時間は20秒弱。かかった料金はわずか0.11円だったという。
約3億1000万レコードの生データを3秒弱で分析・グラフ化
次にトライしたのは、ビッグデータの可視化だ。検証の課題として、生のビッグデータをGoogle Data Studioでグラフ化し「見える化」した。
Google Data StudioはGoogle Cloud Platform上で提供されており、もちろんGoogle Data Studioとシームレスに連携しながら、さまざまなデータの分析・可視化が可能だ。操作も容易で、誰でも簡単にダッシュボードやレポートを作成できる。樋口氏は「Google Data Studioの魅力は、ビックデータを可視化できて共有できる『無料の』BIツールである点だ」と強調する。
今回使ったデータソースはBigQueryの公開データセットで、Wikipediaから取得している。約3億1000万レコード、データサイズ約38GBのテーブルに対して、Wikipediaの改訂履歴の投稿数を日別に集計するクエリを実行した。グラフの描画速度をChromeのDeveloper Toolsで計測したところ、ブラウザのページリロードからグラフ描画までは3秒弱。レポートのリロードだけならば約1.5秒と、非常に速いことがわかる。なおコストは2.03円と、こちらも実に安い。
「これほど大きな、しかも生のビッグデータからの集計・データ生成でも、この程度の描画速度とコストで済んでしまいます。データ量によっては、レポート用の集計すら必要ないでしょう。これだけ見てもGoogle Data Studioのパフォーマンスのすごさがわかります。もっとも描画速度と省コストは、BigQueryの実力による部分が大きいです」
樋口氏は、「BigQueryはこれだけの速さとコストの安さを備えているのだから、BIツールがクエリを自動的にキャッシュして再利用してくれれば、描画速度とコスト双方の面で大きなメリットがある」と指摘する。そのためにGoogle Data Studioには、以下の2つのキャッシュ機能が提供されている。
クエリキャッシュ
レポートで使用されたクエリの結果をキャッシュして、同じクエリが発行されたら再利用する。
プリフェッチ キャッシュ
レポートからユーザーの行う操作を予測して、操作前にクエリを発行し、そのクエリと結果をキャッシュする。
なお、これらのキャッシュは、ユーザーがいつレポートを開いても迅速に描画できるように、いずれも自動更新される仕組みになっている。