我正在研究如何使用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感觉不舒服,如果这意味着我的数据可以永久锁定在那里。
答案 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拥有您今天和将来可以下载所有数据所需的所有信息和指南。