悩めるWEB担当者様のための最新ノウハウをお届け

安く、簡単にビッグデータを解析できちゃう!?Googleが提供するBigQuery(ビッククエリ) とは

皆さんは、BigQuery(ビッククエリ)というシステムをご存知ですか?

BigQueryとは、Google Cloud Platformが提供するビッグデータ解析サービスです。
「ビッグデータ解析サービス/ソフトウェア」はたくさん存在しますが、BigQueryは数TB(テラバイト)あるいはPB(ペタバイト)に及ぶデータセットに対し、SQL(SQLとはデータベース言語であり、データベースを管理するソフトウェアを操作・制御することが目的です)に似たクエリ(クエリとは、データベースからデータを抽出したり操作したりといった処理を行うための命令のことです)を実行し、数秒あるいは数十秒程度で結果を返すというサービスです。

今回、BigQueryというサービス が気になる人のために、概要、簡単な使い方を詳しく説明していきます。

BigQueryの概要

BigQueryとは?

そもそもBigQueryはグーグル社内で使われていたDremelと呼ばれる社内解析ツールをサービスとして公開したものです。Dremelは2010年に論文が公開され、クローズドにリリースされているサービスです。
大規模データに対してアドホックなクエリを実行するためのサービスであり、Google社内では非エンジニアも使用しています。
Dremelは、SQL さえ覚えれば大量のデータを使って集計作業や解析作業を行うことが可能です。
BigQueryはそんなDremelをGoogle社員以外でも誰もが使えるようにしたサービスです。大量のデータを解析することができる出来るのは、データ処理が高速であるからです。

では、なぜBigQueryはデータ処理が高速なのでしょうか?

高速処理の理由

BigQueryのデータ処理が高速な理由は、何千という数のサーバー群でクエリを並列に処理することによって全体の処理効率向上を図っているからです。そして、BigQueryには2つの仕組みがあることで、この並列処理を実現させています。2つの仕組みとは、カラム型データストアとツリーアーキテクチャです。

それぞれ簡単に説明していきましょう!

カラム型データストア

一般的なRDMBMS(Relational Database Management System)では通常行単位にデータを保持します。RDMBMSとは、一件のデータを複数の属性の値の組みとして表現し、組みを列挙する事でデータを格納していく方式であるリレーショナルデータベースを管理するための総称です。これに対して、BigQueryは列ごとにまとめて保存を行います。それによりBigQueryはトラフィックの最小化と高い圧縮率を可能にし、このデータ保存形式がクエリ実行時の高速データ処理を実現しています。簡単にいうと、カラム型データベースは列を抜き出して操作する集計処理が得意ということです。例えば、IBMが買収したNetezzaなどがカラム型データベースの機能を備えてます。

ツリーアーキテクチャ

BigQueryはツリーアーキテクチャによって分散処理(分散処理とは1つの処理を分散して行う方式)を行っています。ツリーアーキテクチャとは、クライアントからクエリを受け取るルートサーバから、実際にクエリ処理を実行する多数のリーフサーバーに対して、クエリがツリー構造で広がっていくものです。簡単に言うとツリー式で分散処理する構造になっています。これにより、大規模分散処理を実現しています。

以上2つの仕組みが、BigQueryのデータ処理を高速にしている理由です。

では、BigQueryを利用するには、どれくらいの金額が必要なのでしょうか?

BigQueryの料金

BigQueryを使用するにあたって、やはり気になるのが料金ですよね。
追加料金がかかるサービスは合計8つあります。表にまとめてみましたのでご覧ください。

サービス名 料金
アクティブストレージ 毎月10GBまで無料で、以降$0.02/GBかかります。
長期保存 毎月10GBまで無料で、以降$0.01/GBかかります。
BigQuery Storage API $1.10/TB
ストーリミング挿入 挿入に成功した行が対象課金となり、最小サイズ1KBで各行が計算されます。料金が$0.01/200MBかかります。
クエリ(オンデマンド) 毎月1TBまで無料で、以降$5.00/TB
クエリ(Flex Slots) 追加スロットは500スロット単位で購入でき$15,000/500slots
クエリ(月定額) 追加スロットは500スロット単位で購入でき$10,000/500slots
クエリ(年定額) 追加スロットは500スロット単位で購入でき$8,500/500slots

アクティブストレージとは、クラウドストレージサービスへのファイルのアップロードとそれらのファイルをActive Recordに添付することを容易にします。また、BigQuery Storage APIは大量のデータを高速で取得、処理できる内容となっています。

他社(Amazon Redshiftなど)のサービスとの違い

実は、BigQuery以外にもいくつか似たようなサービスが存在します。
代表的なものは、以下のものです。

  • Amazon Redshift
  • Azure EventHubs
  • Amazon Kinesis

Amazon Redshiftとは、AWSが提供するデータウェアハウスサービスです。データウェアサービス(DWH)というのは、様々なデータ源からデータを収集・統合・蓄積し、分析の為保管しておくサービスです。このAmazon Redshiftは比較的BigQueryに近い領域です。BigQueryが、カラムのデータ型を定義して、テーブルにデータを挿入しさえすれば、その後の管理がほぼ不要であるのに対し、Redshiftではカラムの圧縮型を事前に定義しておく必要があり、データノードのサイジングを管理するなどの運用作業が発生する点が異なります。

Azure EventHubsやAmazon KinesisはBigQueryとは違った特徴のサービスです。これらはバッチやアドホックな処理はできませんが、大量に流れてくるデータのストリームに対してリアルタイムの処理が可能です。

他社のサービスと比較して、状況にあったものを選びましょう。

実際に使ってみよう!

BigQueryは有料のサービスであるが今回は無料でできる出来る範囲で使ってましょう。
*Googleやその他のユーザーが公開しているパブリックなデーターセットに対して、その枠内のクエリを実行する場合はクレジットカードの登録はいりません。それ以外の操作については、無料枠の範囲であってもクレジットカードの登録が必要です。
注意しましょう。

使い方

①まず必要なのはGoogleアカウントです。持っていない人はGoogleアカウントの作成から始めましょう。

②Googleアカウントにブラウザでログインをしたら、GoogleCloudのコンソールにアクセスしましょう!初めてアクセスした人は、プロジェクトの作成を求められるはずです。
好きなプロジェクト名で良いので名前をつけましょう。04

(図1)

③プロジェクトの作成後、(図2)の画面になるはずです。05

(図2)

④図2の画面のビッグデータの下にあるBigQueryという項目のリンクを開くと、(図3)の画面が開きます。
これがBigQueryのWebコンソールです。07_s

(図3)

⑤(図3)の左下にあるpublicdata.samplesというのがGoogleが提供しているパブリックなデータセットのサンプルです。左側の三角マークを選択して展開すると、テーブル一覧(図4)が表示されます。08

(図4)

⑥BigQueryでは、RDBと同じよにスキーマを持ったテーブルが存在し、複数のテーブルをまとめる単位としてデータセットが存在します。
このテーブルのうち、wikipediaを選択してみましょう(図5)。09_s

(図5)

このようにテーブルのスキーマが表示されます。

⑦次に、右上に出てきたタブでDetailsを選択してみましょう(図6)。

10_s

(図6)

テーブルのサイズなどの詳細情報、入っているデータのサンプルが表示されます。

⑧(図6)のタブの隣にあるQuery Tableタブを選択してNew Query 画面を表示しそこにクエリを表示してみましょう(図7)。New Query画面では、すでにクエリの大部分がが入力されていますが、このままでは、このクエリはエラーになります。入力欄の右下にある赤い!アイコンを選択すると、クエリのエラー内容が表示されます。11_s

(図7)

このエラーを回避するために今回は、SELECTFROMの間にCOUNT(*)と入力しましょう。緑色の帯になって、クエリがスキャンするデータ量が表示される。WHERE句などの条件がない場合の、COUNT(*)はスキャンするデータ量が0B(0バイト)という形になっている。(つまり課金対象となるクエリ時のデータスキャン量の加算されない。)

構文にエラーがないことが分かったのでRUNQUERYを押して、そのクエリを実行してみましょう。クエリの結果が下の欄に表示されます(図8)。12_s

(図8)

 

どのように使われているのか

実際にBigQueryはどのように使われているのでしょうか?

例えば、BigQueryと国税庁が提供しているオープンデータを用いて東京都の97万の法人を区ごとにカウントし、どの区がいくつ法人があるかなどをわずか30秒程度で表示させることができます。
また、横浜市にある会社の数などをデータを用いることによって数秒で表示させることもできます。

まとめ

今回は、BigQueryの基礎知識と簡単な使い方をご紹介しました。
なんか難しそう、使うことができるかな、など思っている方も多いかもしれません。
しかし実際は、とても簡単にビックデータの解析ができます。

今後使うかもしれない、興味を持ったと言う人は是非この記事を参考にしてBigQueryを始めてみてください。

【無料】アクセス解析セミナー、動画公開中!

Webサイトで何かしらの目標達成を目指すためには、アクセス解析は必須です。
しかし、そうした知識・ノウハウを得られる場は限られています。

株式会社デジタルアイデンティティでは、業務で蓄積した知識・ノウハウを、過去に開催したセミナー動画を通じて無料で公開しています。

アクセス解析は簡単ではないですが、決して特別な技術ではありません。
ぜひ、セミナー動画を通じて、学んでみていただければと思います。

【無料】公開中の無料動画セミナー

  • GA4セミナー
    これからアクセス解析を始めたい、という方にオススメ!
    アクセス解析の定番ツール、「Google Analytics4」の初期設定や使い方、旧GAとの違いなどを解説しています。
  • カスタマージャーニーセミナー
    顧客の商品購入までの動きを見える化したい方にオススメ!
    カスタマージャーニーマップの作成から運用まで、顧客分析に重要なカスタマージャーニーマップについて、実際の活用事例を通してわかりやすく解説します。
  • アトリビューション分析セミナー
    複数の広告施策の評価方法がわからない、という方にオススメ!
    広告の目的別評価指標の立て方、広告効果の可視化などに加え、無駄な工数やコストの削減方法まで、より実践的な内容のセミナーです

アクセス解析以外にも、SEOセミナーやウェブアクセシビリティセミナーなど様々なセミナーを開催していますので、ぜひ一度ご確認ください。

開催中のセミナー一覧はこちらから

関連記事

Keywords