BigQueryとは?

BigQueryは、Google Cloudアーキテクチャの膨大なスケールを活用し、あらゆるクエリを効率的に実行するために必要な数だけノードを使用しながら、何千ものノード間でデータを分散するデータウェアハウスです。個別にマシンやマシン上のスペースを購入したりレンタルする他のデータベース言語とは異なり、使用するのは単一のBigQueryインスタンスのみで、インスタンスの全ユーザーが共有する数千のノードから構成されます。

規模がとても大きいため、BigQueryは比較的短時間でより大きく複雑なクエリを実行できます。その結果、データセットがギガバイトからペタバイトに膨らんだ場合でも、BigQueryは応答性を維持することができます。

BigQueryを選ぶ理由

高速 - BigQuery上のクエリは、データサイズやクエリの複雑さによって遅くなることは決してありません。それは、BigQueryのアーキテクチャが、必要に応じて相当数のノードにワークロードを均等に分散するためです。

スケーラブル - BigQueryは、GoogleのCloud Storage Platform上に構築されています。このプラットフォームは、Googleが処理するクラスタのすべての再プロビジョニングを使用して、ペタバイト規模のクエリをシームレスに拡張するように設計されており、調整の必要はありません。

最小限の管理 - Bigqueryのインスタンス全体がお客様のために管理されているため、BigQueryは、簡単に利用を開始できてメンテナンスも容易です。Google Cloud Web UIを介してデータをアップロードし、クエリを実行するだけのシンプルなステップです。

BigQueryが実際に役立つ事例

増え続ける大量のデータを抱える企業

BigQueryへのデータ読み込みは無料で、データの保存は極めて安価です。これにより、データの急増に直面する企業にとって、BigQueryは魅力的な選択肢となっています。さらに、BigQuery内に保存したり処理できるデータ量には事実上制限がないため、BigQueryでペタバイト規模のデータにクエリを実行することは、メガバイト規模のクエリ並みに簡単です。

DevOpsリソースが限られているチーム

GoogleがBigQueryのすべてのハードウェアとクエリ最適化を処理するため、BigQueryは基本的にメンテナンスを必要としません。お客様はデータを読み込み、クエリを開始するだけです。

ワークロードの増減の差が激しい組織

BigQueryの料金はクエリごとに課金されます。使用した分に対してのみ料金を支払うため、大容量が必要な日から使用量がほとんどない日まで幅がある場合には、BigQueryは最適なオプションと言えます。

利用を決定する前に

料金

BigQueryでは、データ保存に対して少額の料金と、さらにクエリの実行中にスキャンされたデータに基づいて別料金(通常、請求額の大部分)を支払います。つまり、たとえクエリの頻度が低い場合でも、BigQueryに大規模なデータセットを保存するのは比較的安価です。実際の料金は、データの使用により発生します。

BigQueryはクエリの実行前にどの程度のデータがスキャンされるか見積りを提示しますが、この見積りが正確でないために、請求料金が予想外に膨らむこともあります。料金管理機能は、大量のデータをスキャンするクエリや非常に複雑な(つまりより高額な)クエリを誤って実行することを防ぐため、予期せぬ請求を避ける最も確実な方法です。

料金管理

BigQueryの導入を検討する企業が料金モデルに対して持つ懸念の一つに、予測不可能な請求サイクルがあります。これは、サービス料金が使用量に左右されることが理由です。

このため、BigQueryは料金管理という機能をアカウントが選択できるようにしています。この機能は、サービスの利用に伴って毎日処理されるバイト数に対して、あらかじめ定義した割当てを設定します。この制限はプロジェクトレベルで設定したり、または全ユーザーに適用することができます。

定額料金制

予測可能な請求モデルを必要としながら割当ての設定を望まない大口顧客のために、BigQueryは定額料金を提供しています。これは、あらかじめ決まった数のシートを割り当て、このシートには追加料金なしで無制限にクエリを実行できる機能が付与されています。定額料金でシートをさらに追加することもできます。

定額料金を利用する場合でも、データの保存には料金がかかります。定額料金となるのは、データのクエリ実行に関連する料金のみです。

実際のところ定額料金は、データベースに対して大規模で高額なクエリを日常的に大量に実行するユーザーを数多く抱える、大規模エンタープライズアカウントにのみ適しています。

無料トライアル

BigQueryは、Google Cloud Platformの無料枠に含まれています。この無料枠を利用すれば、導入を検討するお客様は12か月の間、300ドル分のGoogle Cloud製品をどれでもご利用いただけます。これは、BigQueryで利用できる毎月無料の1TBのデータ処理と10GBの無料ストレージとは別となります。

BigQueryには、組込み済みの一般公開データセットが多数付いており、サービスの新規ユーザーはただちにアクセスしてサービス機能を試すことができます。これらの公開データセットに含まれるデータの種類は、政府機関のデータ(サンフランシスコ消防署のサービスコール)、エンタープライズデータ (GitHubサイト全体のユーザーアクティビティデータ)からスポーツデータ(メジャーリーグベースボールのデータ)まで、多岐にわたります。

また、以下の記事でBigQueryがLookerとどう連携するかご紹介しています。

BigQueryデータベースのアーキテクチャ

ユーザーが選択する台数のマシンで構成される専用インスタンスをレンタルまたは購入できる他のデータベースサービスとは異なり、BigQueryは数百、数千ものマシンによりサポートされる単一の巨大なインスタンスです。

BigQuery内の個々のマシンを所有したり、それらにアクセスする個人アカウントは存在しないため、このことは重要です。それどころか、インスタンスの全体的な処理能力は、クエリが実行されるたびに一度につき数秒単位で貸し出されます(BigQueryと別のタイプのMPPデータベース間の料金モデルの差異に反映される機能の違い)。BigQueryには、クエリ専用のインスタンス全体がいつでも用意されているため、規模や複雑さにかかわらず、クエリは迅速かつ確実に返されます。

Google Cloudチームは、 BigQueryのアーキテクチャを詳しく説明する記事を投稿し、異なる技術がどのように相互に作用し、エンドユーザーのためにシームレスなエクスペリエンスを生み出しているか解説しています。この記事で特に重要なのは、BigQueryスタック内のほとんどのソフトウェアは、Googleがその他のさまざまなサービス(Gmail、YouTube、検索など)に使用するテクノロジーと同じという点です。つまりGoogleは一企業として、BigQueryのデータスタック内のソフトウェアのパフォーマンスと機能を継続的に向上させるべく前向きに取り組んでいるのです。

データの種類

BigQueryは、CSV、JSON、Avro、Cloud Datastoreバックアップに対応しています。また、Google Sheetsをテーブルとして処理できます。BigQueryでサポートされるデータ形式について詳しくは、こちらをご覧ください。

BigQueryの興味深い機能の一つに、テーブル内でネストされた記録のサポートがあります。これはつまり、基本的にBigQuery内で事前に結合されたテーブルです。ネストされた記録を含むテーブルは、概念的な階層化データ(注文と商品またはセッションとページビューなど)に最適で、データのモデル化に何通りかの興味深い新たな方法を提示します。BigQueryのテーブル内にネストされた記録を作成する方法について、こちらでLookerの共同創設者兼CTOであるLloyd Tabbが説明しています。

推奨される最大データサイズ

BigQueryは、ペタバイト規模のデータを1つのクエリでスムーズに処理しますが、BigQueryのアーキテクチャ全体は無限の拡張性に近づくよう設計されています。ほとんどのBigQueryプロジェクトには2,000もの 「スロット」が割り当てられているため、大規模なテーブルのスキャンは難なく処理できますが、大規模なテーブル結合を伴う複雑なクエリを実行する際は、リソースの制約に直面することもあります。

BigQueryの実装

BigQueryでは自分でマシンを管理する必要がないため、スキーマの設計に関して意思決定を下すこともありません。BigQueryデータベースサービスの利用を開始するのはとても簡単です。Google Cloud Platformでアカウントを作成し、ウェブUIを介してテーブルを読み込んでクエリを実行するだけです。

新規データの処理

データは、CSV、JSON、Avro、Google Cloud Datastoreバックアップファイルなど、複数のソース形式から読み込み可能です。

ETLパイプラインの構築に関するサポートは、BigQueryと統合されているETLパートナー(FivetranStitchMatillionなど)をご利用ください。

メンテナンス

Googleがお客様に代わってほぼすべてを管理するため、BigQueryはほとんどメンテナンスが要りません。巨大な単一のインスタンスを共有することから、データサイズに応じたクラスタの最適化や、クエリの実行速度を調節するためにデータを手動で分散し直したり、なるべく最良の結果を得るためにクエリプランを微調整する必要はありません。

しかし、クエリの料金を削減するための選択肢もあります。具体的には、複数の方法のうちの一つとしてテーブルのパーティション分割があります。

アナリティクスを快適に

ビジネスインテリジェンス、ビッグデータ分析、顧客の360°ビュー。
Lookerはお客様のどんなニーズにもお応えします。当社のデータエキスパートにご相談ください。

デモをリクエスト