LoginSignup
13
7

More than 5 years have passed since last update.

定期的に Google Cloud Datastore から BigQuery へ自動でデータをシンクする方法

Last updated at Posted at 2017-12-31

あまり書いている人がいなかったのと、一度聞かれたことがあったので、他の人の時間節約のためにかいておきます。ここを自動化したものです。

データの流れ

Datastore => Google Storage => BigQuery

スクリプト

PROJECT_IDはGCPのproject idです。あらかじめgs://${PROJECT_ID}-backupのバケットを作っておいてください。あとjqコマンドも入れてください。


#!/usr/bin/env bash

set -e

gcloud config set project ${PROJECT_ID}

RESULT=`gcloud beta datastore export --kinds="TableA,TableB" --format=json gs://${PROJECT_ID}-backup`

DIR=`echo $RESULT | jq -r .metadata.outputUrlPrefix`

for x in TableA TableB
do
    echo import ${x}
    bq load --project_id=${PROJECT_ID} --headless --source_format=DATASTORE_BACKUP --replace cloud_datastore.${x} ${DIR}/all_namespaces/kind_${x}/all_namespaces_kind_${x}.export_metadata
done


13
7
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
13
7