ByConity 技术架构和核心特性

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 杭州站 HANGZHOU 云原生 Meetup 03 /23 14:00-18:00 杭州市余杭区文一西路西溪八方城 8 栋 F15-Training Room 02 主办方 合作伙伴
2. ByConity :技术架构和重要特 性 王蕴博 字节首席开源布道师 CCF 开源发展委员会副秘书长 云原生 Meetup 杭州站
3. 大规模使用 ClickHouse 集群 • 2018 年初开始使用 ClickHouse 集群 • 大规模使用至今 2,400 18,000 Machines Largest cluster 700PB Data size 云原生 Meetup 杭州站
4. 使用 ClickHouse 集群遇到的问题 • ClickHouse 是 Shared Nothing 架构 • 每个节点拥有部分数据,节点之间不共享 • 计算和存储紧耦合 • 实际使用的主要痛点 • 扩缩容成本高(涉及数据迁移) • 资源浪费 • 多租户难以隔离 • 读写互相影响 • 复杂查询性能不好( e.g. 多表 join ) Merge result A B C D 云原生 Meetup 杭州站
5. ByConity 开源历史 2022 年 无法合入 2019 年 社区,自 行开源 内部自 研,基 于 CK 2023 年 5 月正式 GA 0.1.0.GA 2023 年 9 月 0.2.0 版 本发布,外 表、 ETL 、 读写优化 2023 年 12 月 0.3.0 版本 发布, ELT 增强、读写 优化、倒排 索引 云原生 Meetup 杭州站
6. ByConity 技术架构和主要组件 • • • Cloud Service  Server : 元数据管理, SQL 解析,执行计划生成 ,执行调度和下发,一些场景做 Final Agg  TSO : 生成全局唯一单调递增的时间戳  Daemon Manager : 调度和管理任务  Resource Manager : Worker 的服务发现  元数据存储 (FDB ) Virtual Warehouse • Worker : SQL 的计算和执行,后台任务 的执行 Disk Cache :远端文件的本地缓存 云存储 • 支持 HDFS/S3/… 云原生 Meetup 杭州站
7. ByConity 组件交互原理 Metadata FoundationDB Catalog api Query Resource manager Resource api Parser Client Result Timestamp oracle Query analyzer and optimizer Plan scheduler Timestamp Daemon manager Background task Server Segment executor Segment executor Final agg Final agg Segment executor Segment executor Agg Agg Filter Filter Scan Scan Column storage Column storage Virtual filesystem Virtual filesystem \ Worker Worker Cloud storage 云原生 Meetup 杭州站
8. 元数据管理 • 提供高可用和高性能的元数据读写服务 • 完备事务语义的支持 • 后端存储系统可插拔,方便扩展 云原生 Meetup 杭州站
9. 查询优化器 RBO :使用一系列预定义的启发式规则来选择查询执行计划。 • 基于规则的优化能力 • e.g. ,算子下推,列裁剪、分区裁剪 CBO :通过收集和分析数据库中的统计信息来评估不同执行计划的成本,并 选择成本最低的计划作为最佳计划。 • 基于代价的优化能力 • e.g. , Join Reorder 云原生 Meetup 杭州站
10. 查询调度 • Cache-aware 调度 最大化 cache 命中率,提升读写性能 拓扑发生变化时,最小化 cache 失效的影响 • Resource-aware 调度和流量控制 最大化资源利用率 合理使用资源,避免负载过高 云原生 Meetup 杭州站
11. 计算组 • 多租户隔离 • 读写分离 • 水平和垂直动态扩缩容 • 资源共享 租户 1 计算组 a 租户 2 租户 3 计算组 b 计算组 d 计算组 c 计算组 e 计算组 f Data Storage 云原生 Meetup 杭州站
12. 数据缓存 • • • • 一致性 hash 分配 parts 热数据 worker 节点自动缓存 改进的 bucket-lru 算法 避免数据 reshuffling 云原生 Meetup 杭州站
13. ByConity 部署 • 快速上手 Docker compose • 部署依赖 HDFS + FoundationDB • 部署模式 物理机部署 Kubenetes 集群部署 测试环境 组件名称 CPU 内存 硬盘 网络 实例数 TSO 1 300M 5G 千兆网卡 1 Server 8 32G 100G 千兆网卡 1 Worker 4 16G 100G+ 千兆网卡 1 DaemonManager 1 500M 5G 千兆网卡 1 ResourceManag er 1 2G 5G 千兆网卡 1 生产环境 组件名称 TSO CPU 2 内存 硬盘 网络 500M 5G 万兆网卡 实例数 3 Server 14 60G 1T 万兆网卡 >=1 Worker 30 240G 2T+ 万兆网卡 >=1 DaemonManager 4 10G 10G 万兆网卡 1 ResourceManage r 8 16G 10G 万兆网卡 1 云原生 Meetup 杭州站
14. 应用实例:用户行为分析系统 320TB 2.3 万亿 行 2 万个维 度 云原生 Meetup 杭州站
15. 应用实例:用户行为分析系统 • 避免资源抢占,查询性能百分百稳定 • 运维成本低,故障节点秒级替换 • 无感扩缩容,节约资源成本 • 数据一致性强保障,维护复杂度接近 0 整体性能可以达到 91% 用户查询都可以在 10 秒内完成 云原生 Meetup 杭州站
16. ByConity 社区和用户 • 最新 ByConity 社区 Roadmap 讨论: https://github.com/ByConity/ByConity/issues/26 云原生 Meetup 杭州站
17. 字节开源项目总览 云原生 Meetup 杭州站
18. Thank you 云原生 Meetup 杭州站

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 09:39
浙ICP备14020137号-1 $Carte des visiteurs$