2

現在の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データストアにロードできるようにする予定ですが、これは有望ではありません。

4

1 に答える 1

2

180MB は、dev_appserver にロードする大量のデータです。これは、大規模な (または中程度の) データセット向けには設計されていません。小規模なローカル テスト用に完全に構​​築されています。最善の策は、テスト データセットのサイズを小さくすることです。それができない場合は、--use_sqliteコマンド ライン フラグを使用して、よりスケーラブルな新しい sqlite ベースのローカル データストアを使用してみてください。

于 2011-10-04T03:31:38.403 に答える