Python开发基础
这里介绍如何使用Python客户端驱动接口编写使用SequoiaDB数据库的程序。为了简单起见,下面的示例不全是完整的代码,只起示例性作用。可到SequoiadDB安装路径下samples/Python下获取相应的完整的代码。更多查看Python API
- 数据库连接(Connecting)
以下是connect.py演示如何连接到数据库。
在Linux下,可以直接运行python解释执行connect.py。
Note:
- 创建集合空间和集合
以下创建了一个名字为“foo”的集合空间和一个名字为“bar”的集合,集合空间内的集合的数据页大小为16k。可根据实际情况选择不同大小的数据页。创建集合后,可对集合做增删改查等操作。
- # connect to db
- db = client("localhost", 11810)
- # create collection space
- cs_name = 'foo'
- cs = db.create_collection_space(cs_name)
- cl_name = 'bar'
- cl = cs.create_collection(cl_name)
- # creat dict object
- record = {"name":"Tom", "age":24}
- oid = cl.insert ( record ) ;
record为输入参数,为要插入的数据。dict对象将会被转换成bson插入到集合中。oid 是插入该记录时,返回的bson结构的objectid。
- 查询(query)
查询操作需要一个游标对象存放查询的结果到本地。要获得查询的结果需要使用游标操作。本例使用了游标操作的next接口,表示从查询结果中取到一条记录。此示例中没有设置查询条件,筛选条件,排序情况,及仅使用默认索引。
- 索引(index)
- index_name = "index_name"
- idx = OrderedDict([('name', 1), ('age', -1)])
- cl.create_index ( idx, index_name, False, False ) ;
集合对象collection中创建一个以“name”为升序,“age”为降序的索引。
- 更新(update)
- rule = {"$set":{ "age":19}}
- print rule
- cl.update( rule )
在集合对象 ollection中更新了记录。实例中没有指定数据匹配规则,所以此示例将更新集合中所有的集合。
- 错误处理
集群操作
分区组操作包括创建分区组(client::creat_replica_group),得到分区组实例(client:: get_replica_group_by_name 和 client:: get_replica_group_by_id),启动分区组所有节点(replicagroup::start),停止分区组所有节点(replicagroup::stop)等。
以下仅作为示例,真正的应用应包括错误检测等。
- rg = db.create_replica_group ("group1")
- config = {}
- rg.create_node ('ubuntu-test-03', '20000', "/opt/sequoiadb/database/20000", config)
- rg.start ()
创建名为group1的数据组。创建节点时,定义一个空的map对象config表示该节点没有更多的配置内容。
- 节点操作
节点操作包括创建节点(replicagroup::create_node),获取主节点(replicagroup::get_master),获取备节点(replicagroup::get_slave),启动节点(replicanode::start),停止节点(replicanode::stop)等。
以下为数据节点操作示例性的例子。真正的应用应包括错误检测等。
- # 获取数据组group
- rg = db.get_replica_group_by_name("group1")
- # 获取数据主节点
- master = rg.get_master() ;
- slave = rg.get_slave() ;