小红书云原生实时数仓的建设与实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 小红书云原生实时数 仓 的建设与实践 OLAP研发专家 / 王成
2.
3. 王成 • 2020年12月加入小红书大数据技术部 • 从0到1主导/负责小红书云原生实时数仓架构、落地与迭代工作
4. CONTENT • 背景:云原生落地前,使用ClickHouse遇到的问题和挑战 • 云原生 OLAP V1.0 建设之路 • V-next 湖仓一体建设规划
5. 分析型数据库(OLAP) 开源项目: 商业项目: ClickHouse Hologres …… ……
6. 云原生大数据架构 - 云上的原住⺠ 分析工具 数据生产工具 应用层 Dor Rugal Waypoint Vela Guanyuan 实时/离线引擎 计算引擎层 计算资源层 Tez Red Spark 数据分析 Flink Hive K8s Yarn Pavo 数据层 Parquet ORC Avro … 存储层 S3 OSS Gravity COS Alluxio Presto
7. OLAP的引入 数据生产工具 应用层 Dor Rugal Waypoint Vela 分析工具 Guanyuan Gravity UBA 实验平台 实时/离线引擎 计算引擎层 Tez 计算资源层 Red Spark 即席分析 Flink Presto Pavo 数据层 Parquet ORC Avro … 存储层 S3 Yarn K8s OSS 内容产品工具 蒲公英 Norma 灵犀 鹰眼 COS Alluxio ClickHouse StartRocks 独立的机器资源 自有数据格式 SSD, HDD, 云盘
8. 实时数仓发展历程 10 月 01 月 05 月 V1.0 全面落地 试水应用 ClickHouse 2019 自研云原生 数仓立项 2020 11 月 2021 主要业务线 2021 07 月 2022 2022 + 11 月 业务拓展 自研云原生 数仓 V1.0 湖仓一体 40+集群 10+业务线 正式落地 云原生数仓 V-next
9. 背景: 云原生落地前ClickHouse 遇到的问题和挑战
10. 痛点:
11. 痛点: • 扩容周期⻓ • 需要额外的数据搬迁或重写 • 多副本机制引入的中心瓶颈
12. 扩容难 - 扩容周期⻓ - 手动的数据搬迁或重写 ClickHouse share nothing(无共享) 架构 新增节点
13. 扩容难 - 多副本机制中心瓶颈 • ZK引入同步瓶颈,制约集群扩展 • 多副本 -> 成倍的成本 • 查询的一致性问题
14. 痛点: • 一致性问题 • 数据同步链路复杂
15. 数据同步难 - 数据同步链路复杂 • 同步链路复杂 • 数据写入影响用户查询体验
16. 痛点: • 资源利用率低 • 用户查询体验不稳定
17. 运维难 - 资源利用率低 • 集群容量预估困难 • 存储计算比例失调 • 业务需求呈现规律性的波峰谷振荡 平均CPU使用率 低
18. 运维难 - 用户查询体验不稳定 用户查询体验 不稳定 • 高峰查询期间失败率高 • 多用户/业务线互相干扰,无优先级管理
19. 解决方案:云原生 问题: • • • 目标: 存算耦合 • 存算分离、弹性扩展 资源隔离能力弱 • 提供更强的计算资源隔离能力 • 打破数据壁垒 • 支持事务和原子性 数据同步成本高、一致性差
20. 自研云原生实时数仓的价值 - 灵活性:快速响应业务 - 自主可控:保障性能、稳定性、安全性 - 符合小红书多云战略
21. 云原生OLAP V1.0 建设之路
22. 云原生OLAP V1.0 数据源 数据集成 数据应用 RED ClickHouse 服务 日志 元信息中心 离线 多用户管理 查询调度 计算 用户行为分析 数据对象 计算隔离 弹性扩展 OLTP 数据流 实时报表 故障恢复 容器化 A / B测试 存储 实时 广告业务 事务 分桶 冷热分层 aws/cos/oss 数据加速
23. 云原生存算分离架构 元信息层 元信息中心 架构特性: 计算层 查询路由器 • 共享元信息中心,共享存储 计算组 - 1 • 基于云存储,按需使用,无限扩展 Master Server • 计算资源池化,以计算组为单位,弹性扩展 计算组 N Worker 缓存 存储层 分布式文件系统 对象存储 CFS / JuiceFS COS / S3 / OSS
24. 分布式执行框架 - 分布式写入事务
25. 分布式执行框架 - 分布式写入事务
26. 弹性扩容和故障容错
27. 分布式存储选型 对象存储 —— 优点 挑战 —— 缺点 • 价格低 • 延迟高 • 无限扩容 • 单点性能低 • 高并发 • 不稳定 查询分析 • 查询性能慢 • 并行读取 • 查询受网络影响,成功率不稳定 • 断点续传 数据摄入 • 亿级QPS数据无法实时写入 • 写入不稳定,影响数据一致性
28. 多级智能缓存 – 加速数据查询 READ READ • 被动缓存 • 主动缓存 WORKER • 元信息缓存 • 表级别自定义缓存策略 内存缓存 • 基于查询历史智能缓存策略 WORKER ... SSD SSD HDD HDD 分布式缓存 对象存储 内存缓存
29. 海量数据实时分析 - 分层存储 内存 云盘 对象存储 延迟 *** ** * IOPS *** ** * 可靠性 * *** *** 扩展性 * ** *** 成本 * ** *** 写入 云盘 对象存储
30. 离线数据同步链路优化-优化前 Flink ODS / DW Parquet 对象存储 ClickHouse MergeTree 本地存储 BI
31. 离线数据同步链路优化-优化后 ODS / DW RedCK Sp ark 对象存储 Wr ite Attach r MergeTree BI
32. 总结 数据摄入 • 存算分离 • 计算资源弹性伸缩 • 存储资源按需申请 • 千万级实时数据集成 => 分层存储 • 写入不稳定 => Exactly-once语义 • 数据同步链路⻓ => Spark MergeTreeWriter 查询分析 • 查询性能慢 => 多级智能缓存 • 关联分析瓶颈 => Bucket模型、数据本地化 集群可用性 • 快速的故障自动恢复机制 • 分布式缓存,加速预热
33. 业务落地实践
34. 降本提效 用户行为分析 A/B TEST 几十TB(月) RedCK PB +(年) 几十 PB 年 100+ 99.9% 数据量 存储时间 节点数量 查询可用性 ClickHouse 资源成本 - 磁盘 - 集群扩容 RedCK 相比开源Clickhouse,存储成本明显降低 - CP RedCK 通过弹性伸缩、集群整合,提升工作时效率 RedCK 通过容器化混合部署, 提升夜间使用率 运维成本 RedCK 小于30mi 开源ClickHouse 以周/月为单位 - 集群故障: 分钟级自动恢复
35. 实验平台 - 多租户管理 路由规则 • 业务需求 • 查询类型 在线查询 重查询 冷查询 • • • • 弹性扩容队列
36. 用户行为分析 – 海量数据实时接入
37. V-next: 湖仓一体建设
38. 为什么要湖仓一体化? - 数据湖和实时数仓的数据是割裂的,造成了大量的存储和计算冗余 - 目前的实时数仓无法应对复杂ETL加工的场景 - 查询方式不同引入额外的使用成本
39. 湖仓一体
40. 开放的MergeTree格式 ETL ODS DW RedCK Sp Storage 融合分析 ark Wr ite Parquet Spark BI r MergeTree Presto Flink
41. 湖仓一体
42. 未来规划 • 持续推进湖仓统一建设 • 更丰富的引擎功能 • 自动敏捷的弹性伸缩机制
43. 欢迎关注微信公众号: 小红书技术REDtech Q&A 小红书招聘
44.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-23 01:21
浙ICP备14020137号-1 $Map of visitor$