背景
2018年4月18日よりBigQueryにも東京リージョン (asia-northeast1)の提供が開始されました。
丁度新サービスで利用するタイミングと重なり、いざ東京リージョンで起動したところ、現状殆どのコマンドにLocation指定が必要なため、Redashも接続できなかったり不便すぎて、完全に早すぎました。1ヶ月後ならば全て解決している可能性あります。
仕事の都合上、今回はあまりこの辺に工数もかけられない & データも一部流し始めていたので、東京リージョンに残ったデータをキープしながらUSに移動を実施。
手順書があれば1分くらいで終わる作業を、色々細かいつまりポイントがあったので備忘録して記載。
前提
- 現状、基本的にはデータをリージョン間で跨ぐことは出来ない。今までのBQをデフォルトのUSリージョンで立てていて、今回からAsiaに作ると色々不便なことが発生する。具体的にはCopy Tableなどが出来ないことになる
- Cloud Storageのexportも同様に同一リージョンでないと動作しない
- 別リージョンのCloud Storageのデータを、BQのテーブル作成時などに読み込むことは出来る
方法
- バックアップのjsonデータ吐き出し先のbucketを作成する
- Storage に移動して、ストレージを
Regional: asia-northeast1
を選択して作成する- なお Multi-Regional で ASIA を選択しても動かないので要注意
- データ移行対象のDatasetに移動して、Google Cloud Storageに対して
Export Table
する - この時にCSV形式はそのままimport処理できないので、JSON形式(gzip)を選択する
- 初期値のCSVをそのままimport処理できないくらいならば、デフォルトJSONにしたほうが良いのではと思うのだが・・・
- 後は、BigQuery上でUSリージョンでDatasetを作成して、そこの新規テーブル作成のタイミングで、先程exportしたGoogle Cloud Storage上のjsonファイルを指定して、データを移行させる