このドキュメントでは、BigQuery でのデータの照会の概要を示します。
クエリの種類
BigQuery にデータを読み込んだ後に、テーブル内のデータをクエリできます。BigQuery は次の 2 種類のクエリをサポートします。
デフォルトで、BigQuery はインタラクティブ クエリを実行します。つまり、クエリはすぐに実行されます。
BigQuery ではバッチクエリも提供されています。BigQuery はユーザーに代わって各バッチクエリをキューに格納し、アイドル状態のリソースが使用可能になると直ちに(通常は数分以内に)クエリを開始します。
クエリを実行する
以下を使用して、インタラクティブ クエリとバッチクエリを実行できます。
- GCP Console 内のクエリ エディター
- BigQuery ウェブ UI の [Compose Query] オプション
- BigQuery コマンドライン ツールの
bq query
コマンド - プログラムによって jobs.query メソッドまたはクエリ形式の jobs.insert メソッドを呼び出す BigQuery REST API
- BigQuery クライアント ライブラリ
クエリジョブ
ジョブとは、データの読み込み、データのエクスポート、データのクエリ、データのコピーなど、BigQuery がユーザーに代わって実行するアクションのことです。
GCP Console、従来の BigQuery ウェブ UI、CLI を使用してデータの読み込み、エクスポート、クエリ、コピーを行う際に、ジョブリソースが自動的に作成され、スケジュールが設定されて実行されます。また、読み込み、エクスポート、クエリ、コピーのジョブをプログラムで作成することもできます。プログラムでジョブを作成すると、BigQuery によってジョブがスケジュールされ、実行されます。
ジョブの実行には長い時間がかかる場合があるため、ジョブは非同期で実行され、ステータスをポーリングできます。リソースの一覧表示やメタデータの取得など、短時間のアクションは、ジョブリソースでは管理されません。
クエリの保存と共有
BigQuery を使用すると、クエリを保存して、他のユーザーとクエリを共有できます。
クエリを保存したら、それを非公開にする(自分にしか見えない)、プロジェクト レベルで共有する(プロジェクト メンバーは見える)、または一般公開する(誰でも表示できる)ことができます。詳細については、クエリの保存と共有をご覧ください。
クエリの料金
クエリの料金は、SQL コマンドとユーザー定義関数の実行にかかる費用を意味します。BigQuery では、1 つの指標(処理されたバイト数)に基づいてクエリの料金が計算されます。データを BigQuery に保存するか、Cloud Storage、Google ドライブ、Cloud Bigtable などの外部データソースに保存するかに関係なく、処理されたバイト数に基づいて料金が請求されます。
データ処理容量は 1 か月あたり 1 TB まで無料です(請求先アカウントごと)。データ処理容量が月あたり 1 TB を超えると、それ以降はその月の終わりまでオンデマンド料金モデルに従って課金されます。
BigQuery では、大容量をご利用のお客様や企業のお客様で、毎月一定料金でのクエリの使用をご希望のお客様向けに定額料金をご用意しています。詳細については、クエリの料金をご覧ください。
割り当てとクエリ費用を抑える
BigQuery は、実行中のクエリに対してプロジェクト レベルの割り当てを強制します。クエリ割り当ての詳細については、割り当てポリシーをご覧ください。
クエリ費用を抑えるために、BigQuery は、カスタム割り当てと請求アラートを含むいくつかのオプションを提供しています。詳細については、カスタムコスト管理の作成をご覧ください。
また、監査ログを使用してクエリの動作を分析し、Stackdriver Monitoring を使用してクエリ指標を表示することもできます。
次のステップ
- パーティション分割テーブル内のデータのクエリに関する詳細は、パーティション分割テーブルのクエリをご覧ください。
- クエリの実行方法については、インタラクティブ クエリとバッチクエリの実行をご覧ください。
- クエリ出力の管理に関する詳細は、クエリ結果の書き込みをご覧ください。
- クエリ キャッシュの使用方法については、キャッシュに保存されているクエリ結果を使用するをご覧ください。
- ユーザー入力を使用して作成されたクエリの実行方法に関する詳細は、パラメータ化クエリの実行をご覧ください。
- クエリの保存と共有の方法については、クエリの保存と共有をご覧ください。
- クエリプランの説明の読み取りに関する詳細は、クエリプランの説明の使用をご覧ください。
- 繰り返し実行するクエリのスケジューリング方法については、クエリのスケジューリングをご覧ください。