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后文件可用
参考链接:
本文介绍了使用Flink SQL将数据写入Parquet格式的细节,包括配置文件系统、设置Parquet块大小和压缩方式。讨论了Parquet文件的生成规则,特别是小文件的优化,如自动合并小文件。总结了Flink在checkpoint时如何生成和合并Parquet文件,以及影响小文件优化的因素。此外,还提到了文件回滚的条件和文件可用的时间点。
778

被折叠的 条评论
为什么被折叠?



