近日,星环科技分布式交易型数据库TranswarpKunDB正式推出2.2版本。新版本内核带来了关键能力升级,主要包括:
●支持与星环大数据基础平台TranswarpDataHub和分布式分析型数据库ArgoDB直接SQL互操作,通过统一的SQL引擎可将数据直接写入KunDB,以及从KunDB做数据分析,进一步完善了TDH的多模型支持能力;
●分布式数据库内置了新的执行器引擎,可以解决跨Shard的数据分析和检索能力,在架构上通过列式数据结构、多协程技术算子内并行和流水线计算模式来提升检索与分析性能;
●查询SQL的兼容性进一步提升,新增APPLY、CTE、中间结果物化等算子,并支持子查询去关联化,从而完善子查询、公共表达式、大表关联查询等SQL的支持,可以完整运行TPC-H等基准测试;
●新增多级数据分区能力,通过DDL指定规则数据可在分片基础上进行二次分区存储,即先分片存储,再分区存储。
KunDB主要面向高并发、大数据量的交易型业务场景,随着KunDB2.2的推出,对分布式查询分析类的SQL的支持和性能进一步提升,适用于大数量下的数据集市业务。某头部医疗信息化公司围绕临床数据中心服务,医院临床、科研、教育、管理服务,通过对数据的科学、合理、有效利用反哺医教研管。在医院的CDR典型场景,采用星环ArgoDB+KunDB形成了联合数据解决方案。临床数据中心的数据由ArgoDB对实时数据进行加工、处理,部分结果实时输出至KunDB,提供给医生进行医疗信息并发查询服务。并发下,多种维度数据查询请求KunDB均可毫秒级响应,医院问诊效率提升。下面我们一起来揭晓新版本的全新产品体验。
全新特性加持:分布式技术创新,数据库体验更加丰富
新特性之一:支持与星环TDH的组件关系型分析引擎Inceptor和分布式分析型数据库ArgoDB直接SQL互操作星环关系型分析引擎Inceptor和分布式分析型数据库ArgoDB,可为用户提供PB级海量数据的高性能分析服务。本次KunDB2.2版本升级可以跟TDH/ArgoDBSQL引擎互操作,为用户提供更大的便利。KunDB作为TDH/ArgoDB另一类存储引擎,支持定义表存储类型为KunDB,支持INSERTINTO...SELECT语句自动将数据批量写入KunDB,或者通过SELECT语句把KunDB的数据拉取到计算引擎中完成分布式计算返回给业务。通过TDH/ArgoDB统一SQL引擎与KunDB进行交互,利于TDH/ArgoDB跟KunDB组成数据仓库+高并发数据集市一站式解决方案。
该新特性的加持,TDH/ArgoDB用户可以在数据不出数据库的情况下,对TDH/ArgoDB的其它存储引擎中的数据分析后将结果转储到KunDB,使用KunDB作为高并发查询业务的数据库存储引擎。或者借助TDH/ArgoDB引擎,对KunDB中的最新鲜的业务数据直接进行复杂分析,而不需要ETL过程。对于已使用TDH/ArgoDB的用户,不需要变更业务层跟数据库交互方式,就可以兼顾复杂分析、高并发查询等业务场景的需求。新特性之二:多级数据分区支持KunDB2.2版本提供了数据分区的支持,KunDB分片存储语句使用的PARTITIONBY语句,2.2之后调整为DISTRIBUTEDBY子句标识数据分片规则,同时PARTITIONBY子句用于数据分区的规则。从而支持数据在多个分布式存储节点上可以分片+分区二级存储,跟存储层的表分区打通。
该特性一方面兼容了MySQL的分区表语法,另一方面数据分布的粒度支持分片和分区两级,可根据业务数据特征选择不同的字段和规则分别进行更加细粒度的管理,对数据管理的灵活性和查询性能都有提升。新特性之三:迭代器模式执行器KunDB2.2的执行器采用了迭代器模式,将常见的计算抽象成基本算子并定义各算子之间的数据接口,SQL执行分解为算子的迭代计算方式,数据以chunk形式,而非单行模式在算子间流转。迭代器架构清晰,算子功能内聚,可针对不同算子进行针对性优化处理。迭代器模式扩展性好,针对新的计算模型可抽象成新的算子。在KunDB2.2中已支持BlockHashJoin、IndexLookupJoin、NestLoopJoin、HashAggr、QuickSort、Apply、Union、Projection、Selection、Limit、TableScan、Max1Row、CTE等算子。
在此基础上,KunDB2.2完善了分布式模式下对MySQL查询类SQL的兼容支持,并在性能上提升。医院高并发数据集市案例中,所有聚合查询、关联查询等复杂查询类SQL均达到了毫秒级响应。新特性之四:子查询去关联优化通过代数理论,子查询可等价转换为关联查询,计算深度减少,可选择更多的关联算子,执行计划更加灵活。与传统的子查询相比,转换为关联查询的执行代价更低,并可多次优化达到性能最优。结果上,SELECT、FROM、WHERE等子句的子查询性能均得以大幅度提升,并支持了UPDATE、JOIN条件子句中使用子查询。TPCH10GB数据规模的测试结果中,Q4、Q7、Q8、Q9、Q11、Q13、Q15等带有子查询的SQL均在1分钟内完成,与MySQL相比性能最高提升了20倍。
新特性之五:支持内存列式计算KunDB中内存中对结果集转换成列式结构缓存,支持所有数据库类型的行列转换。相比于传统的行式计算模型,列式计算引入自适应压缩,基于压缩后编码直接计算,内存消耗降低50%以上,而执行时间不会劣化。尤其是基于列的表达式计算,没有逐行解析的开销,节省了大部分的函数调用。数值类型算术运算符通过内存列式计算方式,与内存行式计算相比,性能最高提升50倍。
新特性之六:计算与存储层通信优化在之前的版本,KunDB查询执行器与存储节点的通信采用的gRPC方式,即SQL引擎KunGate与KunTablet服务通信,KunTablet与存储节点通信。KunDB2.2开始KunGate在SQL执行时可以采用MySQLProtocal方式与存储节点直接通信。KunTablet只负责存储节点的状态监控,与存储层的连接管理、执行管理都在KunGate层完成。
通信链路减少,SQL执行的延迟大幅降低,以TPCC基准测试为参考,性能提升50%左右。新特性之七:中间结果集物化存储在HASHJOIN和SORT算子计算过程中,中间结果超过固定阈值(默认万条)记录时,KunDB执行器可将中间结果以列式方式压缩落盘文件,防止耗费大量内存资源影响数据库服务的稳定性。计算后落盘文件可以自动清理,中间结果临时落盘的记录数阈值可以通过参数设置。对于亿级的表关联查询,也可保证内存不会因中间结果集过大而出现OOM的情况。新特性之八:优化器逻辑优化规则完善KunDB2.2优化器累计实现了下推、子查询去关联化、列裁剪、表达式和条件评估、谓词下推、TopN下推、聚合下推、关联重排序、HINT等查询优化规则。基于优化规则,对于关联查询、关联排序均可不同程度的下推执行,提升了SQL执行的并行度,并且缓解了KunGate的内存压力。以TPCH中的Q4查询SQL为例,KunDB2.2经过逻辑优化后,执行计划更加的简单高效。
以10GBTPCH为例,经过优化后的SQL执行效率较MySQL都有大幅提升。
※其中Q17和Q20因MySQL10分钟无结果,取10分钟作为执行时间。新特性之九:跨连接的执行计划缓存KunDB2.2SQL引擎改造了执行计划缓存的机制,将用户会话中执行的SQL解析结果和执行计划缓存在内存中,给其它连接或者同一连接后续的SQL执行做复用。其它连接后续有相同的SQL请求时,自动找到缓存的SQL与执行计划,通过减少编译和优化的时间,提升SQL的性能。在某金融行业TP业务中,该技术对于简单查询类请求执行时间节省了50%。
新特性之十:执行器支持多协程并行
传统的迭代器模型,通过算子提供的接口管理SQL执行的生命周期。大量接口调用带来了开销,算子内部采用多线程有会频繁线程切换开销。KunDB2.2执行器采用了基于协程的并行执行技术,每个算子作为主协程,算子内开启多个子协程并行,使用生产者-消费者多个面模型实现了算子间的并行。内存消耗、并发切换开销、算子调用开销均大幅降低,而且算子间解耦产生更灵活的执行模型。
关键能力优化提升:支持10w+数据库对象,事务处理性能、MySQL兼容性、关联工具能力全面提升
●元数据服务改造,重构了元数据管理组件,采用了高并发一致性存储方案,支持至少10万以上的数据库对象且性能不会劣化。
●事务处理能力大幅提升,以TPCC为例,较上个分布式版本tpmC提升60%。
●MySQL兼容性持续增强,新增了CTE语法、近40个函数的支持,扩展DQL、SET、ROLE等语法的完善。
●关联工具能力全面增强,主要是数据导入导出、备份恢复时,压缩、加密等功能的丰富和性能提升,其中全量数据导出工具结合存储层直方图性能提升了2倍以上。
国产化能力升级:国产数据库生态完更加完善
KunDB是星环科技自主研发的国产数据库,支持主流国产化CPU(龙芯、飞腾、鲲鹏等)等自主可控的硬件平台和OS部署(UOS、中标/银河麒麟、华为欧拉等),支持东方通、宝兰德等企业中间件,数据库同步工具迪思杰、TapData等。确保数据信息的安全,在用户认证、自主访问控制(DAC)、链路与数据加密、操作与SQL审计等方面提供数据库的多维度安全保护,严格保证数据和业务的安全性和完整性。继KunDBServer和导入导出工具之后,KunDB的备份还原工具KunDR也支持了国产SM4加密算法,所有KunDB存储相关的组件都支持国产加密算法。目前,KunDB凭借出色的产品实力通过了中国人民银行分布式数据库符合性认证测试,进行了检测项目的验证,覆盖了数据库功能、安全、灾难恢复、性能等方面,已经在政府、医疗等多个行业中落地,其中与星环科技分布式分析型数据库ArgoDB形成的联合医疗解决方案已经在全医院落地实施。