您的位置:首页 > 其它

SequoialDB实验

2016-03-01 11:35 489 查看
使用SequoialDB进行实验。

1. 环境准备

有关SequoiaDB更详细的资料详见 http://www.sequoiadb.com/cn/index.php?a=index&m=Files

修改/etc/hosts,将主机的IP与机器名映射关系配置到该文件中,如:

172.16.158.207 lpoc4468-158-207.localdomain


2. SequoiaDB配置

检查SequoiaDB的配置服务状态

在每台数据库服务器上检查SequoiaDB配置服务状态:

service sdbcm status


确认服务正在运行,否则执行如下命令启动配置服务:

service sdbcm start


运行SequoiaDB shell

su - sdbadmin
PATH=/opt/sequoiadb/bin/:$PATH
sdb


作用分别为:

切换到sdbadmin用户(后续配置均在sdbadmin用户下完成)

添加PATH环境变量

启动 SequoiaDB Shell 控制台

启动一个临时协调节点

oma = new Oma("localhost", 11790)
oma.createCoord(18800, "/opt/sequoiadb/database/coord/18800")
oma.startNode(18800)
db = new Sdb("localhost", 18800)


作用分别为:

连接到本地的集群管理服务进程sdbcm

创建临时协调节点

启动临时协调节点

连接到临时协调节点

配置和启动编目节点

db.createCataRG("lpoc4468-158-207.localdomain", 11800, "/opt/sequoiadb/database/cata/11800")


作用分别为:

创建一个编目节点组

配置和启动数据节点

dataRG = db.createRG("datagroup")
dataRG.createNode("lpoc4468-158-207.localdomain", 11820, "/opt/sequoiadb/database/data/11820")
dataRG.start()


作用分别为:

创建数据节点组

添加数据节点

启动数据节点组

配置和启动协调节点

rg = db.createCoordRG()
rg.createNode("lpoc4468-158-207.localdomain", 11810, "/opt/sequoiadb/database/coord/11810")


作用分别为:

创建协调节点组

创建协调节点

使用集合

db = new Sdb("localhost", 11810)
db.createCS("foo")
db.foo.createCL("bar")


作用分别为:

创建一个新的 sdb 连接

创建集合空间

创建集合

导入导出

http://www.sequoiadb.com/cn/index.php?a=index&m=Files&cat_id=1432190654&edition_id=0

导出

localhost:11810
中的
foo
集合空间的
bar
集合的
name
value
字段导出到
test.csv
中。

sdbexprt -s localhost -p 11810 --type csv --file test.csv --fields name, value -c foo -l bar


导入

test.csv
(第一行为字段名)
name
value
字段导入到
localhost:11810
中的
foo
集合空间的
bar
集合中。

sdbimprt -s localhost -p 11810 --type csv --file test.csv -c foo -l bar --fields='name string default "Anonymous", value int' --headerline=true


批量导入

for i in {1..9}
do
sdbimprt -s localhost -p 11810 --type csv --file "$i.csv" -c foo -l bar --headerline=true
done


注意导入的数据必须是utf-8

可以用
vim
来查看并且转换为utf-8:

vim test.csv
:set fileencoding=utf-8


注意把文件中的CRLF转换为LF

sed -i 's/\r//g' "test.csv"


3. SequoiaDB操作

CRUD操作

db.foo.bar.insert({"name":"sequoiadb"})
db.foo.bar.find()
db.foo.bar.find().current()
db.foo.bar.find().count()
db.foo.bar.find({age:23})
db.foo.bar.remove()
db.foo.bar.remove({"_id.$oid":"1234567890abcdef00000001"})


作用分别为:

写入记录

返回所有结果

返回当前游标指向的记录

返回当前游标的记录总数

返回
age = 23
的记录

删除集合中的所有记录

删除集合中
_id.$oid = 1234567890abcdef00000001
的记录

索引

{ "name" : "<索引名>", "key" : "{ "<索引字段1>" : <1|-1>, [ "<索引字段2>" : <1|-1> ...] }, [ "unique" : <true|false> ], [ "enforced" : <true|false> ]}


如:

{ "name" : "employee_id_key", "key" : {"employee_id" : 1 } }


聚集

db.foo.bar.aggregate({$group:{_id: "$name", value_avg: {$avg: "$value"}, Count: {$count: "$value"}, name: {$first: "$name"}}}, {$sort:{valuee_avg: 1}})


4. Python驱动

http://www.sequoiadb.com/cn/index.php?a=index&m=Files&cat_id=1432190749&edition_id=0

下载Python驱动
pysequoiadb.tar.gz
并解压,得到
bson
文件夹、
pysequoiadb
文件夹和
setup.py


把两个文件夹放入开发工程目录中,编写代码即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: