从中兴、华为等一系列高新科技企业被美国制裁,到俄乌抵触事件暴发后,东方各国相继发表制裁俄罗斯,以Oracle、IBM、微软、SAP为代表的科技巨头暂停在俄服务,这一系列动作给咱们敲响了减速国产化代替的警钟。数据库作为提供数据存储与解决能力的根底软件,是信息系统的根底、信息安全的基石,因而,数据库自主可控和国产化代替曾经迫不及待。

兼容性是国产化代替要害,自研数据库更具后劲

Oracle数据库倒退较早,在国内市场内霸占了肯定先机,企业通过信息化的长期积攒和变革,基于Oracle开发了大量的零碎业务。为了可能适配新的国产数据库产品,必须对利用代码进行大量批改,各数据表的数据类型、函数、语法规定须要进行零碎、全面的革新,这就要求新的国产数据库对原有数据库可能有很好的兼容性反对,升高迁徙的代码革新老本。

Oracle通过多年的倒退,在SQL语言、性能、实例状态、容灾计划等方面有很多积攒扩大。若要实现Oracle数据库的国产化代替,除了要可能提供在性能、容灾能力、平安能力等方面全方位提供对等的能力,首先要解决的就是如何兼容Oracle的大量SQL方言,尤其是Oracle的PL/SQL这一独特的广受欢迎的语法体系。

中国信通院《数据库倒退钻研报告》中示意,“国内关系型数据库产品中少数是基于MySQL和PostgreSQL二次开发的”。因而,这些产品对MySQL、PostgreSQL兼容性较好,但没有体系化的兼容Oracle,尤其是PL/SQL方面。

“高度的商业数据库兼容能力意味着大量的设计和研发工作,波及产品整体架构的多个方面,非常考验厂商对代码的了解和掌控能力”。国家工业信息安全倒退钻研核心 、中国电子学会和北京国家金融科技认证核心联结公布的《分布式数据库发展趋势钻研报告》中指出,“齐全自主研发的产品在这方面具备先天的劣势,将来无论在兼容性适配还是产品能力的研发上都更具后劲”。

KunDB是星环科技自主研发的国产分布式交易型数据库,提供残缺的关系型数据库的能力,高度兼容MySQL和Oracle,可低成本实现数据库国产化的代替和迁徙,具备可扩大、高并发、高可用、数据灾备等个性,满足企业要害业务解决、高并发查问、业务分布式革新、交易剖析混合的数据中台等简单场景,在金融、政务、能源、医疗、交通、教育等多个行业利用,为用户提供高性能、稳固牢靠、经济实用、自主可控的国产化数据库产品。

高度兼容Oracle,实现低成本国产化平滑代替

KunDB对Oracle语法各个方面高度兼容,成为业内当先的具备撑持Oracle业务迁徙能力的国产数据库。KunDB高度兼容Oracle语法与PL/SQL,反对VARCHAR2/NVARCHAR2、NUMBER等全副罕用数据类型,在PL/SQL语法上,反对管制语句、汇合、动静SQL、子程序、预约义包、错误处理等全副PL/SQL语法,并且通过自主原创的PL/SQL编译器,KunDB反对简单PL/SQL程序,执行性能比解释执行晋升一个数量级,解决了Oracle业务迁徙到国产化数据库的外围痛点,为其余兼容性欠缺提供了根底。

在Oracle数据库对象、DML、函数、零碎视图、内置包、驱动等方面,KunDB做到了罕用性能的兼容,满足大部分业务的迁徙需要,极大升高了企业业务迁徙老本。

例如在某省级社保零碎迁徙过程中,KunDB仅用了3天就实现了8万多行PL/SQL代码的迁徙工作,高效、低成本、平安地保障了原数据库迁徙,平滑实现了数据库系统的国产化代替。

翻新过程语言编译技术,残缺反对Oracle PL/SQL语法

KunDB自研翻新的过程语言编译技术及两头优化语言TIR,反对简单PL/SQL程序,执行性能比解释执行晋升一个数量级。

形象和实现了星环通用两头PL/SQL指令集TIR,为多种代码编译执行形式提供基础表达能力

联合LLVM代码生成技术,间接生成CPU指令,比Go等高级语言运行时生成代码的效率晋升一个数量级

内置LLVM优化器,应用最新的编译优化技术,做有效代码、公共表达式、死码、边界查看打消等优化,保障最终执行代码的最简化

自研表达式计算引擎,反对向量化和JIT执行,PL/SQL和SQL均可调用,比Go语言的通用表达式计算性能晋升5倍以上

KunDB为PL/SQL定义了极其精简、通用的TIR指令集,其中6类指令可用于PL的解释,8条指令可用PL/SQL中的游标、游标遍历、动态SQL、动静SQL的解释,这14条指令的组合,可笼罩PL/SQL语法范畴内所有语法组合的解释。PL/SQL被解析成形象语法树后,PL和SQL被TIR指令集解释成相应的指令汇合。

TIR指令反对LLVM编译器,可生成不同平台的Native code,即CPU指令集减速执行。在LLVM的编译过程中,还会主动同步实现局部代码的逻辑优化,比方有效代码的去除。编译生成的执行指令集KunDB会保留在元数据中,为雷同PL/SQL文本提供可复用的指令集(相似执行打算)。而对于LLVM指令集中还不反对的PL/SQL指令,会保留为高级语言(Golang)的指令最终交由高级语言编译器编译执行。

所以KunDB的PL/SQL执行,是将大部分指令映射成CPU指令执行的,而且不须要反复编译,相较于每次编译成其它高级语言的形式,有较大的性能劣势。以相似TPCC中NewOrder解决的PL/SQL实现为例,不思考SQL执行的状况下,纯PL的逻辑的执行,应用KunDB的动静编译执行是齐全由高级语言编译执行的3倍以上。

另外,PL/SQL以及惯例SQL语法中的表达式计算是影响性能的关键因素之一,也借鉴了动静编译执行的思维,KunDB设计和实现了基于列存数据和动静执行的表达式引擎,对于数值类型的聚合计算,应用动静编译执行比一般解释执行要快10倍以上。

查问优化和向量化执行引擎,高性能简单SQL查问

KunDB基于火山模型的优化器和向量化执行引擎反对了跨分片的查问,反对的SQL蕴含递归查问、嵌套子查问、别名等简单SQL场景。针对聚合计算类SQL中性能耗费较高的表达式计算做了特地优化的表达式模块,逻辑优化能够用该模块进行如常量折叠,公共表达式提取等优化,执行器调用该模块进行表达式的计算。以TPCH为例,KunDB可高效跑完100GB规模内的全副22个简单查问SQL。

适配Oracle利用生态,保障业务平滑迁徙

KunDB适配Oracle利用开发生态,反对基于Oracle的业务间接或者通过中间件框架连贯KunDB,包含Java、.NET、C/C++等语言开发的利用,尤其是针对C/C++利用提供兼容Oracle的OIC/OCCI驱动,来保障业务的平滑迁徙。KunDB还提供了凋谢的数据生态,通过全局事务日志可与异构零碎实时同步,可利用在实时数仓建设、Oracle和KunDB双数据库系统并轨运行回切等场景。

以某大型医疗HIS零碎适配为例,应用的.NET EFCore开发框架与星环科技KunDB连贯,通过高兼容性和迁徙服务保障了多个外围业务零碎的平滑迁徙, 业务全量功能测试中个别的外围数据库源零碎数据类型、语法兼容问题仅通过大量调整便能达成利用适配,在节俭大量人力老本的同时,保障了数据库无损切割,实现了疾速、平安地替换Oracle的指标。

星环科技分布式交易型数据库KunDB自主研发,并以优异的问题通过了工信部、央行、信通院等多项数据库权威测试认证,为用户提供高并发、高性能、高牢靠的国产数据库产品。同时,KunDB高度兼容Oracle PL/SQL和MySQL方言,可实现低成本数据库国产化代替,并且适配反对国产服务器、芯片、操作系统等软硬件生态,助力企业打造自主可控数据平台。