{GCP BigQuery}クロスリージョン データセット レプリケーション

 

https://cloud.google.com/bigquery/docs/data-replication?hl=ja


bq コマンドライン ツールは、Python をベースにした BigQuery 用のコマンドライン ツールです
bqコマンドはgcloud CLI に含まれる。

 

-- 1. 前作業

gcloud init
gcloud auth list

gcloud --version

gcloud projects create project01-9999999 \
--name="project01"

gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-northeast1 --quiet
gcloud config set compute/zone asia-northeast1-a --quiet

gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111

gcloud services enable compute.googleapis.com --project project01-9999999

gcloud components update

 

-- 2. BigQuery API有効化

gcloud services list --enabled


gcloud services enable bigquery.googleapis.com \
--project project01-9999999

 

-- 3. データセットを作成

bq \
--location=us-central1 mk \
--dataset \
project01-9999999:ds01


bq ls


-- 4. データセットを複製する


bq query \
--use_legacy_sql=false \
--location=us-central1 \
'ALTER SCHEMA ds01 ADD REPLICA `us-east4` OPTIONS(location=`us-east4`);'

 

bq query \
--use_legacy_sql=false \
--location=us-central1 \
'SELECT * FROM `region-us-central1`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS;'


bq query \
--use_legacy_sql=false \
--location=us-central1 \
'CREATE OR REPLACE TABLE ds01.tab1(col1 STRING, col2 INT64, col3 JSON);'

bq query \
--use_legacy_sql=false \
--location=us-central1 \
'insert into ds01.tab1(col1) values("A");'

 

bq query \
--use_legacy_sql=false \
--location=us-central1 \
'select * from ds01.tab1;'

bq query \
--use_legacy_sql=false \
--location=us-east4 \
'select * from ds01.tab1;'


-- 5. セカンダリ レプリカを昇格させる


bq query \
--use_legacy_sql=false \
--location=us-east4 \
'ALTER SCHEMA ds01 SET OPTIONS(primary_replica = "us-east4");'


bq query \
--use_legacy_sql=false \
--location=us-east4 \
'SELECT * FROM `region-us-east4`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS;'

 

-- 6. データセットのレプリカを削除する

bq query \
--use_legacy_sql=false \
--location=us-east4 \
'ALTER SCHEMA ds01 DROP REPLICA IF EXISTS `us-central1`;'

 

bq query \
--use_legacy_sql=false \
--location=us-east4 \
'SELECT * FROM `region-us-east4`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS;'

 

-- 7. クリーンアップ


bq --location=us-east4 rm --recursive=true --force ds01 \

 


bq ls

 

gcloud projects list

gcloud projects delete project01-9999999 -q