はじめに
リノシスの神谷です。代表やってます。
BigQuery、ご存知の通りリージョンをまたいだクエリーは書けないので、データセット/テーブルが異なるリージョンにあると、これまでは一旦CSV(かJSON)に落として、違うリージョンでテーブル作ってアップロードして、、と面倒でした。
今日、久しぶりにリージョンまたぐ必要があったのですが、改めてググると、なんとリージョンをまたいでデータセットを移行できるようになってるではないですか!なので、その方法のメモ。(まだベータ版だけどね)
リージョンをまたいだデータセットの移行方法
BigQuery Data Transfer Serviceというのがあるらしい。
BigQuery Data Transfer Serviceの有効化
以下の手順を実行する必要があります。
プロジェクトのオーナー権限が必要です。
コピー実行に必要な権限
必要な権限は以下です。
- コピー転送を作成するための bigquery.transfers.update 権限
- コピー元データセットに対する bigquery.tables.list 権限
- コピー先データセットに対する bigquery.tables.list 権限と bigquery.tables.create 権限
プロジェクトのオーナーなら気にする必要なしw
データセットのコピー実行
コンソールからできます。
まずはコピーしたいデータセットを選択して、「データセットをコピー」をクリックします。
そうすると、コピー先が選べるので、コピー先のデータセット名を選択してコピーを実行。これだけ。(コピー先のデータセットは必要に応じ、先に作っておいてください。
(ここでは両方ともロケーションはUSだけど、東京にもコピーできる)
コピーできるリージョン
現状、コピーできるのはBigQuery Data Transfer Service が現在サポートされているリージョンでのみ、だそうです。(詳しくはここを見てください。)
ただ、見た限り、だいたいどこでもできそう。
詳しくは
これを読んでください。
これでまたBigQuery生活が捗りますね!