登录gbase数据库
gccli -ugbase -p1
指定需要导出表数据的数据库如“test”数据库
use test;
需要先在本地创建存放数据的路径
mkdir /home/gbase/dcfile
如果登录数据库的用户不具有在这个文件夹下创建文件的权限将会报错
执行导出数据的sql命令
select * from cs1 into outfile ‘/home/gbase/dcfile/cs1.txt’;
可选参数(经过测试必须大写):
NULL_VALU:可以将控制转换成指定的字符如果不指定这个参数导出的数据有空值的话为“
\n“ 指定为”“双引号内什么都不加则为空,加任意的符号则为任意的符号
LINES TERMINATED BY:行分隔符,支持多个字符,默认为“\n”。
OUTFILEMODE BY: 导出方式有两种,local是导出到本地也是默认的导出方式,hdfs:导出的是hdfs文件。
OUTFILEMODE BY HDFS FILECOUNT 3:这个参数是选择数据导出的文件个数值为3.但是只在导出hdfs模式中生效,本地不生效。
FILESIZE 100:这个参数是指定导出数据的文件大小,在数字后可以指定是KB,MB,默认后缀名为“_p1“开头。
WRITEMODE BY NORMAL:导出格式为.gz压缩格式的文件。
fields terminated by ‘|’ with head;导出的文件含表头就是字段,以“|“为分隔符,并且数据也会以”|“当分隔符
在gbase中有个关于导出数据的参数gbase_export_directory默认值为“1”
以上面的语句举例,当此参数为1时,会自动在dcfile文件夹下创建一个名为”cs1.txt”的文件夹,在这个文件夹下会有个“cs1.txt“的文件这个文件才是真正存放导出数据的文件
当此参数为0时,不会创建“cs1.txt文件夹,会直接创建“cs1.txt”文件。
且这个参数的设置只在本地或者hdfs的导出中有效,不支持rmt的方式
更改此参数的方法:
可以登录数据库后输入
set gbase_export_directory = 0;或者等于1的方式
这种方式是临时的如果重启主机或者重新登录数据库就会失效
也可以在/opt/gcluster/config/gbase_8a_gcluster.cnf文件中直接写入参数,这样的方式是永久的。
远程登录导出数据
这种方式一般适用于非gbase集群中主机的数据导出,需要先在主机中安装gbase客户端。
创建存放数据文件的文件夹,然后正常登录gbase数据库,选择表所在的数据库。
执行sql语句为:
rmt:select * from cs1 into outfile ‘/home/gbase/dcfile/cs1.txt’;
需要注意的是rmt与select语句中不能有空格
文件同名报错
语法不正确报错