flink使用jdbcsink写入hive3的话 还会产生小文件问题吗?
如果使用 Flink 的 JDBCSink 写入 Hive3,那么是有可能产生小文件问题的。
因为 JDBCSink 是基于批处理的,它会将数据缓存在内存中,直到内存满了之后才会写入 Hive3 表。如果数据量很大,那么内存很快就会满了,就会产生很多小文件。
为了避免这个问题,你可以使用 Flink 的 Checkpointing 功能。这样,Flink 会定期将数据保存到外部存储中,这样内存就不容易满了。
你也可以使用 Flink 的 Async I/O 功能。这样,Flink 会异步将数据写入 Hive3 表,这样也不容易产生小文件。
此外,你也可以使用 Hive3 的压缩功能 来压缩数据,这样也可以减少小文件。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。