直接管理存储计算引擎
切换用户
部署 SequoiaDB 巨杉数据库的操作系统用户为 sdbadmin。
1)切换至 sdbadmin 用户;
> su - sdbadmin
Note:用户 sdbadmin 的密码为 sdbadmin
查看节点启动列表
查看 SequoiaDB 巨杉数据库引擎节点列表:
sdblist
Note:
请在这里输入引用内容
如果显示的节点数量与预期不符,请稍等初始化完成并重试该步骤。
C: 编目节点,S:协调节点,D:数据节点
集群节点启停
1)检查本机上 SequoiaDB 节点启动情况;
sdblist -l
2)停止本机上所有 SequoiaDB 巨杉数据库引擎节点;
sdbstop -t all
3)启动本机上所有 SequoiaDB 巨杉数据库引擎节点;
sdbstart -t all
集群管理操作
1)在 Linux 命令行中进入 SequoiaDB Shell 交互式界面;
sdb
2)使用 JavaScript 连接协调节点,并获取数据库连接;
var db = new Sdb("localhost", 11810);
3)查看集群拓扑结构;
db.list(SDB_LIST_GROUPS);
4) 检查集群节点状态,集群有异常节点时,在 "ErrNodes" 字段中列出;
db.snapshot(SDB_SNAP_DATABASE);
创建集合空间和集合
创建数据域、集合空间和集合为提供后续章节用于数据操作展示。
1)创建 company_domain 域;
db.createDomain("company_domain", [ "group1", "group2", "group3" ], { AutoSplit: true } );
域的详细说明
Note:
域(Domain)是由若干个复制组(ReplicaGroup)组成的逻辑单元。每个域都可以根据定义好的策略自动管理所属数据,如数据切片和数据隔离等。
2)创建 company 集合空间;
db.createCS("company", { "Domain": "company_domain" } );
3)创建 employee 集合 ;
db.company.createCL("employee", { "ShardingKey": { "_id": 1 }, "ShardingType": "hash", "ReplSize": -1, "Compressed": true, "CompressionType": "lzw", "AutoSplit": true, "EnsureShardingIndex": false } );
4)创建 manager 集合 ;
db.company.createCL("manager", { "ShardingKey": { "_id": 1 }, "ShardingType": "hash", "ReplSize": -1, "Compressed": true, "CompressionType": "lzw", "AutoSplit": true, "EnsureShardingIndex": false } );
巨杉数据库存储引擎的 CRUD 操作
用户可以直接使用 SequoiaDB Shell 提供的交互式 JavaScript 接口进行数据的插入、查询、更新与删除操作。
1)使用 insert() 向 SequoiaDB 巨杉数据库集合中写入记录;
db.company.employee.insert( { empno: 1, ename: "Jacky", age: 28, sex: "male" } ); db.company.employee.insert( { empno: 2, ename: "Abe", age: 36, sex: "female" } ); db.company.employee.insert( { empno: 3, ename: "Alice", age: 23, sex: "male"} ); db.company.employee.insert( { empno: 4, ename: "Jane", age: 25, sex: "female"} ); db.company.manager.insert( { empno: 1, department: "Sales Department" } ); db.company.manager.insert( { empno: 2, department: "Marketing Department" } ); db.company.manager.insert( { empno: 3, department: "Sales Department" } ); db.company.manager.insert( { empno: 4, department: "Marketing Department" } );
2)使用 find() 方法从集合中查询数据记录;
db.company.employee.find( { ename: "Abe" } );
3)使用 update() 方法将集合中的记录进行修改;
db.company.employee.update( { $set: { age: 29 } }, { empno: 1 } );
4)使用 remove() 方法从集合中删除数据;
db.company.employee.remove( { ename: "Alice" } );
5)使用 find() 方法从集合中查询数据记录;
db.company.employee.find();
巨杉数据库存储引擎的数据聚集操作
聚集框架提供了对集合中的原始数据记录进行统计计算的能力。通过使用聚集框架,用户能够直接从集合中提取数据记录并获取所需的统计结果。
详细了解 SequoiaDB 巨杉数据库聚集说明和使用方法:
SequoiaDB 聚集框架
1)统计集合 employee 中不同性别的平均年龄;
db.company.employee.aggregate( { "$group": { "_id": "$sex", "avg_age": { "$avg": "$age" }, "sex": "$sex" } } ); $group 操作将数据按照性别分组,$avg 计算出每个性别的年龄的平均值。 请在这里输入引用内容 $group 语法:{ $group: { _id:"$分组字段名", 显示字段名: { 聚集函数: "$字段名"},[显示字段名2: { 聚集函数: "$字段名"}, ...] } }
内置 SQL 的使用方法
SequoiaDB 巨杉数据库引擎支持内置SQL,用户能够直接在 SequoiaDB Shell 中使用 SQL 执行数据的 CRUD 、创建索引、创建集合空间和集合等操作,本小节展示单表和多表关联查询,更多使用方法请参考:
内置 SQL 语法
1)单表查询;
db.exec("SELECT * FROM company.manager"); exec :执行 SQL 的 select 语句。 execUpdate:执行 SQL 除 select 以外的其它语句。
2)多表关联查询;
db.exec("SELECT a.empno,a.ename,a.age,a.sex,b.department FROM company.employee AS a INNER JOIN company.manager AS b ON a.empno=b.empno");
3)关闭 db数据库连接;
db.close();
4)退出 SequoiaDB Shell;
quit;
SequoiaDB 在存储计算引擎均提供接口可以执行管理操作、运行实例检查、数据增删改查等操作,同时本章节介绍了内置 SQL 的语法及使用。