0%

SequoiaDB-PostgreSql数据导入导出

在 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
2
3
4
for (var i = 0; i < 1000; i++) 
{
db.company.employee.insert( { "empno": i, "ename": "TEST", "age": 20 } )
};

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
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'
);

实例与数据引擎中集合关联

将 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;

数据导出

通过 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
-------------本文结束感谢您的阅读-------------