如何从Google App Engine高复制数据存储中导出数据?

5
我正在研究使用Google App Engine开展项目,并希望确保我有一种方法可以导出所有数据,以防我决定离开GAE(或者GAE关闭)。
我搜索有关从GAE导出数据的所有内容都指向此网页:https://developers.google.com/appengine/docs/python/tools/uploadingdata。但是,该页面包含以下注释:
注:此文档适用于使用主/从数据存储库的应用程序。如果您的应用程序使用高可靠性数据存储库,则可以从应用程序中复制数据,但Google当前不支持此用例。如果您尝试从高复制数据存储库中进行复制,则会在管理控制台中看到high_replication_warning错误,并且下载的数据可能不包括最近保存的实体。
问题在于,最近主/从数据存储库已被放弃而采用了高可靠性数据存储库。我知道主/从数据存储库仍然支持一段时间,但我不想使用已正式被废弃并即将淘汰的东西。这使我只能使用高可靠性数据存储库,而唯一似乎可以导出数据的方法是上述未获官方支持的方法(因此无法保证我可以取回我的数据)。
是否有其他(获得官方支持的)方法可以从高可靠性数据存储库中导出数据?如果这意味着我的数据可能会被永久锁定在其中,我不想使用Google App Engine。
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

configClientExtract.yml (--config_file) 和 --url 是什么?是的,帮助页面没有描述配置文件或 URL 端点接受什么。 - lee penkman

1

目前,应用程序引擎数据存储还支持另一种选项。数据备份功能可用于将所选数据复制到Blob存储或Google Cloud存储中。此功能在应用程序引擎控制台的数据存储管理区域中提供。如果需要,备份数据可以从Blob查看器或云存储中下载。对于高副本数据存储的备份,建议在进行备份之前禁用数据存储写入。


0

您需要配置一个名为remote_api的内置程序。 本文提供了您需要下载今天和未来所有数据的所有信息和指南。


2
问题在于,正如我所提到的,该方法并未得到官方支持,而我将使用的是高复制数据存储。 - Pixel Elephant
2
我相信它适合你的目的。HRD是一个分布式系统,因此如果您尝试下载数据,可能不是最新的副本。但是,如果您计划迁移,几乎可以肯定您之前已禁用了写入。因此,您将有足够的时间让HRD复制所有更改,并且是安全的。 - Christopher Ramírez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接