TeleDB支持提供高效的分布式数据查询能力。分布式查询架构主要由四部分组成,分别为:客户端、GTM、CN和DN。
- 客户端:负责发送读写请求,缓存数据和文件,接收返回结果。
- GTM:负责提供全局事务id和快照。
- CN:负责全局事务、SQL优化、计划分发和结果汇聚。
- 全局事务:从GTM获取全局事务id和快照。
- SQL优化:生成最优的执行计划。
- 计划分发:将全部计划或部分计划分发给相应的DN。
- 结果汇聚:收集DN返回结果,汇总后返回客户端。
- DN:负责计划执行、数据交互和返回结果。
- 计划执行:接收CN的执行计划,并执行。
- 数据交互:如果需要其它DN数据,从其它DN获取数据。
- 结果返回:将执行结果返回给CN。
高效的分布式数据查询的核心功能是向量化引擎能力。向量化引擎能力通常适用于 OLAP 数仓类应用场景,因为分析型系统一般都是数据处理密集型负载,涉及大规模的数据分析和计算;处理过程中基本上都是采用顺序方式来访问表中大部分的数据,然后进行计算并将计算结果输出给终端用户。向量计算能够同时处理多个数据元素,以向量化的方式执行计算操作,这种并行处理的方式可以显著提高计算性能,加快数据分析的速度。
向量化引擎包括五大功能,分别为batch slot 功能、 表达式转换、向量化节点、向量化计算和向量化执行计划解析。
- batch slot 功能:将单条 slot 转换成 batch slot,提升计算密集型。
- 表达式转换:表达式转换是指将TeleDB中的表达式重写为更适合向量化处理的形式。这种转换的目的是为了让表达式能够更好地利用现代处理器的并行计算能力。通过将表达式转换为向量化形式,可以显著减少循环和其他控制结构的开销,提高数据处理速度。
- 向量化节点:向量化节点是指在数据库执行计划中负责执行向量化操作的处理单元。通过向量化节点,可以减少循环和其他控制结构的开销,提高数据处理速度。并且向量化节点的代码通常比循环更容易编写和维护,简化代码的同时提高可读性和可维护性。
- 向量化计算:向量化计算功能是指在数据库在对数据类型的数据做计算处理过程中,将原本需要逐条处理的数据类型,转换为可以同时处理多个数据元素的形式。通过对数据类型进行向量化适配,可以提升该类数据类型在向量化引擎下的表现。
- 向量化执行计划解析:支持通过explain命令来查看向量化执行计划。