[这是我的第一篇文章:),所以我会提前道歉。我正在将数据从mysql导出到benchdb,当保存一个项目时,我用最近更新的日期标记了mysql项目。下面我有一个python函数,它一个接一个json对象和一个随机id来在mysql上本地更新:
def write_json_to_couchdb(json_obj, id):
#couchdb auto create doc_id and rev
doc_id = ''
revision_or_exception = ''
for (success, doc_id, revision_or_exception) in db.update(json_obj):
print(success, doc_id, revision_or_exception)
# mark id inside mysql db, so we know its been saved to couchdb
mysql.update_item_date(id)
上面的解决方案有效,但速度很慢,无论是写入ouchdb还是更新到mysql,如何在不使用curl的情况下如何使用“ bulk api”或“ batch api”。我相信Couchdb的db.update(item)也可以采用类似db.update(dict_of_items)的列表。我如何指定“批量确定”。还有其他我不知道的方法。似乎在线上有一些例子。
这会大大提高速度吗?另外,我如何指定可以说1000条记录的“批量大小”。
这就是我在想的更好的解决方案:
def write_json_to_couchdb_bulk(json_obj_list, id_list):
doc_id = ''
revision_or_exception = ''
for (success, doc_id, revision_or_exception) in db.update(json_obj_list):
print(success, doc_id, revision_or_exception)
# update added_date with current datetime
for id in id_list:
mysql.update_item_date(id)
谢谢,
SW
```
import couchdb
from couchdb import *
def write_json_to_couchdb_bulk(json_obj_list):
for doc in db.update(json_obj_list):
print(repr(doc))
json_obj_list = [
Document(type='Person', name='John Doe'),
Document(type='Person', name='Mary Jane'),
Document(type='City', name='Gotham City')
]
write_json_to_couchdb_bulk(json_obj_list)
Here's the solution I came up with, its much faster.