创建域、集合空间和集合
进入 SequoiaDB Shell,在 SequoiaDB 巨杉数据库引擎中创建 company 集合空间、 employee 集合和 manager 集合。
1)使用 Linux 命令进入 SequoiaDB Shell 命令行;
1 | sdb |
2)使用 JavaScript 语法,连接协调节点,获取数据库连接;
1 | var db = new Sdb("localhost", 11810); |
3)创建 company_domain 数据域;
1 | db.createDomain("company_domain", [ "group1", "group2", "group3" ], { AutoSplit: true } ); |
4)创建 company 集合空间;
1 | db.createCS("company", { Domain: "company_domain" } ); |
5)创建 employee 集合;
1 | db.company.createCL("employee", { "ShardingKey": { "empno": 1 }, "ShardingType": "hash", "ReplSize": -1, "Compressed": true, "CompressionType": "lzw", "AutoSplit": true, "EnsureShardingIndex": false } ); |
6)创建 manager 集合;
1 | db.company.createCL("manager", { "ShardingKey": { "empno": 1 }, "ShardingType": "hash", "ReplSize": -1, "Compressed": true, "CompressionType": "lzw", "AutoSplit": true, "EnsureShardingIndex": false } ); |
7)退出 SequoiaDB Shell;
1 | quit; |
创建数据库
在 SequoiaSQL-PostgreSQL 实例中创建 company 数据库,为接下来验证 PostgreSQL 语法特性做准备。
1)在 PostgreSQL 实例创建数据库 company;
1 | /opt/sequoiasql/postgresql/bin/sdb_sql_ctl createdb company myinst |
2)查看数据库;
1 | /opt/sequoiasql/postgresql/bin/psql -l |
操作截图:
配置 PostgreSQL 实例
在 PostgreSQL 实例中加载 SequoiaDB 的连接驱动并配置连接参数。
加载 SequoiaDB 连接驱动
1)登录到 PostgreSQL 实例 Shell;
1 | /opt/sequoiasql/postgresql/bin/psql -p 5432 company |
2)加载 SequoiaDB 连接驱动;
1 | CREATE EXTENSION sdb_fdw; |
配置与 SequoiaDB 连接参数
在 PostgreSQL 实例中配置 SequoiaDB 连接参数:
1 | CREATE SERVER sdb_server FOREIGN DATA WRAPPER sdb_fdw |
实例与数据引擎中集合关联
将 PostgreSQL 实例中的外部表并与 SequoiaDB 中的集合空间、集合关联。
1)创建 employee 表;
1 | CREATE FOREIGN TABLE employee |
2)创建 manager 表;
1 | CREATE FOREIGN TABLE manager |
基本数据操作
SequoiaDB 巨杉数据库的 PostgreSQL 实例支持完整的 CRUD 数据基本操作。
1)验证基本的数据写入操作;
1 | INSERT INTO employee VALUES (1, 'Jacky', 36); |
2)验证单表查询与排序;
1 | SELECT * FROM employee ORDER BY empno ASC LIMIT 1; |
3)验证两表关联功能;
1 | SELECT * FROM employee, manager WHERE employee.empno = manager.empno; |
4)验证数据更新能力;
1 | UPDATE employee SET ename = 'Bob' WHERE empno = 1; |
5)查看数据结果;
1 | SELECT * FROM employee; |
6)验证数据删除能力;
1 | DELETE FROM employee WHERE empno = 2; |
7)查看数据结果并确认 empno 为 2 的记录被删除;
1 | SELECT * FROM employee; |
事务操作
SequoiaDB 巨杉数据库的 PostgreSQL 数据库实例支持完整的事务操作能力,本小节将验证其回滚与提交能力。
验证回滚能力
1)开始事务;
1 | BEGIN; |
2)写入数据;
1 | INSERT INTO manager VALUES (2, 'Product Department'); |
3)回滚事务操作;
1 | ROLLBACK; |
4)查询写入数据,确保刚才写入的数据被撤销;
1 | SELECT * FROM manager WHERE empno = 2; |
验证提交能力
1)开始事务;
1 | BEGIN; |
2)写入数据;
1 | INSERT INTO manager VALUES (2, 'Product Department'); |
3)提交事务;
1 | COMMIT; |
4)查询写入数据,确保之前写入的数据被正确提交;
1 | SELECT * FROM manager WHERE empno = 2; |
事务管理
本小节将讲解如何查看并关闭 PostgreSQL 的事务功能,关闭后需要重新进入实例的 Shell 命令行。
1)查看 PostgreSQL 是否打开事务功能;
1 | \des+ sdb_server; |
操作截图:
操作截图中 transaction 的参数值为 on,说明 PostgreSQL 的事务功能已经打开。
2)关闭 PostgreSQL 事务功能;
1 | ALTER SERVER sdb_server OPTIONS ( SET transaction 'off' ); |
3)退出 PostgreSQL 实例 Shell ;
1 | \q |
4)登录到 PostgreSQL 实例 Shell,使事务功能关闭设置生效;
1 | /opt/sequoiasql/postgresql/bin/psql -p 5432 company |
5)开始事务;
1 | BEGIN; |
6)写入数据;
1 | INSERT INTO manager VALUES (3, 'Finance Department'); |
7)回滚事务操作;
1 | ROLLBACK; |
8)查询写入数据,验证事务功能是否已经关闭;
1 | SELECT * FROM manager WHERE empno = 3; |
操作截图:
如操作截图显示,是能够查询到刚刚写入的数据,说明 PostgreSQL 的事务功能已经关闭,数据库没有执行回滚操作。
创建视图
SequoiaDB 巨杉数据库支持标准的 PostgreSQL 视图功能。本小节将验证其对标准 PostgreSQL 视图能力的支持。
1)创建视图;
1 | CREATE VIEW manager_view AS |
2)查询视图数据;
1 | SELECT * FROM manager_view; |
创建自定义函数
SequoiaDB 巨杉数据库支持标准的 PostgreSQL 自定义函数功能。本小节将验证其对标准 PostgreSQL 自定义函数能力的支持。
1)创建自定义函数;
1 | CREATE OR REPLACE FUNCTION totalRecords () RETURNS INTEGER AS $total$ |
2)调用函数;
1 | SELECT totalRecords(); |
3)退出 PostgreSQL Shell;
1 | \q |