SequoialDB实验

使用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配置

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

    service sdbcm status

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

    service sdbcm start
  2. 运行SequoiaDB shell

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

    作用分别为:

    • 切换到sdbadmin用户(后续配置均在sdbadmin用户下完成)
    • 添加PATH环境变量
    • 启动 SequoiaDB Shell 控制台
  3. 启动一个临时协调节点

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

    作用分别为:

    • 连接到本地的集群管理服务进程sdbcm
    • 创建临时协调节点
    • 启动临时协调节点
    • 连接到临时协调节点
  4. 配置和启动编目节点

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

    作用分别为:

    • 创建一个编目节点组
  5. 配置和启动数据节点

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

    作用分别为:

    • 创建数据节点组
    • 添加数据节点
    • 启动数据节点组
  6. 配置和启动协调节点

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

    作用分别为:

    • 创建协调节点组
    • 创建协调节点
  7. 使用集合

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

    作用分别为:

    • 创建一个新的 sdb 连接
    • 创建集合空间
    • 创建集合
  8. 导入导出
    http://www.sequoiadb.com/cn/index.php?a=index&m=Files&cat_id=1432190654&edition_id=0

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

      sdbexprt -s localhost -p 11810 --type csv --file test.csv --fields name, value -c foo -l bar
    • 导入
      test.csv(第一行为字段名)namevalue字段导入到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操作

  1. 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的记录
  2. 索引

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

    如:

    { "name" : "employee_id_key", "key" : {"employee_id" : 1 } }
  3. 聚集

    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

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

  2. 把两个文件夹放入开发工程目录中,编写代码即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值