Python 3 CouchDB单个更新与批处理

问题描述 投票:0回答:1

[这是我的第一篇文章:),所以我会提前道歉。我正在将数据从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

python mysql insert couchdb bulk
1个回答
0
投票
```
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.
© www.soinside.com 2019 - 2024. All rights reserved.