更多技术交换、求职机会,欢送关注字节跳动数据平台微信公众号,回复【1】进入官网交换群
近日,《火山引擎云原生数据仓库 ByteHouse 技术白皮书》正式公布。白皮书简述了 ByteHouse 基于 ClickHouse 引擎的倒退历程,首次具体展示 ByteHouse 的整体架构设计及自研核心技术,为云原生数据仓库倒退,及企业数字化转型实战使用提供最新的参考和启迪。
以下为 ByteHouse 技术白皮书作业执行流程版块摘录。
技术白皮书(上)(中)精彩回顾:https://xie.infoq.cn/article/5c9471c7adb58e4bb43b69c4d
https://xie.infoq.cn/article/086b4e706965a6bd81f6a6ff2
ByteHouse作业执行流程
ByteHouse 中的作业依照响应优先级分为 3 大类:Read query、Write query 和 Background 的作业。
不同类型的作业,依照后面所述,能够运行同一个工作节点上,也能够拆散开来。
数据查问流程
服务节点负责响应和承受用户查问申请,并调度到相应的计算组中去执行,并回传后果给服务节点。
各个计算节点执行完子查问之后, 很多时候会有相应计算结果要集中处理,如果心愿这一层有计算组的隔离,务节点的局部性能例如聚合最终后果须要下放到计算组中的计算节点中去。
Read Query 模块交互图
Query 的执行过程:
1.用户提交 Query 到服务节点
2.从元数据服务获取须要的元数据信息,对 Query 进行 Parse,Planning,Optimize,生成执行打算
3.服务节点对 Query 进行调度
4.计算节点接管到 Query 子查问
5.Query 从近程文件系统获取原始数据,并依据 Query 的执行打算在计算节点上执行,并发回计算结果给服务节点汇总。
数据写入流程
ByteHouse 实现了读写拆散,有独自写入节点来执行写入申请,写入申请分为几类:insert values, insert infile, insert select,insert values 可能蕴含大量数据集,为防止网络传输开销间接由服务节点本地执行 insert 而无需转发给写入节点来执行。
Write Query 模块交互图
Query 的执行过程:
1.用户提交 Write Query 到服务节点
2.服务节点从元数据服务获取须要的元数据信息,对 Query 进行 parse,planning,optimize,生成执行打算,依据写入类型分为以下两种模式来执行:
- Local 模式:insert values 操作间接由服务节点跳转到步骤四间接执行
- 分布式模式:对于 insert infile/select 模式间接将执行打算信息分发给一个写入节点执行
3.服务节点对写入申请依据调度策略抉择适合的写入节点执行
4.写入节点从读取节点(insert select)或者内部存储(insert infile hdfs)读取数据流
5.写入节点写入数据到本地盘
6.写入节点 导出 本地盘到云存储
7.写入节点 更新元数据
后台任务
为了更好的查问性能,会有一些作业在后盾对写入的数据进行更进一步的解决。ByteHouse 中次要包含如下 3 种后台任务。
- Merge:将不同的 parts 文件按 Primary Key 做排序合并成一个大的 part 文件。
- Checkpoint: 对表的任意更新,例如元数据的扭转,数据字典等异步构建操作会产生新的增量数据文件,这部分新产生的增量和原有的数据文件会在后盾合并成一个新的数据文件。
- GC:空间回收,当数据文件中的垃圾空间超过肯定阈值后,会触发后台作业回收空间.
点击链接,立刻下载完整版白皮书👇
https://www.wjx.cn/vm/Ot0YJFq.aspx#
点击跳转 火山引擎云原生数据仓库ByteHouse理解更多
发表回复