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

v1-rev71-1.25.0 1.2.0

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

クライアント ライブラリのインストール


詳細については、C# 開発環境の設定をご覧ください。
Install-Package Google.Cloud.BigQuery.V2 -Pre


go get -u


詳細については、Java 開発環境の設定をご覧ください。 Maven を使用している場合は、次のものを pom.xml ファイルに追加します。

Gradle を使用している場合は、次のものを依存関係に追加します。
compile ''
SBT を使用している場合は、次のものを依存関係に追加します。
libraryDependencies += "" % "google-cloud-bigquery" % "1.107.0"

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

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


詳細については、Node.js 開発環境の設定をご覧ください。
npm install --save @google-cloud/bigquery


composer require google/cloud-bigquery


詳細については、Python 開発環境の設定をご覧ください。
pip install --upgrade google-cloud-bigquery


詳細については、Ruby 開発環境の設定をご覧ください。
gem install google-cloud-bigquery


クライアント ライブラリを実行するには、まず、サービス アカウントを作成して環境変数を設定し、認証を設定する必要があります。以下の手順で認証を設定します。その他の認証方法については、GCP 認証のドキュメントをご覧ください。

all display_as_tabs no_steps

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

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


このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の C# の設定手順を実施してください。詳細については、BigQuery 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.
            // Display the results
            foreach (BigQueryRow row in client.GetQueryResults(job.Reference))


このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。詳細については、BigQuery 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 クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

// BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
    String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build();

    // Print the results.
    for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) {
      for (FieldValue val : row) {
        System.out.printf("%s,", val.toString());


このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、BigQuery 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 クイックスタート: クライアント ライブラリの使用の PHP の設定手順を実施してください。詳細については、BigQuery 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 クイックスタート: クライアント ライブラリの使用の Python の設定手順を実施してください。詳細については、BigQuery 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 クイックスタート: クライアント ライブラリの使用の Ruby の設定手順を実施してください。詳細については、BigQuery 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 クライアント ライブラリ

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

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