创建 PostgreSQL 实例
1)切换到 SequoiaSQL-PostgreSQL 安装目录;
1 | cd /opt/sequoiasql/postgresql |
2)添加实例;
1 | bin/sdb_sql_ctl addinst myinst -D database/5432/ |
Note:
指定实例名为 myinst,该实例名映射相应的数据目录和日志路径,用户可以根据自己需要指定不同的实例名,实例默认端口号为 5432。
3)查看实例,可以看到实例名为 myinst 的数据和日志目录信息;
1 | bin/sdb_sql_ctl listinst |
4)启动实例;
1 | bin/sdb_sql_ctl start myinst |
5)查看实例状态;
1 | bin/sdb_sql_ctl status |
操作截图:
在 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)退出 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 |
Note:
- 如果没有配置数据库密码验证,可以忽略 user 与 password 字段。
- 如果需要提供多个协调节点地址,options 中的 address 字段可以按格式 ‘ip1:port1,ip2:port2,ip3:port3’填写。此时,service 字段可填写任意一个非空字符串。
- preferedinstance 设置 SequoiaDB 的连接属性。多个属性以逗号分隔,如:preferedinstance ‘1,2,A’。详细配置请参考 preferedinstance 取值
- preferedinstancemode 设置 preferedinstance 的选择模式
- sessiontimeout 设置会话超时时间 如:sessiontimeout ‘100’
- transaction 设置 SequoiaDB 是否开启事务,默认为 off。开启为 on
- cipher 设置是否使用加密文件输入密码,默认为 off。开启为 on
- token 设置加密口令
- cipherfile 设置加密文件,默认为 ./passwd
实例与数据引擎中集合关联
将 PostgreSQL 实例中的外部表与 SequoiaDB 中的集合空间、集合关联。
1)创建 employee 表;
1 | CREATE FOREIGN TABLE employee |
2)查询数据,验证是否能够访问数据引擎;
1 | SELECT * FROM employee LIMIT 1; |
Note:
- 集合空间与集合必须已经存在于 SequoiaDB,否则查询出错。
- 如果需要对接 SequoiaDB 的 decimal 字段,则需要在 options 中指定 decimal ‘on’ 。
- pushdownsort 设置是否下压排序条件到 SequoiaDB,默认为 on,关闭为 off。
- pushdownlimit 设置是否下压 limit 和 offset 条件到 SequoiaDB,默认为 on,关闭为 off。
- 开启 pushdownlimit 时,必须同时开启 pushdownsort,否则可能会造成结果非预期的问题。
- 默认情况下,表的字段映射到 SequoiaDB 中为小写字符,如果强制指定字段为大写字符,创建方式参考“注意事项1”。
- 映射 SequoiaDB 的数组类型,创建方式参考“注意事项2”。
实例进行数据操作
使用 PostgreSQL 实例操作关联表中的数据。
通过关联表插入数据
在 PostgreSQL 实例中向外部表 employee 中插入数据:
1 | INSERT INTO employee VALUES (10001, 'Georgi', 48); |
查询 employee 表中的数据
查询 PostgreSQL 实例外部表的数据:
1 | SELECT * FROM employee; |
操作截图: