MatrixOne:HTAP数据库中的OLAP设计 龙冉–矩阵起源–研发工程师 DataFunSummit#2023 MatrixOne简介 矩阵起源是一家数据库创业公司,致力于打造开源超融合异构数据库MatrixOne,MatrixOne是一款面向未来的超融合异构云原生数据库管理系统。通过全新设计和研发的统一分布式数据库引擎,能够同时灵活支持OLTP、OLAP、Streaming等不同工作负载的数据管理和应用,用户可以在公有云、自建数据中心和边缘节点上无缝部署和运行。 Github:https://github.com/matrixorigin/matrixone 目录 CONTENT MatrixOne整体架构 MatrixOneOLAP引擎 TPC-H测试结果 01 MatrixOne整体架构 DataFunSummit#2023 Overview Fileservice Logservice Datanode Computationnode HAkeeper Readdata TAE(TransactionalAnalyticalEngine) 02 MO的OLAP计算引擎 DataFunSummit#2023 OLAP需要具备的SQL能力 •多表join •子查询 •窗口函数 •CTE/RecursiveCTE •UDF •…… 计算引擎构成 ParserPlannerOptimizerExecution ASTTree LogicalNode LogicalNode PhysicalOperator 1.Bind(Algebrizer) 2.子查询消除 RBOCBO PipelineBuild •TPC-HQ2,4,11,16,17,18,20,21,22 •selects.name,e.coursefromstudentss,examsewheres.id=e.sidand e.grade=(selectmin(e2.grade)fromexamse2 wheres.id=e2.sid) 展开前展开后 展开前 •selects.name,e.coursefromstudentss,examse wheres.id=e.sidande.grade=(selectmin(e2.grade) fromexamse2wheres.id=e2.sid) 展开后 •selects.name,e.coursefromstudentss,examse,(selectsid,min(e2.grade)asmin_gradefromexamse2groupbye2.sid)e3wheres.id=e.sidande.grade=e3.min_gradeands.id=e3.sid •减少IO •列裁剪 •谓词下推 •谓词推断:q7q19 •Runtimefilter:q18 •减少计算 •Joinorder:q2q5q7q8q9q21 •聚合下推/上拉:q13q17 •Groupjoin 谓词推断(TPC-HQ19) •确定事实表与维度表 •确定事实表与维度表 •各事实表与其维度表join成子树 •确定事实表与维度表 •各事实表与其维度表join成子树 •先与过滤性好的维度表join •确定事实表与维度表 •各事实表与其维度表join成子树 •先与过滤性好的维度表join •子树之间用经典Joinorder算法 orders customer lineitem supplier nation region nation supplier lineitem customer orders region nation supplier lineitem customer orders region nation supplier lineitem customer orders region Push模型基于不同的Operator组成流水线Pipeline 自底向上Push调度,以数据为中心而非Operator为中心LogicalPlan后序遍历即可得到基础Pipeline结构 Morsel-DrivenParallelism 以TaskQueue为核心调度Pipeline,每个数据块的单位称为Morsel一个任务执行结束,通知调度器将后续任务加入队列 CPU空闲时,可以从其他CPU偷取任务执行(WorkStealing) SELECT*FROMS JOINRUSINGAJOINTUSINGB; Aggregate Group Pipeline InnerJoin LeftJoinSemiJoinAntiJoin MarkJoin Source Dispatch Connector LoopJoin Projection Restrict HashBuild MergeMergeGroupMergeLimitMergeOffsetMergeOrderMergeTop 03 TPC-H性能测试结果 DataFunSummit#2023 TPC-H100G SF xscold(0316) SFxshot(0316) 2023/6/8ekscold29f1e83 2023/6/8ekshot 29f1e83 Q1 12 10 67.814 10.75 Q2 4.9 3 18.298 1.75 Q3 5.4 4.5 36.462 10.73 Q4 5.1 5 17.594 10.82 Q5 6.4 6.1 13.817 7.21 Q6 0.49 0.54 1.766 1.21 Q7 4.4 4.1 10.858 10.36 Q8 6.2 5 11.428 5.86 Q9 12 12 40.385 37.1 Q10 10 9.4 20.382 18.46 Q11 2.5 1.9 3.724 1.3 Q12 3.1 2.8 12.29 5.39 Q13 17 15 20.647 20.83 Q14 0.92 0.86 7.04 7.89 Q15 2.7 1.6 3.936 4.34 Q16 3.5 3.2 6.504 5.29 Q17 3.9 3.6 3.473 3.41 Q18 28 25 16.413 12.77 Q19 5.7 3.5 8.002 5.3 Q20 3.2 2.9 2.314 2.55 Q21 12 12 34.46 31.92 Q22 2.3 2.1 3.487 3.8 233.738 151.71 134.10 361.09 219.06 感谢观看 欢迎加入MatrixOneBetaProgram用户体验计划 MatrixOneBetaProgram是矩阵起源全新推出的,与客户、用户一起持续提升MatrixOne产品和性能体验优化的计划。 新功能内测权益产品设计参与权益新功能本地环境优先测试权益开发过程的直接发言权益专家端到端专业支持权益 FEB MAR APR MAY JUN JUL MOEv0.7 MOCAlpha MOEv0.8MOEv0.9 MOGA MatrixOne 产品路线 Beta Program BetaProgram发 ublicBeta(公开招募) 客户交流沙龙 2023年活动 计划 产品发布会 行业合作伙伴沙龙 行业合作伙伴沙龙 线下 线下客户交流沙龙 沙龙 线下客户交流 线上研讨会 P ivateBeta(仅邀请) Pr 布 加入MatrixOneBetaProgram •Step1:扫描下方小程序码提交注册 •Step2:MO架构师将会通过邮件的方式进行初步联系和沟通 •Step3:加入BetaProgram社区, 开始您和MatrixOne的旅程 加入MatrixOne社区群,获取PPT www.matrixorigin.cn