开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink使用jdbcsink写入hive3的话 还会产生小文件问题吗?

flink使用jdbcsink写入hive3的话 还会产生小文件问题吗?

展开
收起
三分钟热度的鱼 2023-08-29 19:38:30 66 0
1 条回答
写回答
取消 提交回答
  • 如果使用 Flink 的 JDBCSink 写入 Hive3,那么是有可能产生小文件问题的。

    因为 JDBCSink 是基于批处理的,它会将数据缓存在内存中,直到内存满了之后才会写入 Hive3 表。如果数据量很大,那么内存很快就会满了,就会产生很多小文件。

    为了避免这个问题,你可以使用 Flink 的 Checkpointing 功能。这样,Flink 会定期将数据保存到外部存储中,这样内存就不容易满了。

    你也可以使用 Flink 的 Async I/O 功能。这样,Flink 会异步将数据写入 Hive3 表,这样也不容易产生小文件。

    此外,你也可以使用 Hive3 的压缩功能 来压缩数据,这样也可以减少小文件。

    2023-09-28 10:13:09
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Hive Bucketing in Apache Spark 立即下载
    spark替代HIVE实现ETL作业 立即下载
    2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载