使用PyMongo允许collection分片的代码

来源:互联网 发布:小猪cms下载 编辑:程序博客网 时间:2024/05/16 05:05

我们通常有将大文本数据存入mongodb的需求,当做了sharding之后,最好的存储方式是允许db分片并指定collection的分片方式(shard key)。这个操作使用mongodb shell能够很方便的完成,但当我们使用python进行数据导入操作的时候,就必须通过pymongo进行,以下是pymongo允许分片的例子。


#!/bin/env pythonimport pymongoif __name__ == '__main__':    conn = pymongo.Connection('192.168.1.1', 27017)    db = conn['test']   #假定名为test的db已经存在    db_admin = conn['admin']    #command的执行必须通过名为admin的db才能进行    col_data = db["data"]    for i in range(1, 50):        col_data.insert({'_id':i, 'value':(i*200)})   #插入测试数据,必须在分片之前保证shard key的存在,本例中为_id    db_admin.command('enablesharding', 'test')        #确认目标db的sharding功能开启    db_admin.command('shardcollection', 'test.data', key = {'_id':1})    #指定目标collection和对应的shard key    conn.close()    pass

并且shard key可以指定多个,同建立复合索引类似:

db_admin.command('shardcollection', 'test.data', key = {'_id':1, 'a':1, 'b':1})

原创粉丝点击