0
0

More than 1 year has passed since last update.

【データ抽出/BigQuery】実行したクエリ結果をCSVにエクスポートした方法まとめ

Last updated at Posted at 2022-11-04

BigQueryで実行したクエリ結果をCSVにエクスポートした方法を、
エクスポートするCSVの容量が小さい順に下記にまとめた。

BigQueryからローカル環境に直接エクスポート

画像のCSV(ローカルファイル)を選択することで、最大10MBまでローカル環境に直接CSVをエクスポートすることができる。
image.png

BigQueryからGoogle Driveにエクスポート

前述の画像のCSV(Google ドライブ)を選択すれば、1GBまでGoogledriveにCSVをエクスポートできる。
もっと大きい容量のCSVをエクスポートする場合は、troccoなどでBigQuery→Google Cloud Storageにエクスポートすることができた。
(下記のBigQueryからS3にエクスポートとほぼ同じ手順。容量制限なし

BigQueryからS3にエクスポート

ETLツールのtroccoを使用して、
BigQueryでのクエリ実行結果をS3にCSV形式でエクスポートをした。(容量制限なし

  • troccoの転送設定Google BigQuery->Amazon S3に設定
  • troccoの転送設定の編集画面に、SQLという欄があるので、CSVにエクスポートしたいデータを呼び出すクエリを入力する。
    ※細かい設定は割愛

EXPORT DATA関数を使用して、BigQueryからGCSにエクスポート

troccoなどのETLツールを使用しなくても、EXPORT DATAステートメントを使用することで、
Google Cloud StorageにCSVをエクスポートすることもできる。

クエリの例

export data options (
    uri = 'gs://バケット名/フォルダ名/ファイル名接頭辞_$content_id$_*.csv' -- バケットのuriを指定
    , format = 'CSV' -- エクスポートするデータの形式をCSVに指定
    , overwrite = true -- trueの場合、宛先の場所が上書きされる
    , header = true -- trueの場合、各データファイルの最初の行に列ヘッダーが生成される
    , field_delimiter = ',' -- フィールドを区切りに使用する区切り文字
) as

/* 抽出したいデータのクエリを記述する */
select
    *
from
    `テーブル名`
where
    1=1
    and content_id = '$content_id$' -- troccoのカスタム変数機能を使用すれば、content_id毎に別々のCSVファイルに結果をエクスポートできる。

$content_id$には、色々なcontent_idがtroccoのループ実行機能で格納されている。
参考:BigQuery の EXPORT DATA 関数でクエリ結果を様々なタイプで GCS に出力
参考:EXPORT DATAステートメント(公式ドキュメント)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0