5

我正在考虑将 Google App Engine 用于一个项目,并希望确保在我决定离开 GAE(或 GAE 关闭)时能够导出所有数据。

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

注意:本文档适用于使用主/从数据存储的应用程序。如果您的应用使用 High Replication 数据存储,则可以从应用复制数据,但 Google 目前不支持此用例。如果您尝试从 High Replication 数据存储中复制,您将在 Admin Console 中看到 high_replication_warning 错误,并且下载的数据可能不包括最近保存的实体。

问题是最近不推荐使用主/从数据存储以支持 High Replication 数据存储。我知道在一段时间内仍然支持主/从数据存储,但我对使用已正式弃用且即将淘汰的东西感到不舒服。因此,我只能使用 High Replication 数据存储,而似乎导出数据的唯一方法是上述不受官方支持的方法(因此不能保证我可以将数据取出)。

是否有任何其他(官方支持的)方法可以从 High Replication 数据存储中导出数据?如果使用 Google App Engine 意味着我的数据可能永远被锁定在那里,我会感到不舒服。

4

3 回答 3

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
于 2012-06-27T06:37:23.260 回答
1

目前应用引擎数据存储也支持另一个选项。数据备份规定可用于将选定的数据复制到 blob 存储或谷歌云存储。此功能在应用引擎控制台的数据存储管理区域下可用。如果需要,可以从 Blob 查看器或云存储中下载备份的数据。对于高复制数据存储的备份,建议在进行备份之前禁用数据存储写入。

于 2013-05-27T13:43:12.707 回答
0

您需要配置一个名为remote_api的内置函数。本文包含您现在和将来下载所有数据所需的所有信息和指南。

于 2012-06-26T14:14:37.810 回答