0%

SequoiaDB-PostgreSql实例的创建

创建 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
2
3
4
5
6
7
8
9
10
CREATE SERVER sdb_server FOREIGN DATA WRAPPER sdb_fdw 
OPTIONS
(
address '127.0.0.1',
service '11810',
user '',
password '',
preferedinstance 'A',
transaction 'on'
);

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
2
3
4
5
6
7
8
CREATE FOREIGN TABLE employee 
(
empno INT,
ename VARCHAR(128),
age INT
)
SERVER sdb_server
OPTIONS ( collectionspace 'company', collection 'employee', decimal 'on' );

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
2
INSERT INTO employee VALUES (10001, 'Georgi', 48);
INSERT INTO employee VALUES (10002, 'Bezalel', 21);

查询 employee 表中的数据

查询 PostgreSQL 实例外部表的数据:

1
SELECT * FROM employee;

操作截图:

图片描述

-------------本文结束感谢您的阅读-------------