1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

bigqueryから抽出したビッグデータを、csvでダウンロードするの面倒じゃない?

Posted at

bigqueryでは、抽出したデータをcsvダウンロードすることができるが、
16,000行以上ある場合、一度、ストレージに格納してからダウンロードする必要がある。

今回は、それらを自動化する方法をクラウドシェルで実現・実装する。

個人メモ
※自動化ポイント1:テーブル名を指定する
※自動化ポイント2:ストレージのパスを指定する
※自動化ポイント3:csvのファイル名を指定する
※自動化ポイント4:utf8からsjisへの文字コード変換
※クラウドシェルは無料だよ!

#変数 --------------------------------------------------------
DATASET="sample_dataset" # BigQueryのデータセットを指定
BUCKET="gs://sample_bucket/sample_folder" # ストレージバケットを指定
TODAY=`date "+%Y%m%d_%H%M%S"`
OUTPUT=${HOME}"/output" # ホームディレクトリのフォルダを指定

#処理 --------------------------------------------------------
#テーブルリストを表示
echo テーブルリストは、下記です。
bq ls $DATASET |awk '{print $1}'
#入力
#※ここでテーブルを指定します。
echo -n ダウンロードするテーブル名を入力してください。:  
read INP
FILE=${INP}_${TODAY}
#GCSにエクスポート
bq extract ${DATASET}.${INP} ${BUCKET}/${FILE}
#VMにコピー
gsutil cp ${BUCKET}/${FILE} ${OUTPUT}/${FILE}
#UTF8からsjisに文字コード変換
iconv -f UTF8 -t SJIS ${OUTPUT}/${FILE} > ${OUTPUT}/${FILE}.csv
#ローカルPCへダウンロード
cloudshell dl ${OUTPUT}/${FILE}.csv
1
0
2

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?