语法:
LOAD DATA INFILE 'file_list' INTO TABLE[vcname.] [dbname.]tbl_name [options]
一、file_list
数据源包括:本地加载、ftp、sftp、http、hdfs、s3、kafka、gbfs
文件格式:支持1个或多个数据文件(用逗号隔开),目录或文件均可以使用通配符如:
通配符 |
含义 |
说明 |
* |
匹配 0 或多个字符 |
例:a*b 含义:a与b之间可以有任意长度的任意字符, 也可以一个也没有 |
? |
匹配任意一个字符 |
例:a?b 含义:a与b之间必须也只能有一个字符, 可以是任意字符 |
[list] |
匹配 list 中的任意单一字符 |
例:a[xyz]b 含义:a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z |
[!list] |
匹配 除list 中的任意单一字符 |
例:a[!0-9]b 含义:a与b之间必须也只能有一个字符, 但不能是阿拉伯数字 |
[c1-c2] |
匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] |
例:a[0-9]b 含义:0与9之间必须也只能有一个字符 |
二、options
1.data_format 文件类型
参数值支持:3、4、5、6、7、8、9,默认值为3;
3:为文本格式文件
4:为定长方式
5:为文本文件宽松模式,即数据源文件为包围符中含有换行符或包围符,或多列少列
6(json):为json格式文件,当数据中包含行分隔符时需要指定参数 having lines separarot,该参数仅为json格式文件使用,其他格式若指定该参数会忽略报warnings,使用方式如:data_format 6 having lines separarot
7(avro):为avro格式文件,其中不支持gbfs数据源
8(orc):为orc格式文件,其中不支持kafka数据源
9(parquet):为parquet格式文件,其中不支持kafka数据源(gbfs数据源目前宕机)
2.character set 字符集
参数值支持:utf8、gbk、utf8mb4、gbk18030,可缺省默认值utf8;
3.null_value 空值设置
参数值支持:多字符(1-15),无默认值;
4.fields terminated by 列分隔符
参数值支持:多字符(1-15),默认值为逗号;
5.fields preserve blanks 保留字段两边空格
不指定该参数:去掉字段两边空格
指定fields preserve blanks :保留字段两边空格
指定fields preserve leading blanks :保留字段左边空格
指定fields preserve trailing blanks :保留字段右边空格
6.fields autofill 自动填充
不指定该参数:若数据文件列数小于表列数,加载报错
指定该参数:若数据文件列数小于表列数,加载成功,缺少列使用列的default进行填充
7.fields length 定长加载
不指定该参数:非定长模式加载
指定该参数:定长模式加载,用于设置每个字段的长度,有多个字段时,用逗号分隔
8.fileds table_fields 指定列加载
用于指定列加载,对于日期时间或longblob类型可以设置每列的格式;
9.set
用于指定列值加载,加载系统将待加载文件和指定加载列值加载到集群系统的表中,输入的类型应为常量,包括字符串、整数值、浮点值和NULL;
10.lines terminated by 行分隔符
参数值支持:多字符(1-15),默认值为’\n’;
11.max_bad_records错误数据行数
不指定该参数:不限制错误条数;
指定该参数:取值范围为[0, 4294967295],0表示只要有错误数据就报错退出;
最大加载错误数的计算方式:所有集群节点独立计算,一旦有一个节点加载时错误数据达到本限制,则终止所有节点的加载任务,集群加载提交之前检查总错误条数是否超出限制,如果超出限制,则报错退出;
12.datetime format 日期类型格式
用来指定datetime列的格式,默认值为:'%Y-%m-%d %H:%i:%s';
13. timestamp format 日期类型格式
用来指定timestamp列的格式,默认值为:'%Y-%m-%d %H:%i:%s';
14.time format 日期类型格式
用来指定time列的格式,默认值为:'%H:%i:%s';
15.trace 保存错误数据
参数值支持:0、1,默认值为1;指定为0,则不保存错误数据溯源;指定为1,则进行溯源,溯源信息包括错误数据所在的文件、所在行号;
16. trace_path 错误数据存放路径
用来指定本次加载过程中产生的错误数据和日志存放路径;在禁用日志汇总功能时,该参数才能起作用,默认值为加载节点的“/安装目录/gcluster/log/gbase/loader_logs”;
17.nosplit
不指定该参数:在集群加载时,将自动启动分块加载功能,按照数据量和参与运算的加载节点数对数据进行均匀分块,以均衡数据服务器和数据处理节点的负载,优化加载性能;
指定该参数:禁用分块加载功能;
18. parallel 加载并行度
参数值支持:[0,1024],默认值为0;0表示并行度取值是线程池最大可用线程数;
19.max_data_processors 数据处理最大节点数
参数值支持:[1, 4294967295],默认值16;用来指定本次加载任务中参与数据解析的处理的最大节点数;
20.min_chunk_size 切最小粒度
参数值支持:[1, 4294967295],默认值64M;用来指定本次加载任务中数据分块的最小粒度;
21.skip_bad_file 是否忽略异常文件
参数值支持:0、1,默认值为0;
0:不忽略,若遇到不存在或读取异常的文件则加载报错
1:忽略,若遇到不存在或读取异常的文件则忽略掉,继续加载
22.ignore [num] lines 过滤表头信息
不指定该参数:加载不过滤数据文件的表头信息
指定该参数:加载会对数据文件的表头进行过滤,跳过每个文件的前num行(表头所占行数),num取值范围为[0,2147483647];
23.file format 文件格式
参数值支持:UNDEFINED、UNCOMPRESSED、GZIP、SNAPPY、LZO,默认值为UNDEFINED;
UNDEFINED:表示不指定格式,按文件后缀自动判断文件格式
UNCOMPRESSED:表示按普通文本方式加载文件
GZIP:表示按GZIP格式加载文件
SNAPPY:表示按SNAPPY格式加载文件
LZO:表示按LZO格式加载文件