如何从Google App Engine High Replication数据存储中导出数据?

时间:2012-06-26 14:02:57

标签: google-app-engine google-cloud-datastore

我正在研究如何使用Google App Engine进行项目,并且如果我决定离开GAE(或GAE关闭),我希望确保我能够导出所有数据。

我搜索的有关从GAE导出数据的所有内容都指向https://developers.google.com/appengine/docs/python/tools/uploadingdata。但是,该页面包含此注释:

  

注意:本文档适用于使用主/从的应用程序   数据存储。如果您的应用程序使用High Replication数据存储区,则为   可以从应用程序复制数据,但谷歌目前没有   支持这个用例。如果您尝试从高复制进行复制   数据存储区,您将在管理员中看到high_replication_warning错误   控制台和下载的数据可能不包括最近保存的   实体。

问题是最近不推荐使用主/从数据存储区来支持High Replication数据存储区。我知道主/从数据存储仍然支持一段时间,但是我觉得使用已经正式弃用并且即将推出的东西感觉不舒服。这样我就得到了High Replication数据存储区,并且它似乎导出数据的唯一方法是上面没有官方支持的方法(因此不能保证我可以获取数据)。

是否还有其他(官方支持的)从High Replication数据存储区导出数据的方法?我觉得使用Google App Engine感觉不舒服,如果这意味着我的数据可以永久锁定在那里。

3 个答案:

答案 0 :(得分:2)

我花了很长时间设置从GAE下载数据,因为文档不够清晰。

如果从Unix服务器提取数据,您可以重用下面的脚本。

此外,如果您不提供“config_file”参数,它将提取此类所有数据,但采用专有格式,之后只能用于恢复数据。

#!/bin/sh
#------------------------------------------------------------------
#-- Param 1 : Namespace
#-- Param 2 : Kind (table id)
#-- Param 3 : Directory in which the csv file should be stored
#-- Param 4 : output file name
#------------------------------------------------------------------
appcfg.py download_data --secure --email=$BACKUP_USERID --        config_file=configClientExtract.yml --filename=$3/$4.csv --kind=$2 --url=$BACKUP_WEBSITE/remote_api --namespace=$1 --passin <<-EOF $BACKUP_PASSWORD EOF

答案 1 :(得分:1)

目前,应用引擎数据存储区也支持其他选项。数据备份配置可用于将所选数据复制到blob存储或Google云存储中。此功能在app引擎控制台的数据存储管理区域下可用。如果需要,可以从blob查看器或云存储中下载备份数据。要进行高复制数据存储的备份,建议在进行备份之前禁用数据存储写入。

答案 2 :(得分:0)

您需要配置名为remote_api的内置版。 This article拥有您今天和将来可以下载所有数据所需的所有信息和指南。