現在のdjangonon-relと、現在はデフォルトの高レプリケーションデータストアを使用して、GoogleAppEngineでアプリケーションを開発しています。現在、次のコマンドを使用して、開発インスタンスにローカルで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も明らかにします。
このバルクロードプロセスを理解する上での助けをいただければ幸いです。私の計画では、最終的にビッグデータセットをGoogleデータストアにロードできるようにする予定ですが、これは有望ではありません。