如何使用appcfg.py download_data仅下载特定类型的某些数据?

时间:2014-01-16 15:34:36

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

我在ndb中拥有许多(数百万)实体。我想从生产中获取一些这些数据,以便在我的开发环境中使用。我知道,如果我下载所有实体,它将导致dev_appserver运行速度非常慢,甚至可能在完成上传之前崩溃。

以下是我用于getset实体的流程。

有没有办法只从生产中获取一部分实体上传到我的本地dev_appserver?

下载数据:

python appcfg.py download_data --namespace="namespace" --kind="kind" --url=https://"appid".appspot.com/_ah/remote_api --filename="filename"

上传数据:

python appcfg.py upload_data --namespace="namespace" --kind="kind" --url=http://localhost:8080/_ah/remote_api --application=dev~"project_id" --filename="filename" --num_threads=8 --email=foobar@nowhere.com

1 个答案:

答案 0 :(得分:2)

我认为该实用程序没有规定下载您想要的特定数据。

我建议采用以下方法(根据您的要求,您可以选择任何一种方法):

  • 试用remote_api。使用此功能,您可以通过本地环境连接到Live实例数据存储区并触发特定查询并获取数据。请参阅docs

  • 在实时实例上编写自己的处理程序。您可以传递特定的请求参数,它可以启动一两个查询,根据需要将数据收集到CSV,XML,JSON中并为您下载。

  • 如果您经常需要某种备份,我建议您在App Engine上编写一个可以经常运行的任务,提取一些数据,然后将其发布到外部Web服务甚至Google云端存储,然后,您可以使用命令行util从GCS存储桶中下载数据。