GBase 8a的加载功能,支持通配符,包括*和?两种匹配多个和单个字符。本文介绍通配符来批量导入整个目录或匹配的所有文件使用方法。
目录导航
通配符
* 匹配所有文件
? 匹配一个字符
环境
目录下有5个文件,其中1个dat结尾的,其余txt结尾。 其中1.txt和11.txt。
[gbase@rh6-1 gcinstall]$ ll /home/gbase/zxq/1/
total 20
-rw-rw-r-- 1 gbase gbase 3 May 18 04:57 11.txt
-rw-rw-r-- 1 gbase gbase 2 May 18 01:29 1.txt
-rw-rw-r-- 1 gbase gbase 2 May 18 01:29 2.txt
-rw-rw-r-- 1 gbase gbase 2 May 18 01:29 3.txt
-rw-rw-r-- 1 gbase gbase 3 May 18 04:58 99.dat
加载整个目录
如下命令将整个目录下的所有文件 /home/gbase/zxq/1/* 全部加载。
[gbase@rh6-1 gcinstall]$ gccli testdb -e"load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/zxq/1/*' into table tt1" -vvv
--------------
load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/zxq/1/*' into table tt1
--------------
Query OK, 5 rows affected (Elapsed: 00:00:01.44)
Task 4718648 finished, Loaded 5 records, Skipped 0 records
Bye
[gbase@rh6-1 gcinstall]$
加载部分匹配文件
加载部分匹配的
如下只加载.txt的,有4个。
[gbase@rh6-1 ~]$ gccli testdb -e"load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/zxq/1/*.txt' into table tt1" -vvv
--------------
[gbase@rh6-1 gcinstall]$ gccli testdb -e"load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/zxq/1/*.txt' into table tt1" -vvv
--------------
load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/zxq/1/*.txt' into table tt1
--------------
Query OK, 4 rows affected (Elapsed: 00:00:01.90)
Task 4718649 finished, Loaded 4 records, Skipped 0 records
Bye
[gbase@rh6-1 gcinstall]$
使用问号精确匹配
如下只加载1个名字带.txt的,有3个。
[gbase@rh6-1 gcinstall]$ gccli testdb -e"load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/zxq/1/?.txt' into table tt1" -vvv
--------------
load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/zxq/1/?.txt' into table tt1
--------------
Query OK, 3 rows affected (Elapsed: 00:00:01.34)
Task 4718650 finished, Loaded 3 records, Skipped 0 records
Bye
[gbase@rh6-1 gcinstall]$
正则匹配
加载以0和9的txt文件
[gbase@rh6-1 gcinstall]$ gccli testdb -e"load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/zxq/1/[0-1].txt' into table tt1" -vvv
--------------
load data infile 'sftp://gbase:gbase1234@10.0.2.201/home/gbase/zxq/1/[0-1].txt' into table tt1
--------------
Query OK, 1 row affected (Elapsed: 00:00:00.68)
Task 4718658 finished, Loaded 1 records, Skipped 0 records
Bye