暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase8a加载导出parquet文件

原创 2025-01-03
309

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

导出:
1. 导出支持LOCAL/FTP/SFTP/HDFS/S3,不支持HTTP/KAFKA和远程RMT导出
2. 导出根据文件名后缀为“.parquet”将查询结果导出为parquet文件。不支持hint。
3. 如果导出文件后缀为.snappy/.gz/.lzo,则按照文本文件压缩文件导出。
4. 可正常使用的导出参数:
outfilemode by(local/hdfs)、writemode by、filecount、filesize、character set、。
5. 语法可带但无功能,导出报warnings的参数:fields/columns terminated by、fields/columns [optionally] enclosed by、、fields/columns escaped by、lines terminated by、lines starting by、fields/columns [optionally] double_enclosed by、null_value、fields/columns length、with head。
6. parquet文件配置参数,支持global、session和配置文件
gbase_export_parquet_rowgroup_size
取值[1,4294967295]
parquet文件的rowgroup大小,单位为字节,缺省值64M
gbase_export_parquet_compression_kind
parquet文件的压缩类型。取值支持:
uncompressed(0)、snappy(1)、gzip(2)、brotli(3)、zstd(4)、lz4(5)。支持指定[0,5]对应压缩类型顺序,暂不支持LZO。
7.支持设置并行导出parquet文件到HDFS的文件个数filecount
默认值为0,不限制并行导出的文件个数,即并行导出每个分片为一个文件。
如同时指定filecount和filesize,则并行导出filecount组文件,每组文件按filesize自动分裂。仅对集群HDFS文件有效。
8. 支持设置导出parquet文件的大小超限分裂filesize
当查询结果的有效数据长度大于等于filesize时,分裂生成新的文件,数据以行为单位写入文件,新parquet文件数据不会跨行。
分裂后的文件会自动压缩存储,所以文件大小会小于filesize。
默认值为0,不限制导出文件的最大大小,单位可以为字节、K、M、G。


示例:
select * from test.t into outfile 'HDP://172.33.1.5:50070/data/test.parquet' outfilemode by HDFS;


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论