created: 2022-01-29T13:35:17.000Z

BigQuery の 外部テーブルに GCS 使おうとして location でダメだった

先に結論

  • Cloud Storage には asia ロケーションがある
  • BigQuery には asia ロケーションがない
  • BigQuery はロケーションが違うオブジェクトを外部テーブルにはできない

経緯

GCS に置いてある CSVファイルを BigQuery の 外部テーブルとしてロードしようとしたが、以下のエラーが返された。

Cannot read and write in different locations: source: asia, destination: asia-northeast1

なお、それぞれのロケーションはこんな感じだった。

  • Cloud Storage: asia (Multi Region)
  • BigQuery: asia-northeast1

原因

Multi Region についてよく分かってなかったが、asiaasia-northeast1 では当然違うロケーション扱いになるようだ。BigQuery はロケーションの違うオブジェクトを外部テーブルとしてくれないのでダメである。

まだ BigQuery にはデータは入れてなかったので、BigQuery のロケーションを asia に移動しようとしたが、BigQuery ではまだ asia が用意されていなかった。どうやら現状だと Cloud Storage のロケーションを変えないとダメなようだ...