LoginSignup
8
7

More than 5 years have passed since last update.

BigQueryのテーブルをリージョン移行する (asia-northeast1 > US)

Last updated at Posted at 2018-05-01

背景

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 を選択しても動かないので要注意

image.png

  • データ移行対象のDatasetに移動して、Google Cloud Storageに対して Export Table する
  • この時にCSV形式はそのままimport処理できないので、JSON形式(gzip)を選択する
    • 初期値のCSVをそのままimport処理できないくらいならば、デフォルトJSONにしたほうが良いのではと思うのだが・・・

image.png

  • 後は、BigQuery上でUSリージョンでDatasetを作成して、そこの新規テーブル作成のタイミングで、先程exportしたGoogle Cloud Storage上のjsonファイルを指定して、データを移行させる
8
7
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
8
7