当前位置:网站首页>一本揭秘字节万台节点ClickHouse背后技术实现的白皮书来了!
一本揭秘字节万台节点ClickHouse背后技术实现的白皮书来了!
2022-07-06 18:47:00 【芋道源码】
ClickHouse 开源于 2016 年,凭借性能方面的突出优势,在分析型数据库领域发展可谓风生水起。目前,国内外许多头部大厂都在深度使用 ClickHouse 技术。
在性能方面,ClickHouse 在 OLAP 场景下的性能超越同类产品数倍不止,它允许系统以亚秒级的延迟从 PB 级的原始数据生成报告,服务器吞吐量高达每秒数亿行。
但是将ClickHouse 引入企业级生产环境中,仍然存在问题。关于落地实践的坑,并不是业内所有团队都需要自己踩一遍,也不是所有团队都能负担得起这样的成本,我们要做的是吸取足够的经验,以及选择自研、采购等更加实际的解决方案。
在这一点上,字节跳动无疑是一家非常有代表性的国内企业:字节跳动从2017 年开始大规模启用 ClickHouse;作为其深度用户,字节跳动拥有国内规模最大的 ClickHouse 集群。
目前,字节跳动内部的ClickHouse 节点总数超过1.8万个,管理总数据量超过 700PB,最大的单个集群部署规模约为2400余个节点。
当前,字节跳动已将经过五年定制化改造的ClickHouse,沉淀为 ByteHouse,正式通过火山引擎对外提供服务。
从采用并改造开源产品,到上线商业版本对外服务,这是一条非常难走的路,同时也让其中的实践思考和经验更具参考价值。
最近,火山引擎ByteHouse 联合InfoQ 发布白皮书《从ClickHouse到ByteHouse》,深度介绍字节跳动万台节点ClickHouse背后的技术实现,本卷白皮书大致分为四个章节:
- ClickHouse 的介绍;
- ClickHouse 典型场景;
- 针对生产环境中的ClickHouse,ByteHouse 的技术优化思考;
- ByteHouse 的设计和演进思路。
其中,《从ClickHouse到ByteHouse》从第三章开始,重点介绍 ByteHouse 的优化思路。
目前,ByteHouse 对 ClickHouse 做了很多升级和优化,本次挑选了ByteHouse 对 ClickHouse 优化升级中非常重要的三个方面作为详细展开:
- 自研表引擎;
- 查询优化器;
- 弹性可扩展。
在自研表引擎模块,尽管ClickHouse 提供 MergeTree Family、Memory、File、Interface 等几十种不同的表引擎,但是在字节内部实际使用中,还是明显感觉到了一些表引擎不足以满足业务的使用需求,于是进行了相应的优化。
其中,重点介绍 了HaMergeTree 、HaUniqueMergeTree、HaKafka 三种表引擎。
白皮书配图摘选:HaMergeTree副本协同原理
在查询优化器模块,ByteHouse对Optimizer进行了一年多的改造投入,全面升级产品能力,白皮书详细列举了ByteHouse在查询优化器上的改造与优化功能。
为了追求极致性能,ClickHouse 采用的是计算和存储节点强耦合的架构,不能根据各自实际需求分开扩容, 而且在节点扩展后数据无法自动重新分布的问题给ClickHouse扩展带来很多运维的麻烦。
ByteHouse 在改进与优化ClickHouse的过程中,也重点基于该架构进行了调整,如ByteHouse 在存储和计算上的拆解解耦,实现弹性可扩展的技术优化方案。
白皮书配图摘选:计算存储分离架构
除此之外,《从ClickHouse到ByteHouse》还枚举出广告、金融、工业互联网三大行业的实践案例,这些都属于 OLAP 的典型应用行业,并从技术与企业落地等角度给出了当下企业在OLAP数据引擎选型的三个核心关注点。
点击阅读原文下载白皮书
边栏推荐
- 压缩 js 代码就用 terser
- Stm32f4 --- PWM output
- #夏日挑战赛#数据库学霸笔记(下)~
- 猿桌派第三季开播在即,打开出海浪潮下的开发者新视野
- 3D laser slam: time synchronization of livox lidar hardware
- Alibaba cloud middleware open source past
- [xlua notes] array of lua to array of C #
- 纽约大学 CITIES 研究中心招聘理学硕士和博士后
- Halcon instance to opencvsharp (C openCV) implementation -- bottle mouth defect detection (with source code)
- Tips for web development: skillfully use ThreadLocal to avoid layer by layer value transmission
猜你喜欢

A new path for enterprise mid Platform Construction -- low code platform

Blackfly s usb3 industrial camera: buffer processing

【论文阅读|深读】ANRL: Attributed Network Representation Learning via Deep Neural Networks

机器人队伍学习方法,实现8.8倍的人力回报

Web3对法律的需求

建议收藏!!Flutter状态管理插件哪家强?请看岛上码农的排行榜!

AWS学习笔记(一)

1--新唐nuc980 NUC980移植 UBOOT,从外部mx25l启动

阿里云易立:云原生如何破解企业降本提效难题?

Draco - gltf model compression tool
随机推荐
Web3的先锋兵:虚拟人
15million employees are easy to manage, and the cloud native database gaussdb makes HR office more efficient
Stm32f4 --- PWM output
argo workflows源码解析
Infrared camera: juge infrared mag32 product introduction
#yyds干货盘点# 解决名企真题:最大差值
3 -- Xintang nuc980 kernel supports JFFS2, JFFS2 file system production, kernel mount JFFS2, uboot network port settings, and uboot supports TFTP
unity webgl自适应网页尺寸
Why am I warned that the 'CMAKE_ TOOLCHAIN_ FILE' variable is not used by the project?
Schedulx v1.4.0 and SaaS versions are released, and you can experience the advanced functions of cost reduction and efficiency increase for free!
机器人队伍学习方法,实现8.8倍的人力回报
Douban average 9 x. Five God books in the distributed field!
B站6月榜单丨飞瓜数据UP主成长排行榜(哔哩哔哩平台)发布!
Lombok同时使⽤@Data和@Builder 的坑
张平安:加快云上数字创新,共建产业智慧生态
#夏日挑战赛#数据库学霸笔记(下)~
postgresql之integerset
最近小程序开发记录
Web3对法律的需求
Tips for web development: skillfully use ThreadLocal to avoid layer by layer value transmission