コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

BigQuery 分析の概要

このドキュメントでは、BigQuery がクエリを処理する方法と、データ分析に役立つ機能の概要を説明します。

BigQuery はテラバイト規模のデータ(秒単位)とペタバイト規模のデータ(数分)を含む大規模なデータセットに対して分析クエリを実行するように最適化されています。その機能とクエリの処理方法を理解すると、データ分析への投資を最大限に活用できます。

分析ワークフロー

BigQuery は、次のようなデータ分析ワークフローをサポートしています。

  • アドホック分析。BigQuery では、アドホック分析をサポートするために、BigQuery の SQL 言語である Google 標準 SQL が使用されます。Google Cloud コンソール上で、または BigQuery と統合するサードパーティ ツールを通じてクエリを実行できます。

  • 地理空間分析。BigQuery は、地理データ型と Google 標準 SQL の地理関数を使用して、地理空間データを分析および可視化できます。これらのデータ型と関数の詳細については、地理空間分析の概要をご覧ください。

  • 機械学習。BigQuery ML では、Google 標準 SQL クエリを使用して、BigQuery で機械学習(ML)モデルを作成して実行できます。

  • ビジネス インテリジェンス。BigQuery BI Engine は、パフォーマンス、スケーラビリティ、セキュリティ、データの鮮度を損なうことなく、高機能かつインタラクティブなダッシュボードとレポートを作成できます。

Queries

BigQuery で分析を行う際の基本単位は SQL クエリです。BigQuery には、Google 標準 SQL とレガシー SQL という 2 つの SQL 言語があります。Google 標準 SQL が推奨される言語です。SQL:2011 をサポートし、地理空間分析や ML をサポートする拡張機能が含まれています。

以下のセクションでは、BigQuery がデータクエリをサポートし、実行する方法について説明します。

データソース

BigQuery では、次のタイプのデータソースをクエリできます。

  • BigQuery に格納されるデータ。BigQuery にデータを読み込んで分析を行うことができます。データ操作言語(DML)ステートメントを使用するか、クエリ結果をテーブルに書き込むことで、データを生成することもできます。

  • 外部データ。他の Google Cloud ストレージ サービス(Cloud Storage など)やデータベース サービス(Cloud Spanner や Cloud SQL など)に対してクエリを実行できます。外部ソースとの接続を設定する方法については、外部データソースの概要をご覧ください。

  • マルチクラウド データ。AWS や Azure など、他のパブリック クラウドに保存されているデータに対してクエリを実行できます。Amazon S3 または Azure blob ストレージへの接続を設定する方法については、BigQuery Omni の概要をご覧ください。

  • 公開データセット。独自のデータがない場合は、一般公開データセット マーケットプレイスで入手可能なデータセットを分析できます。

クエリジョブ

ジョブとは、データの読み込みデータのエクスポートデータのクエリデータのコピーなど、BigQuery がユーザーに代わって実行するアクションのことです。

Google Cloud コンソールまたは bq ツールを使用してこれらのジョブのいずれかを実行すると、ジョブリソースが自動的に作成され、スケジュールが設定されて実行されます。また、読み込み、エクスポート、クエリ、コピーのジョブをプログラムで作成することもできます。プログラムでジョブを作成すると、BigQuery によってジョブがスケジュールされ、実行されます。

ジョブの完了には長時間かかる場合があるため、ジョブは非同期で実行され、ステータスをポーリングできます。リソースの一覧表示やメタデータの取得など、短時間のアクションは、ジョブリソースでは管理されません。

クエリの種類

BigQuery にデータを読み込んだ後、次のいずれかのクエリジョブのタイプを使用してデータをクエリできます。

  • インタラクティブ クエリジョブデフォルトでは、BigQuery はインタラクティブ(オンデマンド)クエリジョブを可能な限り早く実行します。
  • バッチクエリのジョブBigQuery はこれらのジョブを使用して、ユーザーに代わって各バッチクエリをキューに格納し、アイドル状態のリソースが使用可能になると(通常は数分以内)直ちにクエリを開始します。

次の方法で、インタラクティブ クエリジョブまたはバッチクエリのジョブを実行できます。

保存された共有クエリ

BigQuery では、クエリの保存や、他のユーザーとのクエリの共有が可能です。

クエリを保存する際には、非公開(自分にのみ表示可能)、プロジェクト レベルで共有(特定のプリンシパルに表示可能)、一般公開(任意のユーザーに表示可能)のいずれかを選択できます。詳細については、クエリの保存と共有をご覧ください。

BigQuery によるクエリの処理方法

BigQuery がクエリを実行すると、いくつかのプロセスが発生します。

  • 実行ツリー。クエリを実行すると、BigQuery は実行ツリーを生成し、クエリをいくつかのステージに分割します。これらのステージには、並行して実行できるステップが含まれています。

  • シャッフル ティア。ステージは、高速分散シャッフル ティアを使用して、ステージのワーカーから生成された中間データを格納し、相互に通信を行います。可能な場合、シャッフル ティアでは、ペタビット ネットワークや RAM などのテクノロジーを活用して、ワーカーノードにデータをすばやく移動します。

  • クエリプラン。BigQuery は、クエリの実行に必要なすべての情報を取得したら、クエリプランを生成します。このプランは Google Cloud Console で確認し、クエリのパフォーマンスのトラブルシューティングや最適化に使用できます。

  • クエリのモニタリングと動的な計画。クエリプランの作業自体を実行するワーカーに加え、別のワーカーがシステム全体の作業の進捗を監視、監督します。クエリの進行状況に応じて、BigQuery はクエリステージを動的に調整し、さまざまな段階の結果に合わせます。

  • クエリ結果。クエリが完了すると、BigQuery が結果を永続ストレージに書き込み、ユーザーに返します。この設計により、BigQuery は、次にクエリを実行したときにキャッシュに保存された結果を提供できます。

クエリの同時実行とパフォーマンス

同じデータに対して繰り返し実行されるクエリのパフォーマンスは、場合によってはミリ秒になる場合があります。BigQuery 環境の共有特性のために、またはクエリの実行中に BigQuery がクエリプランを動的に調整するため、パフォーマンスの変動が生じることがあります。多くのクエリが同時に実行される一般的なビジーシステムでは、BigQuery は複数のプロセスを使用して、クエリのパフォーマンスのばらつきを緩和します。

  • BigQuery は多くのクエリを並列で実行するため、クエリをキューに入れる必要はほとんどありません。並列で実行されるデフォルトのクエリの最大数は 100 です。

    ビジーなシステムでは、キューがクエリに滞在する時間が不明確であるため、キューはパフォーマンスが予測しにくい主要な原因となります。キュー内のクエリの時間は、クエリ自体の品質よりも、実行中のまたはキュー内のその他のクエリにより大きく依存する可能性があります。

  • クエリが開始し完了すると、BigQuery は新しいクエリと実行中のクエリの間でリソースを適正に再分散します。このプロセスにより、クエリのパフォーマンスは、クエリが送信された順序ではなく、特定の時点で実行されるクエリの数に依存します。

クエリの最適化

クエリが完了すると、Google Cloud コンソールでクエリプランを表示できます。INFORMATION_SCHEMA.JOBS* ビューjobs.get REST API メソッドを使用して、実行の詳細をリクエストすることもできます。

クエリプランには、クエリのステージとステップの詳細が含まれます。これらの詳細は、クエリのパフォーマンスを向上させる方法の特定に役立ちます。たとえば、あるステージの書き込み出力が他のステージよりもはるかに多い場合は、クエリの早い段階でフィルタリングする必要がある可能性があります。

クエリプランとクエリの最適化の詳細については、次のリソースをご覧ください。

クエリのモニタリング

モニタリングとロギングは、クラウドで信頼性の高いアプリケーションを実行するために不可欠です。ワークロードが大きい場合やミッション クリティカルな場合、BigQuery ワークロードも例外ではありません。BigQuery には、BigQuery の使用状況のモニタリングに役立つさまざまな指標、ログ、メタデータ ビューが用意されています。

詳しくは、次のリソースをご覧ください。

クエリの料金

BigQuery には、分析用の次の 2 つの料金モデルが用意されています。

  • オンデマンド料金 クエリでスキャンされたデータに対して料金が発生します。 プロジェクトごとに固定のクエリ処理容量があり、費用は処理されたバイト数に基づきます。
  • 定額料金専用のクエリ処理容量を購入します。

2 つの料金モデルと、定額料金の予約について詳しくは、予約の概要をご覧ください。

割り当てとクエリ費用を抑える

BigQuery は、実行中のクエリに対してプロジェクト レベルの割り当てを強制します。クエリ割り当ての詳細については、割り当てと上限をご覧ください。

クエリ費用を抑えるために、BigQuery は、カスタム割り当てと請求アラートを含むいくつかのオプションを提供しています。詳細については、カスタムコスト管理の作成をご覧ください。

データ分析機能

BigQuery は記述的分析と予測的分析の両方をサポートしています。データを直接照会して統計的質問に答えるには、Google Cloud コンソールを使用します。傾向や異常など、データを視覚的に探索するには、BigQuery と統合される TableauLooker などのツールを使用できます。

分析ツールの統合

BigQuery でクエリを実行するだけでなく、次のような BigQuery と統合するさまざまな分析ツールとビジネス インテリジェンス ツールを使用してデータを分析できます。

  • Looker Studio。クエリを実行した後、Google Cloud コンソールで BigQuery から直接 Looker Studio を起動できます。Looker Studio では、可視化を行い、クエリから返されるデータを調べることができます。Looker Studio の詳細については、Looker Studio の概要をご覧ください。

  • コネクテッド シート。コンソールで BigQuery から直接コネクテッド シートを起動することもできます。コネクテッド シートは、リクエストまたは定義済みのスケジュールに従って、BigQuery クエリをユーザーに代わって実行します。クエリの結果はスプレッドシートに保存され、分析と共有に利用できます。コネクテッド シートの詳細については、コネクテッド シートの使用をご覧ください。

  • Looker。Looker は、ビジネス インテリジェンス、データ アプリケーション、組み込み型アナリティクスのためのエンタープライズ プラットフォームです。Looker プラットフォームは、BigQuery を含む多数のデータストアに対応しています。Looker を BigQuery に接続する方法については、Looker の使用をご覧ください。

サードパーティ製ツールの統合

BigQuery と連携するいくつかのサードパーティ分析ツール。たとえば、Tableau を BigQuery データに接続し、その可視化ツールを使用して分析を共有できます。サードパーティ ツールを使用する際の考慮事項の詳細については、サードパーティ ツールの統合をご覧ください。

ODBC ドライバと JDBC ドライバが利用可能です。これらのドライバを使用して、アプリケーションを BigQuery と統合できます。このドライバの目的は、既存のツールとインフラストラクチャで BigQuery の機能を活用できるようにすることです。最新リリースと既知の問題については、BigQuery 用の ODBC ドライバと JDBC ドライバをご覧ください。

pandas-gbq などの pandas ライブラリを使用すると、Jupyter ノートブックで BigQuery データを操作できます。このライブラリの詳細、BigQuery Python クライアント ライブラリを使用する場合との違いについては、pandas-gbqとの比較をご覧ください。

その他のノートブックと分析ツールとともに BigQuery を使用することもできます。詳細しくは、プログラムによる分析ツールをご覧ください。

BigQuery 分析とさまざまな技術パートナーの一覧については、BigQuery プロダクト ページのパートナーのリストをご覧ください。

次のステップ