我有一个10 MB的地理位置数据CSV文件,我昨天试图上传到我的应用程序引擎数据存储。我按照这篇博文中的说明使用了bulkloader/appfg工具。数据存储表明已经上传了记录,但这花了几个小时,并且用完了当天的全部CPU配额。在我实际超出配额之前,这个过程在错误中崩溃了。但不用说,10mb的数据不应该需要这么多时间和电力。
所以,有一些其他的方法来获得这个CSV数据到我的应用程序引擎数据存储(Java应用程序)。
我看到了Ikai Lan的一篇关于使用他为此目的创建的映射工具的帖子,但它看起来相当复杂。
相反,如何上传CSV到谷歌文档-是否有一种方法将其转移到应用引擎数据存储?
我每天通过bulkloader上传100000条记录(20兆)。我玩的设置:——散装货物。Yaml配置:设置为自动生成密钥。-在raw CSV文件中包含头行。-速度参数设置为最大(不确定减少是否会减少cpu消耗)
这些设置在大约4分钟内消耗了我的6.5小时的空闲配额——但是它可以加载数据(可能是从正在生成的索引中加载的)。
appcfg.py upload_data --config_file=bulkloader.yaml --url=http://yourapp.appspot.com/remote_api --filename=data.csv --kind=yourtablename --bandwidth_limit=999999 --rps_limit=100 --batch_size=50 --http_limit=15
(我用脚本自动生成这一行,并使用Autohotkey发送我的凭据)
我写了这个gdata连接器来从Google Docs电子表格中提取数据并将其插入数据存储,但它使用Bulkloader,所以它有点把你带回到你的问题之一。
http://code.google.com/p/bulkloader-gdata-connector/source/browse/gdata_connector.py你可以做的是看一下源代码,看看我是如何从gdocs中提取数据并创建一个任务来完成的,而不是通过bulkloader。
也可以将文档上传到blobstore中,并创建一个任务,从blobstore中读取csv数据并创建实体。(我认为这将是更容易和更快的工作比gdata饲料)