企业级应用早期的架构模式是C/S(Client/Server)模式,Client做人机交互逻辑的呈现,Sever做业务计算逻辑的实现。这就类似餐馆的运作模式,Client是前台的服务员提供点菜和上菜服务,而Server则是后厨完成菜品的制作。
那么扮演Server的角色是谁?数据库管理系统(DBMS)。在C/S架构中,Client发起请求,调用数据库中的存储过程或函数来完成业务逻辑的计算。所以在早期的企业级应用中,大量的业务逻辑运算是在数据库内完成的。为了最大程度简化开发过程,充分发挥出数据库的能力,开发人员会使用数据库提供的各种辅助功能来完成业务应用开发。在这样的情况下,上层业务应用实质上是构建在数据库管理系统之上的,两者紧密关联,不可分割。
虽然在数据库管理系统领域有一系列的国际标准,但商业数据库厂商提供的能力是远远超出国际标准的。以Oracle为例,作为行业事实标准的制定者,Oracle提供了上层应用所需的各种能力及行业最佳实践,通过四十多年在千行百业中数万个应用场景中的打磨锤炼,无论是功能还是性能方面都远超其他数据库管理系统。这些能力帮助应用软件开发商降低了应用软件开发难度,同时提高了开发效率和质量。
如果应用开发商深度使用了Oracle的各种能力,那么将应用迁移到其他数据库管理系统之上将面临巨大的难度、高昂的成本、以及未知的风险!这也是为什么数据库管理系统国产化推进如此艰难的一个重要原因。
而要解决这个问题,最大程度利用原有资产,必须在迁移过程中尽可能对上层应用透明,通过国产数据库自身能力的增强,实现对国外数据库产品的原生兼容,做到低难度、低成本、低风险平滑迁移。
KingbaseES是人大金仓自主研发的企业级大型通用数据库管理系统,提供Oracle、MySQL和SQLServer三大兼容模式,在应用不改、性能不降、习惯不变的情况下,实现国外数据库的迁移替代。本文将全面阐述KingbaseES的异构数据库兼容架构设计思路及Oracle兼容的高级功能。
01
灵活扩展的兼容架构
KingbaseES在产品架构上采用可插拔式的体系架构,可灵活扩展,兼容多种生态,兼容商业和开源的外部接口协议,能够支撑更多核心能力。
KingbaseES在默认情况即为兼容Oracle模式,并支持通过控制参数“initdb -m”切换兼容模式。
02
全面完备的兼容能力
Oracle兼容性是一个系统性的工作,KingbaseES以内核兼容为基础,打造出涵盖内核、工具和接口的全方位 Oracle 兼容能力。当前Oracle 常用能力兼容性已达100%!
KingbaseES
应用不改,原生兼容
随着各行各业数字化转型的演进,应用对数据处理的需求越来越复杂。随之而来的是数据库的能力越来越多样,这一点在传统交易业务OLTP场景中尤为突出。KingbaseES 以一系统多模式的方式,提供不同数据库的兼容能力。以应用中占比最大的Oracle数据库为例,KingbaseES除全部兼容其基本能力外,还兼容PL/SQL内置包、DBLink等高级能力,从而在客户应用移植时,实现应用无感、平滑迁移。
KingbaseES提供PL/SQL内置包,通过内置包扩展数据库功能,当前内置包数量达200+,可提供各类的功能和服务。后续,KingbaseES将会继续完善并扩展这些包的能力。
DBlink是Oracle的一项重要功能,基于DBlink,用户可以实现跨库的查询和事务。DBLink是KingbaseES数据库中的增强功能,KingbaseES 兼容Oracle的DBlink访问语法及功能,支持同构和异构数据库访问,应用无须修改代码。此外,KingbaseES还在DBlink的性能方面做了诸多优化。
基于KingbaseES的DBlink,用户可实现:
Ø 数据的共享和交换;
Ø 数据分片,提高数据库的扩展性和性能;
Ø 数据库集成,便于数据的整合和管理;
Ø 跨数据库查询,便于数据的统计和分析。
KingbaseES
性能不降,稳定高效
数据库性能一直都是用户关注的核心议题,在当下数字化建设带来爆炸式增长的海量数据的场景下,数据库性能面临着新的要求和挑战。KingbaseES在提升数据处理性能方面做了大量工作,如提供分区能力支持处理大数据量数据,通过物化视图提升数据查询中查询效率,通过批量DML优化、copy等功能提升接口的效率......
用户在应用中会遇到超大表的情况,为提升查询效率和数据更新的效率,可将表拆分为小表,这就涉及到如何拆分的问题。KingbaseES 完全兼容Oracle 的分区形式,在分区优化方面也提供分区剪枝和并行分区智能优化,从而提供能与Oracle比肩的分区能力。分区管理方面,KingbaseES支持增加、删除、合并、交换、拆分等与Oracle相同的操作。
物化视图预先将计算好的结果集存储在数据库中,可被多次查询和访问,避免了每次查询都需要重新计算的问题,从而提高查询性能。还可将复杂的查询逻辑封装在视图中,简化查询语句,提高查询的可读性和可维护性。
KingbaseES支持对物化视图的创建以及手动刷新和增量刷新,如果修改了物化视图基表可根据相应规则更新物化视图中的数据,以保证物化视图与基表的数据一致性。
而在客户端编程接口的性能方面,KingbaseES的多数接口都实现了批量DML的优化。通过批量操作,其插入效率是单条多批次的几何倍数,例如:10000数据,如果采用循环单条插入的耗时为5s,采用批量插入后,耗时为5/10000 s,可以有近10000倍的收益;如果针对批量插入,还可以考虑采用copy的方法,其效率更高,可以有近100000倍的收益!
KingbaseES
习惯不变,好用易用
KingbaseES提供了完全符合标准规范的 JDBC、ODBC 等通用接口,同时兼容Oracle 的C语言的自有接口OCI,OCCI,Pro*C的所有常用API,与国内竞争对手的兼容度相比较处于领先地位,并扩展了基于各类语言开发的数据库访问接口包括Perl、GoLang、PHP、Python、QT、 .Net,Rust等。同时,支持开发常用框架,包括基于JDBC的Hibernate、Mybatis、Mybatis-plus,数据库管理框架Flyway和liquibase,工作流框架Activiti,基于Python的Django、sqlalchemy,基于ado.net的ef6、efcore,基于libkci的QT,基于PHP的thinkphp,迁移过程中对于应用程序中使用的框架和接口部分,只需要修改连接串和更换应用驱动,便可实现业务的无缝迁移。
此外,KingbaseES数据库还提供与Oracle 对等的空间数据GIS处理能力;兼容Oracle内置原生XML/JSON能力,实现对半结构化文档型数据的处理。开发人员无需学习多种数据处理平台的专用API,从而降低开发成本。
KingbaseES在Oracle兼容上有着独特的优势和深厚的积累,以上仅仅是冰山一角。未来,人大金仓还将继续在Oracle兼容上深耕,不断升级打磨产品。
更多兼容性信息
请查阅https://help.kingbase.com.cn/v8/development/develop-transfer/kes-vs-oracle/index.html
END
Oracle数据库自发布至今的40多年里,伴随着数据库产业潮水变迁般的发展史,一直处于领先地位,使得国内诸多关键行业深度依赖Oracle。
面对市场和业务用户的需求,人大金仓KingbaseES选择了Oracle兼容性的道路,以提供更大的客户价值!这其实也是一个选择性重走Oracle 40年发展之路的过程,通过不断地兼收并蓄去融合各类数据库技术与能力,满足纷繁复杂的客户需求和业务挑战。然而,无论是Oracle兼容性或是其他软件的兼容性都非一朝一夕之功,也非一蹴而就。在兼容性的道路上,人大金仓通过了大量的测试和验证,反复打磨锤炼,来确保产品的稳定性和可用性,从而真正能够支撑和保障用户业务。
坚持自主创新与兼收并蓄的发展思路,当前人大金仓KingbaseES已跨越“能用”的阶段,正趋于“好用、易用”,并全面兼容Oracle模式。在迁移替换场景下,人大金仓KingbaseES数据库将是更好的选择,助力用户低难度、低风险、低成本,平滑地实现国产数据库迁移!
编辑:王堇
审核:日尧