1 flink-sql写parquet格式
-
1 参考链接
ParquetOutputFormat - parquet-hadoop 1.10.0 javadoc
注意: 多个链接要结合起来看
-
2 连接文件系统
CREATE TABLE test_fs_table (
iid STRING,
local_time TIMESTAMP,
dt STRING,
dh STRING
) PARTITIONED BY (dt,dh) WITH (
'connector'='filesystem',
'path'='out_path',
'format'='parquet',
'parquet.block.size'='128MB', -- 设定文件块大小
'auto-compaction'='true', -- 开启自动合并小文件
'compaction.file-size'='12MB', -- 合并文件大小
'parquet.compression'='SNAPPY' -- 指定压缩, 生成的文件名没有压缩类型标记
)
-
2 parquet文件生成规则
1) 数据量小, checkpoint内没超过parquet.block.size
2) 数据量较大, checkpoint内超过parquet.block.size
-
3) 文件回滚的条件
a.下个checkpoint来临
b.文件达到128M(parquet.block.size)
c.下个分区来临
-
3 小文件优化
影响因素:并行度、回滚时间、文件大小、checkpoint、compaction
1 flink-sql写parquet文件到
规则总结:
1)checkpoint时, 生成compact文件(立即可读), 下个checkpoint时删除uncompact(不可读)文件;
2) 只能合并单个checkpoint内的文件,不同checkpoint生成的文件是不会合并的;
3) 分区结束两个checkpoint后文件可用
参考链接: