到目前为止,我做了一些从传统SQL数据库到CouchDB的转换。我总是有一个不同的方法。
- 我用SQL-DB的主键作为Document-Id。这使我可以一遍又一遍地导入,而不用担心重复的文件。
- 我做了逐行导入而不是批量导入。它使调试更容易。我通过互联网连接每秒钟看到5-10次插入。虽然这不是闪电般的,但对我来说足够快。我最大的数据库是总共20GB的600.000份文件。在导入期间逐行膨胀数据库,以便偶尔运行压缩。然后再次,除非你的行很大15.000行听起来不多。
我进口的代码通常是这样的:
def main():
options = parse_commandline()
server = couchdb.client.Server(options.couch)
db = server[options.db]
for kdnnr in get_kundennumemrs():
data = vars(get_kunde(kdnnr))
doc = {'name1': data.get('name1', ''),
'strasse': data.get('strasse', ''),
'plz': data.get('plz', ''), 'ort': data.get('ort', ''),
'tel': data.get('tel', ''), 'kundennr': data.get('kundennr', '')}
# update existing doc or insert a new one
newdoc = db.get(kdnnr, {})
newdoc.update(doc)
if newdoc != db.get(kdnnr, {}):
db[kdnnr] = newdoc
来源
2009-01-19 22:16:20
max