4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

BigQueryのDatasetをbqコマンドでコピーする

Last updated at Posted at 2019-11-22

はじめに

  • 2019年8月に、copying datasetsがβとしてリリースされました。
  • この記事では、bqコマンドを使ってdatasetのコピーを試してみます(コンソールでもできます)。
  • Datasetのコピー機能によって、copyやrenameが実現できるようになりました👏
  • ドキュメントとしてはここに全部書いているのですが、あまり親切ではなかったので、qiitaにちょっと起こしてみました。

事前準備

実行

BigQuery Data Transfer Serviceの有効化が終わっている状態で、bqコマンドを実行してみます。

サンプルの前提

  • project名
    • foo-project
  • location
    • asia-northeast1
  • ソースdataset名
    • dataset1
  • ターゲットdataset名
    • datase2

同一locationでのdatasetコピーを試してみます。

実行サンプル

まず、copy先の空のdatasetをつくっておきます。

bq --location=asia-northeast1 mk --dataset foo-project:dataset2

次にBigQuery Data Transfer Serviceのタスクを登録します

bq mk \
--location=asia-northeast1 \
--transfer_config \
--project_id=foo-project \
--data_source=cross_region_copy \
--target_dataset=dataset2 \
--display_name='dataset1 -> dataset2 copy' \
--params='{"source_dataset_id":"dataset1","source_project_id":"foo-project","overwrite_destination_table":"true"}'

いくつかパラメータについて補足すると

  • overwrite_destination_table
    • 以前にコピーしたテーブルを切り捨ててすべてのデータを更新する

上記を実行すると、下記のようなレスポンスがあります。

https://www.gstatic.com/xxx
Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.
Enter your authentication code here:

https://www.gstatic.com/xxx にアクセスして、許可すると、authentication code が発行されるので Enter your authentication code here: に続けて入力してください。

Transfer configuration 'projects/xxx' successfully created. というメッセージが表示されれは、成功です。

上記でレスポンスのあった、リソースIDを指定して、bq showすると、ステータスなどが表示できます。

bq show --format=prettyjson \
--transfer_config projects/xxx

同様のことは、すべてコンソールからもできるのですが、数が多いときはbqコマンドで実行できたほうが便利ですよね。

残った問題

上記の例で実行すると、毎日実行される日次の転送設定として登録されてしまう。
今は、OneShotの実行を行いたい場合は、初回転送実行後、転送設定を消しているけど、もうちょいいいやり方(オプション等)がないか模索中。

4
1
0

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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?