クエリ結果をファイルにエクスポートする
このドキュメントでは、クエリ結果を CSV や JSON などのファイルとして保存する方法について説明します。
クエリ結果をローカル ファイルにダウンロードする
bq コマンドライン ツールまたは API では、クエリ結果をローカル ファイルにダウンロードできません。
クエリ結果を CSV または改行区切りの JSON ファイルとしてダウンロードするには、Google Cloud コンソールを使用します。
コンソール
Google Cloud コンソールで、[BigQuery] ページを開きます。
[クエリを新規作成] をクリックします。
[クエリエディタ] テキスト領域に有効な GoogleSQL クエリを入力します。
省略可: 処理を行うロケーションを変更するには、[展開] をクリックして、[クエリの設定] を選択します。[データのロケーション] で、データのロケーションを選択します。
[実行] をクリックします。
結果が返されたら、[結果を保存する] をクリックして、結果を保存する形式とロケーションを選択します。
このファイルは、ブラウザのデフォルトのダウンロード場所にダウンロードされます。
クエリ結果を Google ドライブに保存する
bq コマンドライン ツールや API では、結果を Google ドライブに保存できません。
BigQuery の結果を Google ドライブに保存しようとすると、エラーが発生することがあります。このエラーは、Drive SDK API が Google Workspace にアクセスできないことが原因で発生します。この問題を解決するには、ユーザー アカウントで Drive SDK API を使用して Google ドライブにアクセスできるようにする必要があります。
クエリ結果を Google ドライブに保存するには、Google Cloud コンソールを使用します。
コンソール
Google Cloud コンソールで、[BigQuery] ページを開きます。
[クエリエディタ] テキスト領域に有効な GoogleSQL クエリを入力します。
[実行] をクリックします。
結果が返されたら、[結果を保存する] をクリックします。
[CSV(Google ドライブ)] または [JSON(Google ドライブ)] を選択します。Google ドライブに結果を保存する場合、ロケーションは選択できません。結果は常にルートのマイドライブに保存されます。
結果が Google ドライブに保存されるまで数分かかることがあります。結果が保存されると、ファイル名
bq-results-[TIMESTAMP]-[RANDOM_CHARACTERS].[CSV or JSON]
を含むダイアログ メッセージが表示されます。ダイアログ メッセージで、[開く] をクリックしてファイルを開くか、Google ドライブに移動して [マイドライブ] をクリックします。
クエリ結果を Google スプレッドシートに保存する
bq コマンドライン ツールや API では、Google スプレッドシートに結果を保存できません。
Google スプレッドシートから BigQuery の結果を開こうとすると、エラーが発生することがあります。このエラーは、Drive SDK API が Google Workspace にアクセスできないことが原因で発生します。この問題を解決するには、ユーザー アカウントで Drive SDK API を使用して Google スプレッドシートにアクセスできるようにする必要があります。
クエリ結果を Google スプレッドシートに保存するには、Google Cloud コンソールを使用します。
コンソール
Google Cloud コンソールで、[BigQuery] ページを開きます。
[クエリを新規作成] をクリックします。
[クエリエディタ] テキスト領域に有効な GoogleSQL クエリを入力します。
省略可: 処理を行うロケーションを変更するには、[展開] をクリックして、[クエリの設定] を選択します。[データのロケーション] で、データのロケーションを選択します。
[実行] をクリックします。
結果が返されたら、[結果を保存する] をクリックして、[Google スプレッドシート] を選択します。
必要に応じて、プロンプトに従ってご自分のユーザー アカウントにログインし、[許可する] をクリックして、Google ドライブの
MY Drive
フォルダへのデータの書き込み権限を BigQuery に付与します。プロンプトに従って操作すると、BigQuery クライアント ツールがユーザー アカウントに接続されたことを確認するメールが届きます。このメールに、付与した権限に関する情報と、その権限を削除する手順が記載されています。
結果が保存されると、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 つ以上の列に分割し、その結果をスプレッドシートに再度保存します。
次のステップ
- プログラムでテーブルを JSON ファイルにエクスポートする方法を確認する。
- エクスポート ジョブの割り当てについて学習する。
- BigQuery のストレージの料金について確認する。