2011-10-04 153 views
2

我正在使用當前的django non-rel和現在默認的高複製數據存儲區在Google App Engine上開發應用程序。我目前正試圖以散裝的一個開發實例本地加載一個180MB的CSV文件使用以下命令:將長批量數據加載到Google App Engine數據存儲區

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 

大容量加載是一個截斷實際上成功,1000個CSV格式的記錄版本,但整套設備最終陷入困境,開始出現錯誤,「退避」,等待時間越來越長。我實際上尾隨的bulkloader-log沒有透露任何有用的信息,也沒有顯示服務器的stderr。

任何幫助理解這個批量加載過程,將不勝感激。我的計劃是最終能夠將大數據集加載到谷歌數據存儲中,但這並不樂觀。

回答

2

180MB是要加載到dev_appserver中的大量數據 - 它不是爲大型(甚至中等)數據集設計的;它完全用於小規模的本地測試。您最好的選擇是減少測試數據集的大小。如果您不能這樣做,請嘗試使用--use_sqlite命令行標誌來使用更具可擴展性的新的基於sqlite的本地數據存儲。

+0

準備好了,它更具可擴展性,但有多個未解決的問題 – systempuntoout

+0

謝謝。昨天我發現默認的本地數據存儲是一個簡單的內存映射,我昨天才明白這一點。 – scottzer0

相關問題