《从 TP 到 AP, OceanBase OLAP 核心技术详解.pdf》由会员分享,可在线阅读,更多相关《从 TP 到 AP, OceanBase OLAP 核心技术详解.pdf(31页珍藏版)》请在三个皮匠报告上搜索。
1、张张 鑫鑫 北京奥星贝斯科技有限公司北京奥星贝斯科技有限公司 OceanBase 开源架构师从从TPTP到到APAPOceanBaseOceanBase OLAPOLAP 核心技术解析核心技术解析DataFunSummitDataFunSummit#20232023技术交流:钉钉 332540540101 OceanBase 简介0202 SQL 并行执行0404 行列混合存储引擎0505 资源隔离0303 高级查询优化器0606 快速导入ContentsContents目录目录技术交流:钉钉 33254054OceanBaseOceanBase 简介简介OceanBaseOceanBase
2、发展历程发展历程 自主研发,完整知识产权、核心能力100%掌控 企业级能力,多年支撑蚂蚁核心业务100%负载,数百家单位客户 1.01.0 时代:时代:坚定走向分布式架构坚定走向分布式架构2.02.0 时代:时代:原生分布式数据库原生分布式数据库3.03.0 时代:时代:混合引擎、混合部署混合引擎、混合部署4.04.0 时代:时代:分布式一体化架构分布式一体化架构多个业务系统产品立项产品立项第一个用户2010扩大使用范围扩大使用范围2013核心交易上线核心交易上线支付宝交易金融级核心业务2014全业务覆盖全业务覆盖核心账务核心交易支付2016多家金融客户多家金融客户互联网核心系统2017打破世
3、界纪录打破世界纪录Oracle 兼容公有云服务TPC-C 6088万2019独立商业化独立商业化HTAP 引擎TPC-C 7.07亿走向通用行业、更多头部客户核心系统2020规模化推广规模化推广TPC-H 1526万社区版发布试点海外客户2021公有云走向海外公有云走向海外单机分布式一体化架构公有云上线公有云北美站点开服20222022SQLSQL 引擎,多副本高可用引擎,多副本高可用兼容性,透明扩展,兼容性,透明扩展,多活容灾多活容灾分布式分布式 KV KV 存储存储批量处理,企业级特性批量处理,企业级特性,HTAPHTAPOracle 兼容MySQL 兼容企业级 SQL 引擎SQL 优化S
4、QL 执行存储过程可扩展的分布式架构分布式存储分布式事务分布式调度基于 Paxos 的容灾架构同城三机房两地三中心三地五中心OceanBaseOceanBase 产品产品功能特性功能特性 高性能:TPC-C 7.07亿tpmC 打破世界纪录 高可用:RPO=0,RTO1000台集群节点数6PB单库存储容量3200亿行单表行数RPO=0,RTO 270s 一阶段分布式查询优化 自适应执行引擎 三阶段并行下压技术交流:钉钉 33254054SQL SQL 并行执行并行执行0 02 自适应自适应 TP+APTP+AP 混合负载的执行引擎混合负载的执行引擎SQL执行串行执行本地执行本地数据远程数据分布
5、式执行并行执行并行查询本地并行分布式并行并行DML 多种执行模式 向量化执行 大规模并行处理并行执行调度并行执行调度DFO0DFO1DFOR1R2HJPartition Wise JoinHJHJHJPartial Partition Wise JoinHash-Hash Distribution JoinBroadcast Distribution Join分布式连接算法EX(PKEY)R1R2R1R2EX(HASH)EX(HASH)EX(Broadcast)R1R2CREATE TABLE R1(a int,b int,c int)PARTITION BY HASH(b)PARTITION
6、S 4;CREATE TABLE R2(a int,b int,c int)PARTITION BY HASH(b)PARTITIONS 4;R1.b=R2.bR1.b=R2.aR1.a=R2.aR1.a=R2.a丰富的分布式执行策略丰富的分布式执行策略自适应执行create table R1(a int primary key,b int,c int)partition by hash(a)partitions 4;select b,sum(c)from R1 group by group by b;=|ID|OPERATOR|NAME|EST.ROWS|COST|-|0|PX COORDI
7、NATOR|1|10|1|EXCHANGE OUT DISTR|:EX10001|1|10|2|HASH GROUP BY|1|9|3|EXCHANGE IN DISTR|1|9|4|EXCHANGE OUT DISTR(HASH)|:EX10000|1|8|5|HASH GROUP BY|1|8|6|PX PARTITION ITERATOR|1|7|7|TABLE SCAN|r1|1|7|=Group by/Distinct下压 优化器总是下压 执行时基于实际数据特征决定是否跳过下压的算子技术交流:钉钉 33254054高级查询优化器高级查询优化器0 03 一阶段分布式查询优化一阶段分布式
8、查询优化两阶段变为一阶段 避免不优的计划 执行计划包含分区位置信息 秒级完成50表连接的优化并行下压并行下压下压场景例子v3.2v4.0Group by,无distinct去重的聚合函数select a,sum(d)from t group by a;支持支持Group By,有distinct去重的聚合函数select a,sum(distinct c),count(distinct d)from t group by a;不支持支持Rollupselect a,sum(d)from t group by a rollup(b);不支持支持Distinctselect distinct a
9、from t;支持支持Window Functionselect a,b,sum(d)over(partition by c)from t;不支持支持create table R1(a int,b int,c int,d int,primary key(a,b)partition by hash(b)partitions 4;select sum(distinct c)from R1 where a=5;=|ID|OPERATOR|NAME|-|0|SCALAR GROUP BY|1|PX COORDINATOR|2|EXCHANGE OUT DISTR|:EX10000|3|PX PARTI
10、TION ITERATOR|4|TABLE SCAN|r1|=|ID|OPERATOR|NAME|-|0|SCALAR GROUP BY|1|PX COORDINATOR|2|EXCHANGE OUT DISTR|:EX10001|3|MERGE GROUP BY|4|EXCHANGE IN DISTR|5|EXCHANGE OUT DISTR(HASH)|:EX10000|6|HASH GROUP BY|7|PX PARTITION ITERATOR|8|TABLE SCAN|r1|=技术交流:钉钉 33254054行列混合存储行列混合存储0 04 OceanBaseOceanBase 存储
11、引擎存储引擎Multiple storage versionsDumpDump SSTableSSTableMemoryDiskIn-Memory HashIn-Memory B+-TreeMemTableMemTable (WOS)(WOS)Row-levelIn-MemoryRedo/MVCCSSTableSSTable (ROS)(ROS)Block CacheBlock CacheRow CacheRow CacheMutationLogsScanBig-QueryGetSmall-Q行列混合存储及编码压缩行列混合存储及编码压缩 编码 按列编码 提升数据相似度 规则发现 微块自主选择
12、经验推导 解码 无需解压,直接查询 效果 存储空间是 MySQL/Oracle 1/3 查询缓存使用效率提升Microblock HeaderCol1 HeaderCol2 HeaderCol3 HeaderCol1Col1Col2Col2Col3Col3Row 1Row 2.Row nRow 查询过滤下压查询过滤下压 充分利用编码优势加速查询 LSM-Tree难点 增量数据交叉 谓词算子下压 利用编码聚合信息快速过滤 按列过滤充分利用剪枝 向量化 按列批量解码 SIMD加速Minor SSTableMEMTableMajor SSTableencodingmicroblockencoding
13、microblockMicroblock HeaderCol1 HeaderCol2 HeaderCol3 HeaderCol1Col2Col3 Row 1Row 2.Row nRow indexAndcol2 3col3 1Result BitmapCol1 valueCol1 valueCol1 valueCol1 value技术交流:钉钉 33254054HTAPHTAP 资源隔离资源隔离0 05 多租户多租户ZONE_1P3 P4P2 OBServer P1ZONE_2P3 P4P2 OBServer P1ZONE_3P3 P4P2 OBServer P1P1 OBServer RSP
14、1 OBServer RSOBServerRS P1OBProxyOBProxyOBProxyP1 P2Tenant_1P1 P2Tenant_1P1 P2 Tenant_1Tenant_SYSTenant_SYSTenant_SYSTenant_1Tenant_1Tenant_1Tenant_2Tenant_SYSTenant_2Tenant_2APP_1APP_2一个集群多个租户 多种租户类型并存 资源隔离与共享 大小租户独立扩缩容 统一运维管理解决业务痛点 适合微服务应用架构 适合多租户SaaS服务 适合集团化数据管理混合混合负载的负载的资源资源隔离隔离ZONE_1P5 P6P8 OBS
15、erver P7ZONE_2P5 P6P8 OBServer P7ZONE_3P1 P2P4 OBServerP1 P3P4 OBServerP3 P2 OBProxy交易类业务、实时报表业务WritesReads资源组1P5 P6P8 OBServer P7P1 P3 P2OBServer P4P5 P6P8 OBServer P7P1 P3 P2OBServer P4资源组3资源组3ZONE_4OBProxy决策分析类业务Weak Reads资源组2资源组1资源组2资源组1资源组2资源组1资源组2资源组1资源组2资源组1资源组2交易支付批作业 灵活的隔离机制 物理隔离 弱一致性读读写分离
16、多Zone读写分离 混合负载 基于cgroup的资源组 用户名匹配 SQL语句级匹配 大查询自动隔离 独立大查询队列技术交流:钉钉 33254054快速导入快速导入0 05 旁路旁路(directdirect pathpath)导入)导入MEMTSSTTablet导入数据SSTTabletlockedlockedOSS本地文件路由和控制节点数据节点数据节点数据节点备节点clogobloadertableAPIinsert into selectload data infile快速执行路径优化写入放大问题表锁阻塞写入备节点旁路导入性能旁路导入性能550
17、2459004000500060004xlarge(16c32G)12xlarge(48c96G)堆表 普通插入堆表 旁路导入索引组织表 普通导入索引组织表 旁路导入小结小结:OceanBaseOceanBase 的的 OLAPOLAP 能力和特性能力和特性基本能力基本能力 稳定可靠、高可扩展、高可用 并行执行引擎 高级查询优化器 低成本高性能行列混合存储 多租户与HTAP资源隔离OLAPOLAP 功能功能特性特性 复杂查询(大量表JOIN、复杂子查询)分析函数(窗口函数、rollup)层次查询(connect by)表函数(from table)自定义管道函数(pipe
18、lined table)JSON、GIS类型 用户自定义函数UDF自定义聚集函数 异构数据库集成:dblink 导入:load data infile,obloader,快速导入 导出:select into outfile,obdumper 联邦查询:外表技术交流:钉钉 33254054微信搜索:OBCE666钉钉扫码社区答疑群加入群聊参与社区互动,留下你的足迹Supports:Alex wang,chen,liying1029,and 5.5K others starred this repository.xSky,1008610010,lxiuwenL,and 1.2K others forked this repository.感谢观看感谢观看