GBase 8a MPP提供远程导出功能,支持将数据从集群服务器导出到集群客户端所在的机器,导出后的数据为文本文件。具体语法和参数说明见下文:
1. 语法格式:
rmt:select_syntax INTO OUTFILE 'file_path' [OUTFILE_OPTIONS] ;
2. 参数说明
字段名称 | 含义 |
select_syntax | select语法 |
file_path | 保存导出数据的路径及文件名 |
OUTFILE_OPTIONS | 数据导出规则 |
l file_path导出路径说明
• 绝对路径:导出文件存放到file_path指定路径
• 相对路径:导出文件存放到用户登录客户端时所在目录 + file_path指定的路径
注意:(V95版本包含vc的情况)
1) 未使用use指定数据库:b
导出文件存放到配置文件中datadir值 + file_path指定的路径
2) 已使用use指定数据库:
导出文件存放到配置文件中datadir值 + db_name + file_path指定的路径
其中datadir默认值=$GBASE_BASE/userdata/gbase
l OUTFILE_OPTIONS参数说明
参数名称 | 含义 |
FIELDS/COLUMNS TERMINATED BY | 字段分隔符, 长度0 ~ n, 默认值'\t' |
FIELDS/COLUMNS ESCAPED BY | 转义标识符, 长度0 ~ 1, 默认值'\', 表示为'\\'。若某字段中存在与转义符相同的字符时,将该字符双写 |
FIELDS/COLUMNS [OPTIONALLY] ENCLOSED BY | 字段包围符, 长度0 ~ 1, 默认值为空 |
FIELDS/COLUMNS [OPTIONALLY] DOUBLE_ENCLOSED BY | 字段包围符自转义, 除上所述外, 当转义符设置为空时, 若某字段满足使用字段包围符的条件,且该字段中含有与字段包围符相同的字符时, 将该字符双写 |
FIELDS/COLUMNS LENGTH | 使用定长导出模式时, 用于设定字段长度, 用逗号分隔, 该参数与字段分隔符和包围符冲突 |
LINES TERMINATED BY | 行分隔符, 支持多字符, 默认值'\n' |
LINES STARTING BY | 行起始符, 支持多字符, 默认值为空 |
FIELDS/COLUMNS BLOBMODE | 指定LONGBLOB字段的导出方式,可分别对每个LONGBLOB字段指定导出方式,可选值为:文本方式 TYPE_TEXT,base64编码方式 TYPE_BASE64,路径方式 TYPE_URL。默认值为TYPE_TEXT |
NULL_VALUE | 空值标识符, 支持多字符,默认为'\N' |
CHARSET SET | 指定导出文件的字符集,支持GBK和UTF8,默认导出和源表字符集保持一致 |
WITH HEAD | 导出文件带有表头信息 |
WRITEMODE BY | 导出文件写入方式,可选值: NORMAL, OVERWRITES。NORMAL:(默认值)如果文件已存在则报错。 |
FILESIZE | 导出文件大小的最大值,取值范围[0, 264-1], 默认值为0,表示不限制导出文件大小。支持k/K/m/M/g/G后缀表示方法。新文件命名方式:文件名+_pN+后缀名,例如test.tbl -> test_p1.tbl 注意:文件分裂功能 |
l 注意事项
· rmt: 与 select_syntax 之间不能有空格。
· file_path,以及 FIELD_OPTION 中的字段分隔符、字段包围符、转义标识符等均必须使用单引号 ' 包围,否则无法正常导出数据。
· 远程导出不支持顶层查询是 UNION 类查询。
· 远程导出的目标文件如果已经在本地存在,则不能通过 SELECT @@error_count 来获取错误数,原因是文件是否存在由客户端判断,而 @@error_count 是服务端变量。