GBase 8a数据库集群在导出数据是,可以指定每个文件的大小,避免生成一个超大的文件。数据库会自动在文件名中增加pX来区分,即使只有1个文件,也会叫XX_p1,所以请注意。
目录导航
样例
如下是指定字节和1M大小的样例。支持k/K/m/M/g/G的后缀。会自动在文件名中增加_px,来区分。
gbase> select * from t1 into outfile '/home/gbase/t1.out' ESCAPED BY '' filesize 1000000 writemode by overwrites;
Query OK, 1000001 rows affected (Elapsed: 00:00:00.70)
gbase> ^CAborted
[gbase@rh6-1 ~]$ ll
total 11084
-rw-rw-r-- 1 gbase gbase 36 Oct 15 11:29 1.log
-rw-rw-r-- 1 gbase gbase 36 Oct 15 11:44 2.log
-rw------- 1 gbase gbase 999995 Oct 27 10:15 t1_p1.out
-rw------- 1 gbase gbase 999999 Oct 27 10:15 t1_p2.out
-rw------- 1 gbase gbase 999995 Oct 27 10:15 t1_p3.out
-rw------- 1 gbase gbase 999999 Oct 27 10:15 t1_p4.out
-rw------- 1 gbase gbase 999995 Oct 27 10:15 t1_p5.out
-rw------- 1 gbase gbase 660569 Oct 27 10:15 t1_p6.out
-rw-rw-r-- 1 gbase gbase 5660552 Oct 27 10:12 t1.txt
gbase> select * from t1 into outfile '/home/gbase/t1.out' filesize 1M writemode by overwrites;
Query OK, 1000001 rows affected (Elapsed: 00:00:00.76)
gbase> ^CAborted
[gbase@rh6-1 ~]$ ll
total 11064
-rw-rw-r-- 1 gbase gbase 36 Oct 15 11:29 1.log
-rw-rw-r-- 1 gbase gbase 36 Oct 15 11:44 2.log
-rw------- 1 gbase gbase 1048576 Oct 27 10:16 t1_p1.out
-rw------- 1 gbase gbase 1048576 Oct 27 10:16 t1_p2.out
-rw------- 1 gbase gbase 1048574 Oct 27 10:16 t1_p3.out
-rw------- 1 gbase gbase 1048575 Oct 27 10:16 t1_p4.out
-rw------- 1 gbase gbase 1048572 Oct 27 10:16 t1_p5.out
-rw------- 1 gbase gbase 417679 Oct 27 10:16 t1_p6.out
-rw-rw-r-- 1 gbase gbase 5660552 Oct 27 10:12 t1.txt
说明
1、一个文件至少写入一行数据,即使其超过了filesize参数设置。
2、带表头时,也计算在数据大小里面。
3、如果用overwrites模式,如果上次导出的文件数量多,不会自动删除上次导出的所有文件,而是只覆盖本次导出涉及的文件。如果单纯看文件名,会引起误解。
比如上次导出10个文件, p1 到 p10, 本次提高了filesize, 只导出5个文件,p1-p5,那么上次残留的p6-p10【有可能】被误判为本次导出的。