flink读写filesystem

1 flink-sql写parquet格式

-

1 参考链接

Parquet | Apache Flink

ParquetOutputFormat - parquet-hadoop 1.10.0 javadoc

FileSystem | Apache Flink

注意: 多个链接要结合起来看

-

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实战之合并小文件 - 简书

猜你喜欢

转载自blog.csdn.net/weixin_40829577/article/details/123995945