简单粗暴的数据共享之道—GBase 8a远程数据导出


xinchuang
信创商业研究中心 2023-05-18 11:46:41 64849
分类专栏: 资讯

【声明:此内容转自 南大通用培训中心,如涉及版权问题,请与我们联系删除!】

在不同的数据库系统之间进行数据共享,如果存在物理网络隔离、数据库异构、数据安全机制要求等情况,数据导出、转移、导入则是常常使用的一种稳妥数据共享方式,此时数据库的导出性能、导出位置等能力则显得尤其重要。

目前GBase 8a集群支持两类导出方式,一类是SERVER端导出(本地导出、HDP导出、FTP/SFTP导出),另一种则是远程导出。远程导出(简称RMT导出)是一种将数据从集群服务器导出到集群客户端所在机器的方式,导出后的数据为指定格式的平面文本文件。其导出流程示意图如下:

图片

原理步骤说明:

1、执行远程导出语句后,GCCLI检查是否存在同名文件。GCCLI启动监听端口,创建监听线程和导出线程,发送给GCLUSTER。

2、GCLUSTER生成查询计划下发给GNODE。

3、GNODE执行查询,连接GCCLI,将分片查询结果发送到GCCLI。

4、GCCLI接收来自GNODE的数据,并将数据写入目标文件。

语法参数说明:

GBase 8a MPP远程数据导出是SQL命令方式导出,无需按照配置导出工具即可完成数据的远程导出,其语法为:

rmt:select_syntax INTO OUTFILE 'file_path' [OUTFILE_OPTIONS]

file_path:保存导出数据的路径及文件名,如果是相对路径,导出文件存放到用户登录客户端时所在目录 + file_path指定的路径

OUTFILE_OPTIONS:数据导出规则

图片

远程导出端口设置:

在配置文件*/gcluster/config/gbase_8a_gcluster.cnf的client部分设置参数,*代表数据库的安装目录位置。远程导出功能默认使用导出客户端所在机器的16066-16165端口范围作为导出服务的临时端口。

图片

其他的常用参数:

 

remote_export_thread_buffer_size

功能:设置远程导出时存放临时数据的buffer大小

数据类型:unsigned long

默认值:32 (单位:MB)

 

remote_export_first_rows

功能:通过hint方式将first_rows关键字下发到Data节点执行,促使Data节点在完成指定行数的结果集物化后,立刻发送给客户端

数据类型:unsigned long

默认值:0 (即不启用)

 

参数名:remote_export_debug,远程导出日志参数控制

取值范围:0-1,0表示关闭,1表示开启,默认值为0

作用:当该参数的值为1时,进行远程导出时会在/tmp目录下生成rmt_export.log文件,该文件中记录了远程导出过程中的相关调试信息。

 

参数名:remote_export_create_directory,

取值范围:0-1,0表示关闭,1表示开启,默认值为0

作用:当使用FILESIZE参数进行远程导出时,可能会出现使用同名多次导出时,每次生成的文件数不相同的情况。这种情况会导致其他导入程序无法准确识别某次导出任务的文件。在该值为1的情况下会自动创建与导出文件同名的目录,并在该目录下生成导出文件。

使用示例:

在GBase 8a MPP中建表,并插入测试数据,表结构如下:

Create table test(

Col1 int,

Col2 varchar(20)

);

INSERT INTO test VALUES(1,'esc\\ape'),(2,'CR\nLF'),(3,NULL);

 

 1)字段分隔符、字段包围符、转移字符指定的导出语句示例:

参数FIELDS TERMINATED BY是字段分隔符,ENCLOSED BY是字段包围符,ESCAPED BY是转移字符。

图片

2)行结束符、行开始符设置的导出语句示例:

参数LINES TERMINATED BY 是行结束符,STARTING BY 是行开始符

图片

3)导出带表头

参数名称是WITH HEAD

图片

4)空值导出转换

参数名称是NULL_VALUE

图片

5)写模式指定,是否覆盖写

参数名称是writemode by overwrites,加上该参数表明是覆盖写模式。

图片

6)导出文件按指定大小切分

说明:由于文件分裂功能需要在写入文件时对数据进行拆行并计算大小,所以使用文件分裂功能可能会导致导出性能下降,且由于每行数据长度可能不统一,为了保证数据完整性,每个文件都会存放完整的行数据,所以拆分后每个文件的实际大小会大于或小于FILESIZE指定值。

图片

7)BLOB类型的数据导出示例

先使用如下语句,构建测试用例:

gbase> CREATE TABLE tb(id INT, bl LONGBLOB);

gbase> INSERT INTO tb VALUES(1,'aaa'),(2,'bbb');

导出BLOB类型的参数是FIELDS BLOBMODE,有两种模式,一种是type_base64直接库中存储BLOB模式,另一种是URL方式,参数指定导出类型为type_url。

图片

 

 

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=20936
赞同 0
评论 0 条
信创商业研究中心L2
粉丝 11 发表 97 + 关注 私信
上周热门
Kingbase用户权限管理  2020
信刻全自动光盘摆渡系统  1749
信刻国产化智能光盘柜管理系统  1419
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1014
银河麒麟打印带有图像的文档时出错  924
银河麒麟添加打印机时,出现“server-error-internal-error”  715
麒麟系统也能完整体验微信啦!  657
统信桌面专业版【如何查询系统安装时间】  633
统信操作系统各版本介绍  624
统信桌面专业版【全盘安装UOS系统】介绍  598
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!