开发者社区> 问答> 正文

Flink实时数仓落Hive一般用哪种方式好?

有人说直接写到HBase,再在Hive关联Hbase表

但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:

  1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)

写的话,目前来看没有现成的Streaming

Writer,官方提供的都是

BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于

业务上的Update和Delete操作 数据一般是如何sync进Hive的?

  1. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗? *来自志愿者整理的flink邮件归档

展开
收起
EXCEED 2021-12-08 11:39:54 1342 0
1 条回答
写回答
取消 提交回答
  • 目前可以通过改写StreamingFileSink的方式来支持Parquet。 (但是目前StreamingFileSink支持ORC比较难) - BulkWriter和批处理没有关系,它只是StreamingFileSink的一种概念。 - 如果sync hive分区,这需要自定义了,目前StreamingFileSink没有现成的。

    在1.11中,Table层会持续深入这方面的处理,实时数仓落hive,在后续会一一解决数据倾斜、分区可见性等问题。[1]

    [1] https://issues.apache.org/jira/browse/FLINK-14249*来自志愿者整理的flink邮件归档

    2021-12-08 14:26:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
新氧云原生全栈数仓最佳实践 立即下载
离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进 立即下载
企业大数据平台下数仓架构 立即下载