AntDB融合数据库实时流数据处理引擎揭秘
AntDB数据库发展历程
AntDB作为亚信科技全系产品的数据库底座,历经多年发展,已形成成熟的“超融合”架构。其发展历程如下:
- 第一代(2012-2016):原生代分布式架构,高度兼容Oracle特性(AntDB 5.x)。
- 第二代(2016-至今):多模原生分布式数据库,包括拥抱PostgreSQL生态(AntDB 3.x)、拥抱MySQL生态(AntDB 4.x)、自研内存数据库(AntDB 6.x)以及“超融合”架构流式实时数仓(AntDB 7.x)。
- 最新进展:AntDB 8.X,进一步强化超融合能力,融合6大数据应用需求能力,包括交易型(AntDB-T)、时序型(AntDB-TS)、向量引擎(AntDB-V)、流处理(AntDB-S)、分析型(AntDB-A)和内存计算(AntDB-M)。
AntDB流处理引擎内核揭秘
AntDB流处理引擎颠覆传统数据库内核,大幅简化架构,提升性价比。其核心特点包括:
- 全流程SQL处理:兼容传统SQL语法,提供流式处理与推送能力。
- 一体流式处理引擎:一站式性能提升,易用性高。
- 技术堆栈简化:一套技术栈覆盖各类数据库应用场景,融合流式计算与传统交易、分析型数据存储。
- 数据实时流转:原生支持流流关联与流表关联,打破流引擎与数据库壁垒。
- SQL简易:数据在数据库内部,流对象和表对象之间自由流转,支持索引、流表关联、触发器、物化视图等方式处理数据。
流式数据库核心功能和逻辑模块
- 接口驱动层面:针对jdbc、odbc、libpq等接口驱动增加实时数据推送功能,兼容现有接口。
- SQL查询引擎层面:增加流处理特有语法,优化器及元数据针对流式处理做修改。
- 执行引擎层面:增加PUSH模式提高实时性,支持流式窗口分析、流式关联查询、异步屏障快照、特殊设计的并发模型。
- 存储引擎层面:增加流对象存储、流约束、流索引,支持读写多种外部数据源。
流式数据处理示例
以教师数据为例,展示创建流对象、插入数据、推送流式数据处理结果的流程。
流式窗口统计
- 窗口类型:滚动窗口、滑动窗口、会话窗口、全局窗口。
- 语法解析:解析过程将emitchanges带给执行计划,传递窗口类型、长度、步长等信息。
流表JOIN
- 连接方式:流和一张或多张表join,结果为流。
- 执行计划:优化器生成计划树保证流在执行计划树的最左叶子结点,流表JOIN节点类型为NestLoop。
- 执行器交互:数据库执行器先获取左子节点计算结果,再获取右子节点进行关联。
双流JOIN
- 类型:常规join、区间join、窗口join。
- 执行计划:顶层算子为MultiStreamJoin,左右子树均为NestLoopJoin算子。
多流多表JOIN
- 执行计划:顶层算子为MultiStreamJoin,左右子树均为NestLoopJoin算子,涉及多个对象JOIN,优化器生成最优的JOIN类型。
外部数据源
- FOREIGN STREAM对象:用于处理外部流数据服务。
- 创建步骤:创建插件、服务、用户映射、外部表/外部流。
案例:电信领域核心系统中的应用
选型依据
- 自主维度:企业资质、知识产权、自主程度。
- 技术维度:研发侵入度、运维侵入度。
- 生态维度:技术生态、产品生态、合作生态、选型准备。
数据库迁移过程
- 时间轴:前期准备、迁移过程、迁移验证、迁移实施。
- 流程:前期调研、应用兼容性调研和评估、性能评估报告、硬件资源评估、迁移规划和准备、应用解耦与规划、AntDB规划高可用与资源规划、容灾规划、AntDB部署、迁移改造和认证、应用改造、优化和联调、数据库改造、功能验证、CDC全量数据导入、AntDB联调与测试、性能测试与调优、割接上线和保障、全量和增量数据加载数据校验、异构数据库并行CDC、反向同步业务链接原库(必要时)。
CRM核心系统全域数据库替换技术创新
- 多范围兼容:语句级、会话级、全局级。
- 兼容点:语法兼容、connect by、ROWNUM、sysdate、函数兼容、to_date、ora_hash、大小写、函数别名、隐式转换、dual 表、系统视图。
- 效果:减少超过2万处代码修改,大幅降低应用适配改造的工作量。
CRM系统全域数据库替换技术创新解决方案
- 子事务性能优化:将单个子事务锁拆分成多个,利用hash算法打散保存到不同的子事务缓存中,降低锁的粒度,提升性能。
- 应用效果:客户中心数据库业务量至少上升40%以上,SQL的平均执行效率上升10%以上。
AntDB分片裁剪性能优化
- 优化方法:添加新的函数属性,在解析阶段使用常量替换sysdate,提前将多余的分区过滤。
- 效果:分区表毫秒级响应,部分SQL性能甚至优于Oracle。