Sequoiadb分布式数据库入门使用教程
SequoiaDB能够支持分布式存储结构化和半结构化数据,还能够使用LOB大对象技术存储海量的非结构化数据。除了能够支持海量数据分布式存储外,还能够为用户提供多索引功能,支持用户在高并发场景下做数据访问。其底层主要基于分布式、高可用、高性能与动态数据类型设计,与Spark这种分布式计算框架紧密集成。
sdb 'db = new Sdb("localhost",11810)'
#其中localhost表示需要连接的主机名,选择集群中任意一台机器即可,11810为协调节点。
db.createDomain( <name>, <groups>, [options] )
创建一个域。域中可以包含若干个复制组(Replica Group)。
参数描述:
name :参数类型为string,其为域名全局唯一;
groups : 域所包含的复制组;
options : 参数类型为json,创建域时执行的属性,{“AutoSplit”:true},表示打散域中保存的数据。
给创建的域名为domain1包含所有的数据组,创建语句为:
sdb ‘db.createDomain( “domain1”, [“gd1”,”dg2”, “gd3”,”dg4”, “gd5”,”dg6”,“gd7”,”dg8” ,“gd9”,”dg10”],{“AutoSplit”:true})’
创建语句为:
db.createCS( <name>, [options] )
参数描述:
name 类型是string 集合空间名,同一个数据库对象中,集合空间名必须唯一。
options 类型是Json 对象,集合空间可选属性。
创建名为 foo 的集合空间,所属域为“domain1”
sdb ‘db.createCS( "foo", { Domain: "domain1" } )’
- 创建集合
创建语句为:
db.collectionspace.createCL(<name>,[options])
在指定集合空间下创建集合(Collection),集合是数据库中存放文档记录的逻辑对象,任何一条文档记录必须属于一个且仅属于一个集合。
在foo这个集合空间下创建集合bar
sdb ‘db.foo.createCL("bar")’
给foo.bar这个集合插入一条a=1 、b=2这两条记录
sdb 'db.foo.bar.insert({“a”:1})'
sdb 'db.foo.bar.insert({“b”:2})'
查询foo.bar这个集合中a=1的这条记录
sdb 'db.foo.bar.find({“a”:1})'
查询foo.bar这个集合中的所有记录
sdb 'db.foo.bar.find()'
统计foo.bar这个集合中的数据量
sdb 'db.foo.bar.count()'
修改foo.bar这个集合中b=2 的记录为b=3
sdb 'db.foo.bar.update({“$set”:{“b”:3}},{“b”:2})'
- 删除(delete)操作
删除foo.bar这个集合中a=1的这条记录
sdb 'db.foo.bar.remove({“a”:1})'
删除foo.bar这个集合中的所有记录
sdb 'db.foo.bar.truncate()'
- SequoiaDB导入数据
SequoiaDB导入数据可以导入csv文件和json这两种文件。
- 导入csv文件
有csv文件test2.csv
连接数据库,创建需要的集合空间和集合
使用sdbimprt命令进行导入,其中type类型选择使用csv,导入后会显示导入信息。
sdbimprt -s localhost -p 11810 -c foo -l bar --file=./test2.csv --type=csv --fields='a int , b int ,c int '
其中字段类型根据需要自定义。
- 导入json格式的文件
存在json文件test2.json
连接数据,创建集合空间和集合
使用sdbimprt导入数据,其中type类型选择使用json,导入后会打印导入信息。
sdbimprt -s localhost -p 11810 -c foo -l bar --type=json --file=./test2.json
- SequoiaDB导出工具
导出json类型数据
sdbexprt -s localhost -p 11810 -c foo -l bar --type=json --file=test2.json
导出csv类型数据
sdbexprt -s localhost -p 11810 -c foo -l bar --type=csv --file=test2.csv --field='a , b ,c'
其中file为指定导出目录文件,导出查看相关的目录文件为导出数据。
sdb 'db.createDomain( “domain1”, [“gd1”,”dg2”, “gd3”,”dg4”, “gd5”,”dg6”,“gd7”,”dg8” ,“gd9”,”dg10”],{“AutoSplit”:true})'
sdb'db.createDomain(“domain1”,[“gd1”,“dg2”,“gd3”,“dg4”,“gd5”,“dg6”,“gd7”,“dg8”,“gd9”,“dg10” ],{“自动分割”:真})”