【问题标题】:How can I export data from Google App Engine High Replication datastore?如何从 Google App Engine 高复制数据存储中导出数据?
【发布时间】:2012-06-27 20:59:32
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 问题在于,正如我所提到的,我将使用的 High Replication 数据存储并未正式支持该方法。
    • 我相信它适用于你的鱼。 HRD 是一个分布式系统,这就是为什么如果您尝试下载数据,它可能不是一个新副本。但是,如果您打算迁移,则几乎可能是您之前禁用了写入。因此,您将有一个安全的时间让 HRD 复制所有更改。
    【解决方案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 端点接受的内容
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 2011-05-26
      • 1970-01-01
      • 2012-05-01
      相关资源
      最近更新 更多