クエリ結果をファイルにエクスポートする

このドキュメントでは、クエリ結果を CSV や JSON などのファイルとして保存する方法について説明します。

クエリ結果をローカル ファイルにダウンロードする

bq コマンドライン ツールまたは API では、クエリ結果をローカル ファイルにダウンロードできません。

クエリ結果を CSV または改行区切りの JSON ファイルとしてダウンロードするには、Google Cloud コンソールを使用します。

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. [クエリを新規作成] をクリックします。

  3. [クエリエディタ] テキスト領域に有効な GoogleSQL クエリを入力します。

  4. 省略可: 処理を行うロケーションを変更するには、[展開] をクリックして、[クエリの設定] を選択します。[データのロケーション] で、データのロケーションを選択します。

  5. [実行] をクリックします。

  6. 結果が返されたら、[結果を保存する] をクリックして、結果を保存する形式とロケーションを選択します。

    このファイルは、ブラウザのデフォルトのダウンロード場所にダウンロードされます。

クエリ結果を Google ドライブに保存する

bq コマンドライン ツールや API では、結果を Google ドライブに保存できません。

BigQuery の結果を Google ドライブに保存しようとすると、エラーが発生することがあります。このエラーは、Drive SDK API が Google Workspace にアクセスできないことが原因で発生します。この問題を解決するには、ユーザー アカウントで Drive SDK API を使用して Google ドライブにアクセスできるようにする必要があります。

クエリ結果を Google ドライブに保存するには、Google Cloud コンソールを使用します。

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. [クエリエディタ] テキスト領域に有効な GoogleSQL クエリを入力します。

  3. [実行] をクリックします。

  4. 結果が返されたら、[結果を保存する] をクリックします。

    [結果を保存する] ボタンのスクリーンショット

  5. [CSV(Google ドライブ)] または [JSON(Google ドライブ)] を選択します。Google ドライブに結果を保存する場合、ロケーションは選択できません。結果は常にルートのマイドライブに保存されます。

  6. 結果が Google ドライブに保存されるまで数分かかることがあります。結果が保存されると、ファイル名 bq-results-[TIMESTAMP]-[RANDOM_CHARACTERS].[CSV or JSON] を含むダイアログ メッセージが表示されます。

    [結果を保存する] ボタンのスクリーンショット

  7. ダイアログ メッセージで、[開く] をクリックしてファイルを開くか、Google ドライブに移動して [マイドライブ] をクリックします。

クエリ結果を Google スプレッドシートに保存する

bq コマンドライン ツールや API では、Google スプレッドシートに結果を保存できません。

Google スプレッドシートから BigQuery の結果を開こうとすると、エラーが発生することがあります。このエラーは、Drive SDK API が Google Workspace にアクセスできないことが原因で発生します。この問題を解決するには、ユーザー アカウントで Drive SDK API を使用して Google スプレッドシートにアクセスできるようにする必要があります。

クエリ結果を Google スプレッドシートに保存するには、Google Cloud コンソールを使用します。

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. [クエリを新規作成] をクリックします。

  3. [クエリエディタ] テキスト領域に有効な GoogleSQL クエリを入力します。

  4. 省略可: 処理を行うロケーションを変更するには、[展開] をクリックして、[クエリの設定] を選択します。[データのロケーション] で、データのロケーションを選択します。

  5. [実行] をクリックします。

  6. 結果が返されたら、[結果を保存する] をクリックして、[Google スプレッドシート] を選択します。

  7. 必要に応じて、プロンプトに従ってご自分のユーザー アカウントにログインし、[許可する] をクリックして、Google ドライブの MY Drive フォルダへのデータの書き込み権限を BigQuery に付与します。

    プロンプトに従って操作すると、BigQuery クライアント ツールがユーザー アカウントに接続されたことを確認するメールが届きます。このメールに、付与した権限に関する情報と、その権限を削除する手順が記載されています。

  8. 結果が保存されると、Google Cloud コンソールのクエリ結果の下に、Saved to Sheets as "results-20190225-103531. Open のようなメッセージが表示されます。メッセージ内のリンクをクリックして Google スプレッドシートに結果を表示するか、My Drive フォルダに移動してファイルを手動で開きます。

    Google スプレッドシートに保存したクエリ結果のファイル名は results-[DATE] で始まります([DATE]YYYYMMDD 形式で表記された当日の日付)。

ファイルのエクスポートに関するトラブルシューティング

BigQuery から Google スプレッドシートにデータをエクスポートしたときに、シート内の一部のセルが空白になることがあります。これは、セルに書き込んでいるデータが Google スプレッドシートの上限である 50,000 文字を超えた場合に発生します。この問題を解決するには、GoogleSQL クエリで文字列関数を使用して、長いデータが含まれる列を 2 つ以上の列に分割し、その結果をスプレッドシートに再度保存します。

次のステップ