在 SequoiaDB 中建立集合空间和集合
进入 SequoiaDB Shell,在 SequoiaDB 巨杉数据库引擎中创建 company 集合空间和 employee 集合。
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": { "_id": 1 }, "ShardingType": "hash", "ReplSize": -1, "Compressed": true, "CompressionType": "lzw", "AutoSplit": true, "EnsureShardingIndex": false } ); |
6)写入测试数据;
1 | for (var i = 0; i < 1000; i++) |
7)查询记录数;
1 | db.company.employee.count(); |
8)退出 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)查询数据,验证是否能够访问数据引擎;
1 | SELECT * FROM employee LIMIT 1; |
数据导出
通过 COPY (SELECT…) 命令将外部表 employee 的数据导出为 .csv 文件;
1)导出数据到 .csv 文件;
1 | COPY (SELECT * FROM employee) TO '/opt/sequoiasql/postgresql/employee.csv' with delimiter ',' csv; |
2)查看 csv 文件内容;
1 | \! more /opt/sequoiasql/postgresql/employee.csv |
Note:
!前包含反斜线“\”,退出查看按 ctrl + c
操作截图:
3)退出 PostgreSQL Shell;
1 | \q |
数据导入
PostgreSQL 的 COPY FORM 命令不支持直接向外部表中导入数据,一旦数据需要恢复,可以用 SequoiaDB 的导入工具 sdbimprt 完成向集合导入数据。
清空 employee 集合内数据
1)使用 Linux 命令进入 SequoiaDB Shell 命令行;
1 | sdb |
2)使用 JavaScript 语法,连接协调节点,获取数据库连接;
1 | var db = new Sdb("localhost", 11810); |
3)统计数据量;
1 | db.company.employee.count(); |
4)清空集合内数据;
1 | db.company.employee.truncate(); |
5)验证是否被清空,查询结果为 0;
1 | db.company.employee.count(); |
6)退出 SequoiaDB Shell;
1 | quit; |
导入数据
1)通过 sdbimprt 工具从备份文件中恢复数据到 employee 数据集合中。
1 | sdbimprt --hosts=localhost:11810 --type=csv --file=/opt/sequoiasql/postgresql/employee.csv --fields="empno int, ename string, age int" -c company -l employee |
操作截图:
2)登录到 PostgreSQL 实例 Shell;
1 | /opt/sequoiasql/postgresql/bin/psql -p 5432 company |
3)PostgreSQL shell 中验证数据量;
1 | SELECT COUNT(*) FROM employee; |
4)退出 PostgreSQL Shell;
1 | \q |