GCEのインスタンスからGCSまたはBigQueryにデータを送る方法
この投稿は
GCPのドキュメントをよく探ればちゃんと書いてあるけどすぐに見つけられないときのための備忘録。
to GCS
ライブラリのインストール
インスタンスの状態によって諸々違うでしょうが自分がやった手順のメモ。
Python 使う前提。
sudo apt-get install -y python3-pip
sudo pip3 install --upgrade google-cloud-storage
cf: https://cloud.google.com/storage/docs/reference/libraries
サンプルコードをパクる
ここ を見れば良いだけ。
Python ならそのまま使えるコードがここにある。
destication_blob_name
には bucket 名以下の path(に見えるもの)を指定すれば良い。
to BigQuery
ライブラリのインストール
sudo pip3 install google-cloud-bigquery
※ちなみにこのライブラリのインストール完了まで結構時間がかかる。 grpcio
のライブラリのビルドに時間がかかるようなのでこれだけ別途落としてくると時間短縮できそうだが1時間もかからないので放置でもOK。
サンプルコードをパクる
Python でそのまま使えるサンプルコードはここ。
アップロードもとのファイル形式を変えたり job config いじるときは公式のドキュメントを見る。
JSON ファイルからアップロードしたい場合は
job_config = bigquery.LoadJobConfig(
source_format=bigquery.SourceFormat.NEWLINE_DELIMITED_JSON, autodetect=True,
)
とかしておけば良い。
参照
to GCS
- https://cloud.google.com/storage/docs/reference/libraries
- https://github.com/googleapis/python-storage/blob/HEAD/samples/snippets/quickstart.py
- https://cloud.google.com/storage/docs/uploading-objects
- https://github.com/googleapis/python-storage/blob/HEAD/samples/snippets/storage_upload_file.py
- https://googleapis.dev/python/storage/latest/client.html