南大通用GBase 8a加载支持通配符来批量导入整个目录或匹配的所有文件

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