Parquet文件导入
parquet文件概述
Apache Parquet是列式数据存储格式,支持列级上数据压缩存储。
导入导出默认是utf8字符集,可以设置字符集,支持utf8、gbk、utf8mb4、gb18030。
加载:
parquet以row group为最小数据单元,多线程并发解析获取数据,加载入库。
gnode会将整个rowgroup读取到内存buffer中,并根据rowgroup实际大小动态扩展buffer大小,当rowgroup较大时,可以设置gbase_loader_buffer_count控制buffer个数(默认16),减少内存占用。rowgroup过大申请不到相应内存会报内存不够。
(1). 支持LOCAL/FTP/SFTP/HDFS/S3/HTTP,不支持kafka
(2). data_format 指定为 parquet 或者 9
(3). 支持parquet的基础数据类型boolean、int32、int64、float、double、string、byte_array、fixed_length_byte_array、null、decimal、timestamp、time、date,不支持parquet的复合数据类型list、map。
(4). 支持内部压缩的parquet文件:uncompressed/snappy/gzip/lz4/zstd/brotli,不支持通过外部其他方法对parquet文件压缩后的文件加载
(5). 加载对文件后缀名没有要求,当加载后缀名为.gz/.snappy/.lzo时,需指定file_format uncompressed
(6). 加载不支持错误数据溯源
(7). 可正常使用的加载参数
file_list、character_set、data_format、null_value、fields preserve blanks、fields autofill、fields table_fields、max_bad_records、datetime format、date format、timestamp format、time format、trace、trace_path、nosplit、parallel、max_data_processors、skip_bad_file、set
(8). 语法可带但无功能,加载报warnings的参数:
having lines separator、fields terminated by、fields enclosed by、fields length、lines terminated by
(9). 加载报错,不支持的参数:
ignore_num_lines
(10). file_format 参数
指定uncompressed时,正常parquet文件可以正常加载
指定gzip、snappy、 lzo ,加载报错
指定undefined时,文件后缀为.gz、.snappy、 lzo 加载报错
(11).加载参数说明
gbase_loader_check_parquet_fields
取值[0,1]
默认值 1
值为1时,数据库表中字段名与对应parquet文件字段名一致,加载时按列名匹配,与列顺序无关。如数据文件中存在表字段以外的字段,默认会跳过该行记录,也可通过fields table_fields参数显示指定加载字段。
值为0时,表字段正确匹配完成即视为正确数据入库
gbase_enable_julian_calendar
取值[0,1]
默认值 0
取值为0,使用格里高利历
取值为1,date类型数据使用儒略历
(12). parquet默认开启分块加载,以row group为最小单位分块并行加载
(13). 支持通配符方式批量加载parquet文件
示例:
load data infile 'ftp://gbase@192.168.6.6/parquetfile/test.parquet' into table parquettest data_format parquet
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526