基于云原生消息系统构建实时数据仓库
如果无法正常显示,请先停止浏览器的去广告插件。
1. 基于云原生消息系统构建实
时数据仓库
刘德志
StreamNative 解决方案专家
2.
3. 刘德志
解决方案专家
Apache Pulsar Committer
前腾讯计费平台技术专家
4. • Apache Pulsar 简介
• Apache Pulsar 架构详解
• 实时数仓解决方案
• 案例与生态
5. 消息系统 -> 物理事件
6. 消息系统架构演进
7. Apache Pulsar 历史
新一代云原生统一消息流平台
8. Apache Pulsar 社区关键指标
10K+ Github Stars
500+ Contributors
每月活跃贡献者70+
9. Apache Pulsar 谁在使用
10. • Apache Pulsar 简介
• Apache Pulsar 架构详解
• 实时数仓解决方案
• 案例与生态
11. Apache Pulsar 存储分离架构
12. Apache Pulsar 存储分离架构
计算层负责对消息体的解析封装和分发
计算层
Topic分区会被均衡到不同broker
一个Topic是由多个segment组成的集合,
对存储层进行分片条带化写入
Broker不会持久化任何消息数据,无状态
分布式,扩缩容和故障切换几乎无感知
存储层负责对消息体的多副本写入和存储
多副本会被均衡到不同bookie
Segment(分片)作为多副本写入的最小
存储层
单位,条带化写入
读写IO采用物理分离,在大量写入的情况
下数据读取仍具有较高性能
• 存算分离
• 节点对等
• 独立扩展
• 灵活扩容
• 快速容错
13. Apache Pulsar 分片存储
14. Apache Pulsar 吞吐对比
* 最大吞吐量:Pulsar 是 Kafka 的 2.5 倍
15. Apache Pulsar 延迟对比
* 消息发送延迟:Pulsar 比 Kafka 延迟
低 100 倍
16. Apache Pulsar 追赶读对比
* 追赶读:Pulsar 历史读取速率比 Kafka 快 2.5 倍
完整测试报告:https://streamnative.io/blog/engineering/2022-04-07-pulsar-vs-kafka-
benchmark/
17. • Apache Pulsar 简介
• Apache Pulsar 架构详解
• 实时数仓解决方案
• 案例与生态
18. 数仓架构演进
19. 实时数仓的挑战
Lambda 架构痛点
运维成本高:同时维护实时平台和离线平台两套引擎
开发成本高:实时离线需要维护两套框架不同的业务逻辑代码
数据有两条不同链路,容易造成数据的不一致性
Kappa 架构痛点
消息的回溯能力比较弱
无法使用 OLAP 引擎直接分析数仓中间层的数据
实时计算可能因为数据的时序性导致结果不准确
Challenge
是否数据集成流批一体
是否存储层流批一体
是否 ETL 逻辑流批一体
是否 ETL 计算引擎流批一体
20. 实时数仓对消息队列的要求
21. Apache Pulsar 的基础能力
高吞吐、低延迟
相比Kafka有更稳定的性能和延迟能力
企业级
多租户、多协议、认证体系、统一消费模型
金融级
高一致、高可靠、跨地域复制
22. Apache Pulsar 的存储能力
存储同时支持批数据、流数据处理接口
支持二级存储对接,可以实现归档存储、冷热分离、行列存储转换
内置 Schema 注册,支持 Topic 级别消息验证、消息版本更新
23. Apache Pulsar 的生态能力
24. 基于Pulsar和Flink构建实时数仓
25. 方案优势
26. • Apache Pulsar 简介
• Apache Pulsar 架构详解
• 实时数仓解决方案
• 案例与生态
27. BIGO 借助 Flink 与 Pulsar 打造实时流平台
28. 未来Pulsar实时数仓生态
29. 关于社区
微信公众号:
ApachePulsar / StreamNative
B站:https://space.bilibili.com/391380821
邮件列表
dev@pulsar.apache.org
users@pulsar.apache.org
Slack
https://apache-pulsar.slack.com (#china)
register:
https://apache-pulsar.herokuapp.com/
Github
https://github.com/apache/pulsar
https://github.com/apache/bookkeeper
https://github.com/streamnative
30.
31.