当前位置:网站首页>一本揭秘字节万台节点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数据引擎选型的三个核心关注点。
点击阅读原文下载白皮书
边栏推荐
- Argo workflows source code analysis
- Metaforce force meta universe development and construction - fossage 2.0 system development
- Compress JS code with terser
- Pioneer of Web3: virtual human
- unity webgl自适应网页尺寸
- Station B's June ranking list - feigua data up main growth ranking list (BiliBili platform) is released!
- 【论文阅读|深读】ANRL: Attributed Network Representation Learning via Deep Neural Networks
- Increase 900w+ playback in 1 month! Summarize 2 new trends of top flow qiafan in station B
- A new path for enterprise mid Platform Construction -- low code platform
- Use of pgpool II and pgpooladmin
猜你喜欢
Web3's need for law
Collection recommandée!! Quel plug - in de gestion d'état flutter est le plus fort? Regardez le classement des manons de l'île, s'il vous plaît!
Time synchronization of livox lidar hardware -- PPS method
Processus général de requête pour PostgreSQL
如何从0到1构建32Core树莓派集群
1个月增长900w+播放!总结B站顶流恰饭的2个新趋势
压缩 js 代码就用 terser
本周 火火火火 的开源项目!
低代码平台中的数据连接方式(上)
云原生混部最后一道防线:节点水位线设计
随机推荐
Recent applet development records
【论文阅读|深读】DNGR:Deep Neural Networks for Learning Graph Representations
【Unity】升级版·Excel数据解析,自动创建对应C#类,自动创建ScriptableObject生成类,自动序列化Asset文件
3 -- Xintang nuc980 kernel supports JFFS2, JFFS2 file system production, kernel mount JFFS2, uboot network port settings, and uboot supports TFTP
GEE升级,可以实现一件run tasks
3D laser slam: time synchronization of livox lidar hardware
go swagger使用
FLIR blackfly s industrial camera: auto exposure configuration and code
How do I dump SoapClient requests for debugging- How to dump SoapClient request for debug?
FLIR blackfly s industrial camera: synchronous shooting of multiple cameras through external trigger
【森城市】GIS数据漫谈(二)
Application analysis of face recognition
6 seconds to understand the book to the Kindle
Compress JS code with terser
15million employees are easy to manage, and the cloud native database gaussdb makes HR office more efficient
postgresql之整体查询大致过程
C#/VB.NET 删除Word文档中的水印
unity 自定义webgl打包模板
FLIR blackfly s usb3 industrial camera: white balance setting method
[paper reading | deep reading] graphsage:inductive representation learning on large graphs