あまり書いている人がいなかったのと、一度聞かれたことがあったので、他の人の時間節約のためにかいておきます。ここを自動化したものです。
データの流れ
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