大家好,我们又见面了。

今天分享一个学习笔记。

我们在今年早些的时候,分别实时跟踪了Paimon、Doris这两个框架的社区最新进展,大家可以翻一翻之前发表的其他文章,我们不再这里啰嗦啦。

截至目前,Paimon和Doris这两个框架都已经生产环境稳定可用,在各大公司有非常成熟、较大规模的落地使用。

今天的文章我们站在一个用户的角度,各大公司分享的基于Paimon、Doris的湖仓一体方案分享,从这些分享中汲取有用的经验。

备注:这里我们更关注Paimon、Doris的协同效应,各自在对应领域解决的核心问题。关于具体如何实施流批一体方案,并不是一成不变,需要根据场景具体分析。

湖仓一体落地场景总结

在我们查阅的数十篇各大公司的分享中,基于Paimon、Doris构建的数据湖方案中,解决的共同问题包括:

  • 存储统一:在大多数当前数仓方案中,流批存储不统一,实时基于Kafka这样的消息中间件,离线基于HDFS这样的存储;

  • 数据可见性:实时数据的可见性差,MQ消息数据对于用户不可见,配套导出任务有开发成本,且带来额外存储;

  • 其他:Redis这样的维度表带来的稳定性问题,实时DWS中间层、方案不统一等等。

基于这样的现状,基于Paimon+Doris的方案开始在各大公司落地探索:

  • Paimon作为数据湖存储,核心优势体现在存储层:其开放格式(兼容 Spark、Flink、Trino等多引擎)、基于对象存储(S3、HDFS)的 PB 级弹性扩展能力,以及对事务、Schema 演进的原生支持,使其成为海量异构数据的"统一存储基座",兼顾低成本与兼容性。

  • Doris作为分析型数据库,核心优势体现在计算层:分布式并行引擎、向量化执行框架、以及针对复杂聚合场景的算子优化,使其能提供毫秒至秒级的低延迟查询响应,成为数据价值挖掘的"高效计算引擎"。

Paimon x Doris的能力打通

根据小米集团的分享总结,Doris持续针对Paimon格式进行功能更新和性能增强,包括但不限于以下功能:

  • 通过元信息对 Paimon 数据进行分区、分桶裁剪和谓词下推,优化查询效率。

  • 支持 Paimon Deletion Vector 读取,利用向量化 C++ 引擎加速 Paimon 更新数据的读取。

  • 支持 Paimon 数据的本地文件缓存,充分利用本地高速磁盘提升热点数据的查询效率。

  • 支持 Paimon 时间旅行、增量数据读取、Branch/Tag 数据读取,方便用户进行 Paimon 数据的多版本管理。

  • 支持基于 Paimon 的物化视图,包括分区级别的增量物化视图构建,以及本文后续将要介绍的基于快照级别的增量构建,同时支持强一致的物化视图透明改写能力,将湖和仓的能力深度结合。

  • 支持 Paimon Rest Catalog(DLF),方便云上用户接入 Paimon 生态,实现统一元数据管理。

Paimon存储的低成本和兼容性,与Doris高效的存储和极致查询性能互补,冷热数据互备,两者的技术特性形成叠加效应。

核心解决的问题

Paimon维度表查询

Lookup Join是Paimon中最重要的Join类型之一,主要用于流式查询中将流数据与维度表数据进行关联。

关于Paimon的维度表查询能力,你可以参考:

Paimon作为维度表,有自己独特的优势:

  • 维表服务请求:Paimon直接在内部通过远端拉取数据到本地的方式进行 Lookup Join,因此没有外部请求;

  • 灵活查询上:在Paimon 链路中,Paimon既可以支持点查,也可以支持OLAP查询,其查询灵活度更高;

  • QPS支持上:Paimon可以支持数十万QPS查询场景且性能不劣化,成本也更低。

Paimon长周期聚合

湖仓架构通过Flink的状态管理能力和Paimon的增量更新机制,实现了高效的 UV 去重和累计计算,既保证了计算的准确性,又满足了分钟级的时效性要求。

只需要在DWS层,创建一张主键聚合表。在 Flink 任务中,只需进行比较简单的操作,将原布尔类型的状态字段转换为Int类型的 0 和 1,并直接写入聚合表中,这样便会得到聚合指标。

最后,将计算好的指标写入外部的KV存储中,对外提供查询。

关于Paimon的增量更新机制,可以参考:

Doris计算引擎加速Paimon查询

在Paimon x Doris的能力打通上,Doris可以直接读取外部挂载的Paimon表,利用Doris引擎的能力直接加速对Paimon数据的查询。

这种方案既保留了Paimon的低成本、流批一体、多引擎复用能力,又借助Doris的MPP向量化执行引擎、C++ Native Reader、物化视图与本地缓存,把查询延迟和并发能力压到真正的OLAP级别。

其他

在各大公司根据业务特点不同,分别持续在性能(Paimon维度表)、关联(Partial Update)、OLAP打通写湖等能力上持续拓展。

好啦,我们今天的分享就到这里。

后面会继续更新各大公司生产环境的最佳实践,欢迎持续关注。

图片

最后,欢迎加入我们的知识星球小圈子:

   如果这个文章对你有帮助,不要忘记 「在看」 「点赞」 「收藏」 三连啊喂!

图片

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐