1

我有一个 10 MB 的地理定位数据 CSV 文件,我昨天尝试将其上传到我的 App Engine 数据存储区。我按照这篇博文中的说明使用了 bulkloader/appcfg 工具。数据存储区显示记录已上传,但花了几个小时并用完我当天的整个 CPU 配额。在我实际超出配额之前,该过程在接近尾声时出现错误。但不用说,10 MB 的数据不应该需要这么多的时间和精力。

那么,是否有其他方法可以将此 CSV 数据导入我的 App Engine 数据存储区(对于 Java 应用程序)。

我看到了 Ikai Lan 的一篇关于使用他为此目的创建的映射器工具的帖子,但它看起来相当复杂。

相反,将 CSV 上传到 Google Docs 怎么样 - 有没有办法从那里将其传输到 App Engine 数据存储区?

4

2 回答 2

1

我每天通过bulkloader 上传100000 条记录(20 兆)。我玩过的设置: - bulkloader.yaml 配置:设置为自动生成密钥。- 在原始 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 发送我的凭据)。

于 2011-05-03T01:38:22.683 回答
0

我编写了这个 gdata 连接器来从 Google Docs 电子表格中提取数据并将其插入数据存储区,但它使用 Bulkloader,所以它有点带你回到你的问题。

http://code.google.com/p/bulkloader-gdata-connector/source/browse/gdata_connector.py

但是,您可以做的是查看源代码以了解我如何从 gdocs 中提取数据并创建执行此操作的任务,而不是通过 bulkloader。

您还可以将文档上传到 blobstore 并类似地创建一个从 blobstore 读取 csv 数据并创建实体的任务。(我认为这比使用 gdata 提要更容易和更快)

于 2011-04-22T17:06:24.950 回答