我在ndb
中拥有许多(数百万)实体。我想从生产中获取一些这些数据,以便在我的开发环境中使用。我知道,如果我下载所有实体,它将导致dev_appserver
运行速度非常慢,甚至可能在完成上传之前崩溃。
以下是我用于get
和set
实体的流程。
有没有办法只从生产中获取一部分实体上传到我的本地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
答案 0 :(得分:2)
我认为该实用程序没有规定下载您想要的特定数据。
我建议采用以下方法(根据您的要求,您可以选择任何一种方法):
试用remote_api
。使用此功能,您可以通过本地环境连接到Live实例数据存储区并触发特定查询并获取数据。请参阅docs。
在实时实例上编写自己的处理程序。您可以传递特定的请求参数,它可以启动一两个查询,根据需要将数据收集到CSV,XML,JSON中并为您下载。
如果您经常需要某种备份,我建议您在App Engine上编写一个可以经常运行的任务,提取一些数据,然后将其发布到外部Web服务甚至Google云端存储,然后,您可以使用命令行util从GCS存储桶中下载数据。