BigQuery API クライアント ライブラリ

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

このページでは、BigQuery API の Cloud クライアント ライブラリの使用方法を示します。以前の Google API クライアント ライブラリを含む、Cloud APIs のクライアント ライブラリの詳細については、クライアント ライブラリの説明をご覧ください。

クライアント ライブラリをインストールする


詳細については、C# 開発環境の設定をご覧ください。

Install-Package Google.Cloud.BigQuery.V2 -Pre


詳細については、Go 開発環境の設定をご覧ください。

go get


詳細については、Java 開発環境の設定をご覧ください。

Maven を使用している場合は、次のものを pom.xml ファイルに追加します。BOM の詳細については、Google Cloud Platform ライブラリ BOM をご覧ください。

<!--  Using libraries-bom to manage versions.
See -->


Gradle を使用している場合は、次のものを依存関係に追加します。

implementation platform('')

implementation ''

sbt を使用している場合は、次のものを依存関係に追加します。

libraryDependencies += "" % "google-cloud-bigquery" % "2.20.1"

Visual Studio Code、IntelliJ または Eclipse を使用している場合は、次の IDE プラグインでプロジェクトにクライアント ライブラリを追加できます。

プラグインでは、サービス アカウントのキー管理などの追加機能も提供されます。詳細は各プラグインのドキュメントをご覧ください。


詳細については、Node.js 開発環境の設定をご覧ください。

npm install --save @google-cloud/bigquery


詳細については、Google Cloud での PHP の使用をご覧ください。

composer require google/cloud-bigquery


詳細については、Python 開発環境の設定をご覧ください。

pip install --upgrade google-cloud-bigquery


詳細については、Ruby 開発環境の設定をご覧ください。

gem install google-cloud-bigquery


クライアント ライブラリを使用する場合は、アプリケーションのデフォルト認証情報(ADC)を使用して認証を行います。ADC の設定については、アプリケーションのデフォルト認証情報に認証情報を提供するをご覧ください。クライアント ライブラリで ADC を使用する方法については、クライアント ライブラリを使用して認証するをご覧ください。

クライアント ライブラリの使用

次の例は、クライアントを初期化し、BigQuery API 一般公開データセットに対してクエリを実行する方法を示しています。


このサンプルを試す前に、BigQuery API クイックスタート: クライアント ライブラリの使用C# の手順に沿って設定を行ってください。詳細については、BigQuery API の C# API リファレンス ドキュメントをご覧ください。

using Google.Cloud.BigQuery.V2;
using System;

public class BigQueryQuery
    public void Query(
        string projectId = "your-project-id"
        BigQueryClient client = BigQueryClient.Create(projectId);
        string query = @"
            SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013`
            WHERE state = 'TX'
            LIMIT 100";
        BigQueryJob job = client.CreateQueryJob(
            sql: query,
            parameters: null,
            options: new QueryOptions { UseQueryCache = false });
        // Wait for the job to complete.
        job = job.PollUntilCompleted().ThrowOnAnyError();
        // Display the results
        foreach (BigQueryRow row in client.GetQueryResults(job.Reference))


このサンプルを試す前に、BigQuery API クイックスタート: クライアント ライブラリの使用Go の手順に沿って設定を行ってください。詳細については、BigQuery API の Go API リファレンス ドキュメントをご覧ください。

import (


// queryBasic demonstrates issuing a query and reading results.
func queryBasic(w io.Writer, projectID string) error {
	// projectID := "my-project-id"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	defer client.Close()

	q := client.Query(
		"SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013` " +
			"WHERE state = \"TX\" " +
			"LIMIT 100")
	// Location must match that of the dataset(s) referenced in the query.
	q.Location = "US"
	// Run the query and print results when the query job is completed.
	job, err := q.Run(ctx)
	if err != nil {
		return err
	status, err := job.Wait(ctx)
	if err != nil {
		return err
	if err := status.Err(); err != nil {
		return err
	it, err := job.Read(ctx)
	for {
		var row []bigquery.Value
		err := it.Next(&row)
		if err == iterator.Done {
		if err != nil {
			return err
		fmt.Fprintln(w, row)
	return nil


このサンプルを試す前に、BigQuery API クイックスタート: クライアント ライブラリの使用Java の手順に沿って設定を行ってください。詳細については、BigQuery API の Java API リファレンス ドキュメントをご覧ください。


// Sample to query in a table
public class Query {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String datasetName = "MY_DATASET_NAME";
    String tableName = "MY_TABLE_NAME";
    String query =
        "SELECT name, SUM(number) as total_people\n"
            + " FROM `"
            + projectId
            + "."
            + datasetName
            + "."
            + tableName
            + "`"
            + " WHERE state = 'TX'"
            + " GROUP BY name, state"
            + " ORDER BY total_people DESC"
            + " LIMIT 20";

  public static void query(String query) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build();

      TableResult results = bigquery.query(queryConfig);

          .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString())));

      System.out.println("Query performed successfully.");
    } catch (BigQueryException | InterruptedException e) {
      System.out.println("Query not performed \n" + e.toString());


このサンプルを試す前に、BigQuery API クイックスタート: クライアント ライブラリの使用Node.js の手順に沿って設定を行ってください。詳細については、BigQuery API の Node.js API リファレンス ドキュメントをご覧ください。

// Import the Google Cloud client library using default credentials
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();
async function query() {
  // Queries the U.S. given names dataset for the state of Texas.

  const query = `SELECT name
    FROM \`bigquery-public-data.usa_names.usa_1910_2013\`
    WHERE state = 'TX'
    LIMIT 100`;

  // For all options, see
  const options = {
    query: query,
    // Location must match that of the dataset(s) referenced in the query.
    location: 'US',

  // Run the query as a job
  const [job] = await bigquery.createQueryJob(options);
  console.log(`Job ${} started.`);

  // Wait for the query to finish
  const [rows] = await job.getQueryResults();

  // Print the results
  rows.forEach(row => console.log(row));


このサンプルを試す前に、BigQuery API クイックスタート: クライアント ライブラリの使用PHP の手順に沿って設定を行ってください。詳細については、BigQuery API の PHP API リファレンス ドキュメントをご覧ください。

use Google\Cloud\BigQuery\BigQueryClient;
use Google\Cloud\Core\ExponentialBackoff;

/** Uncomment and populate these variables in your code */
// $projectId = 'The Google project ID';
// $query = 'SELECT id, view_count FROM `bigquery-public-data.stackoverflow.posts_questions`';

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
$jobConfig = $bigQuery->query($query);
$job = $bigQuery->startQuery($jobConfig);

$backoff = new ExponentialBackoff(10);
$backoff->execute(function () use ($job) {
    print('Waiting for job to complete' . PHP_EOL);
    if (!$job->isComplete()) {
        throw new Exception('Job has not yet completed', 500);
$queryResults = $job->queryResults();

$i = 0;
foreach ($queryResults as $row) {
    printf('--- Row %s ---' . PHP_EOL, ++$i);
    foreach ($row as $column => $value) {
        printf('%s: %s' . PHP_EOL, $column, json_encode($value));
printf('Found %s row(s)' . PHP_EOL, $i);


このサンプルを試す前に、BigQuery API クイックスタート: クライアント ライブラリの使用Python の手順に沿って設定を行ってください。詳細については、BigQuery API の Python API リファレンス ドキュメントをご覧ください。

from import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

query = """
    SELECT name, SUM(number) as total_people
    FROM `bigquery-public-data.usa_names.usa_1910_2013`
    WHERE state = 'TX'
    GROUP BY name, state
    ORDER BY total_people DESC
    LIMIT 20
query_job = client.query(query)  # Make an API request.

print("The query data:")
for row in query_job:
    # Row values can be accessed by field name or index.
    print("name={}, count={}".format(row[0], row["total_people"]))


このサンプルを試す前に、BigQuery API クイックスタート: クライアント ライブラリの使用Ruby の手順に沿って設定を行ってください。詳細については、BigQuery API の Ruby API リファレンス ドキュメントをご覧ください。

require "google/cloud/bigquery"

def query
  bigquery =
  sql = "SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013` " \
        "WHERE state = 'TX' " \
        "LIMIT 100"

  # Location must match that of the dataset(s) referenced in the query.
  results = bigquery.query sql do |config|
    config.location = "US"

  results.each do |row|
    puts row.inspect


サードパーティの BigQuery API クライアント ライブラリ

上記の表の Google がサポートするライブラリに加えて、サードパーティが提供する一連のライブラリも使用できます。

言語 ライブラリ
Python pandas-gbq移行ガイド
R bigrqueryBigQueryR
Scala spark-bigquery-connector



Google Cloud を初めて使用される方は、アカウントを作成して、実際のシナリオでの BigQuery のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

BigQuery の無料トライアル