あちこち調べて回った備忘録になります。
一通りの権限は持っている前提で進めますので、BigQueryやGCSの権限については割愛します。動かなかったらだいたい権限。
大量のデータをダウンロードしたい
BigQueryのテーブルにあるデータをエクスポートしたいとき、いざエクスポートを実行しようとするとスプレッドシートやGCSにエクスポートなどの項目があります。(CSVでダウンロードしたいんだけど。)
エディタで実行した結果を保存する場合はCSVなどの方法もありますが、サイズの上限があるので大量にデータを取得したい場合はいずれも足りません。かといって何度も取得するのは面倒くさい。
なので大量のデータをダウンロードしようと思った場合は、GCSにエクスポートした後にダウンロードが必要になるようです。
GCSへのエクスポート
「GCSにエクスポート」を選択した後、上記の画面が表示されるのでロケーション、エクスポートの形式、圧縮の形式を選択します。
何気にトラップなのは、このロケーションにエクスポートするファイル名や拡張子を入力しなければエクスポートがうまくいかないところでしょうか。
エクスポートがうまくできてなくてもエラーも何も表示されなくてずっと待ってました。うまくいっている場合は結構すぐにデータが出来上がります。
あと、サイズを指定できないので、データ量が多いと大量にファイルがエクスポートされます。
CSVでGZIP圧縮を選択した場合はこのように記述します。
/ファイル名*.csv.gz
Google Cloud SDKの導入
GCSからファイルをまとめてダウンロードをしようとすると、次のようなポップアップが開きます。
どうやらブラウザコンソールからは1ファイルずつしかダウンロードできないようです。
なのでメッセージにもあるようにgsutilコマンドを使用する必要があります。
そのためにはGoogle Cloud SDKをインストールします。
Macで順番に実行しています。
% cd SDKをインストールしたいディレクトリ
% curl https://sdk.cloud.google.com | bash #実行するとgoogle-cloud-sdkというフォルダが作られます
% exec $SHELL -l #シェル再起動
% gcloud init
gcloud initのあとはGoogleにログインを求められたり、
Please enter numeric choice or text value (must exactly match list item):
プロジェクトを選択したり
Do you want to configure a default Compute Region and Zone? (Y/n)?
タイムゾーンを選択したりします。
初期化が完了したら先程のダウンロードコマンドをコピペして実行すると、ようやくデータのダウンロードができます。
参考サイト
テーブルデータのエクスポート
https://cloud.google.com/bigquery/docs/exporting-data?hl=ja
Google Cloud SDKの導入
https://www.faq.idcf.jp/app/answers/detail/a_id/941/c/98