はじめに
- やりたいのは、 bq cp foo-project.abc-dataset.table1 bar-project.abc-dataset.table1 的な、テーブルを別プロジェクトにコピーしたい
- ただ、これはできないので、コマンド3回叩いてなんとかするということです。
前提
- コピー元
- foo-project.abc-dataset.table1
- コピー先
- bar-project.abc-dataset.table1
プロジェクトが異なる場合、素直にコピーはできない
3つのコマンドでやる
## コピー元テーブルのスキーマファイルを生成
$ bq show -schema \
--project_id foo-project \
abc-dataset.table1 > schema.json
## コピー先テーブルに、空のテーブルを作成(データセットは既にあるものとしている)
$ bq mk --project_id bar-project \
--table abc-dataset.table1 \
schema.json
## 実データをselectして、コピー先テーブルにload
$ bq query --project_id bar-project \
--destination_table abc-dataset.table1 \
--use_legacy_sql=false "
select * from foo-project.abc-dataset.table1
;
"