我正在使用当前的 django non-rel 和现在默认的高复制数据存储在 Google App Engine 上开发应用程序。我目前正在尝试使用以下命令在开发实例上本地批量加载 180MB csv 文件:
appcfg.py upload_data --config_file=bulkloader.yaml --filename=../my_data.csv --kind=Place --num_threads=4 --url=http://localhost:8000/_ah/remote_api --rps_limit=500
bulkloader.yaml
python_preamble:
- import: base64
- import: re
- import: google.appengine.ext.bulkload.transform
- import: google.appengine.ext.bulkload.bulkloader_wizard
- import: google.appengine.ext.db
- import: google.appengine.api.datastore
- import: google.appengine.api.users
transformers:
- kind: Place
connector: csv
connector_options:
encoding: utf-8
columns: from_header
property_map:
- property: __key__
external_name: appengine_key
export_transform: transform.key_id_or_name_as_string
- property: name
external_name: name
对于 CSV 的截断的 1000 条记录版本,批量加载实际上是成功的,但整个集最终陷入困境并开始出错,“退出”并等待越来越长的时间。我实际跟踪的bulkloader-log 没有显示任何有用的信息,服务器的stderr 也没有。
任何有助于理解此批量加载过程的帮助将不胜感激。我的计划是最终能够将大数据集加载到谷歌数据存储中,但这并不乐观。