人大金仓三大兼容:Oracle迁移无忧

dde005c9b876525dd34828050c603809.gif

企业级应用早期的架构模式是C/S(Client/Server)模式,Client做人机交互逻辑的呈现,Sever做业务计算逻辑的实现。这就类似餐馆的运作模式,Client是前台的服务员提供点菜和上菜服务,而Server则是后厨完成菜品的制作。

那么扮演Server的角色是谁?数据库管理系统(DBMS)。在C/S架构中,Client发起请求,调用数据库中的存储过程或函数来完成业务逻辑的计算。所以在早期的企业级应用中,大量的业务逻辑运算是在数据库内完成的。为了最大程度简化开发过程,充分发挥出数据库的能力,开发人员会使用数据库提供的各种辅助功能来完成业务应用开发。在这样的情况下,上层业务应用实质上是构建在数据库管理系统之上的,两者紧密关联,不可分割。

虽然在数据库管理系统领域有一系列的国际标准,但商业数据库厂商提供的能力是远远超出国际标准的。以Oracle为例,作为行业事实标准的制定者,Oracle提供了上层应用所需的各种能力及行业最佳实践,通过四十多年在千行百业中数万个应用场景中的打磨锤炼,无论是功能还是性能方面都远超其他数据库管理系统。这些能力帮助应用软件开发商降低了应用软件开发难度,同时提高了开发效率和质量。

如果应用开发商深度使用了Oracle的各种能力,那么将应用迁移到其他数据库管理系统之上将面临巨大的难度、高昂的成本、以及未知的风险!这也是为什么数据库管理系统国产化推进如此艰难的一个重要原因。

而要解决这个问题,最大程度利用原有资产,必须在迁移过程中尽可能对上层应用透明,通过国产数据库自身能力的增强,实现对国外数据库产品的原生兼容,做到低难度、低成本、低风险平滑迁移。

KingbaseES是人大金仓自主研发的企业级大型通用数据库管理系统,提供Oracle、MySQL和SQLServer三大兼容模式,在应用不改、性能不降、习惯不变的情况下,实现国外数据库的迁移替代。本文将全面阐述KingbaseES的异构数据库兼容架构设计思路及Oracle兼容的高级功能。

01

灵活扩展的兼容架构

KingbaseES在产品架构上采用可插拔式的体系架构,可灵活扩展,兼容多种生态,兼容商业和开源的外部接口协议,能够支撑更多核心能力。

ea10073779648b586e3e7781b02652ff.png

KingbaseES在默认情况即为兼容Oracle模式,并支持通过控制参数“initdb -m”切换兼容模式。

02

全面完备的兼容能力

Oracle兼容性是一个系统性的工作,KingbaseES以内核兼容为基础,打造出涵盖内核、工具和接口的全方位 Oracle 兼容能力。当前Oracle 常用能力兼容性已达100%!

7c965bae1a439dd606d34a599ee83565.png

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数据库将是更好的选择,助力用户低难度、低风险、低成本,平滑地实现国产数据库迁移!

23a063a432c6d225ebf197924a7a22a7.jpeg

18c254b43d024ad5c29931e7a967aa0f.jpeg

dde0a766822e280d4b7d2c755c1ccb43.jpeg

a982ad94c25e0ccfb1d71ee4fa57caa1.png供稿:产品研发中心

编辑:王堇

审核:日尧

f7f46d60dff44b6b73fb3379837b4f4d.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/34053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式之工厂方法模式(FactoryMethod)

一、概述 定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。 二、适用性 1.当一个类不知道它所必须创建的对象的类的时候。 2.当一个类希望由它的子类来指定它所创建的对象的时候。 3.当类将创建对象的职责委…

Stable Diffuion webui Mac版本安装过程

系统环境 操作系统:MacOS Ventura13.5 芯片:Apple M2 Max Python: 3.10 安装前置准备 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git注意事项:修改源码内全部 git clone 链接,设置代理 https://ghpr…

Fast SAM与YOLOV8检测模型一起使用实现实例分割以及指定物体分割

Fast SAM与YOLOV8检测模型一起使用 部分源代码在结尾处可获取 晓理紫 1 使用场景 实例分割数据集的获取要比检测数据的获取更加困难,在已有检测模型不想从新标注分割数据进行训练但是又想获取相关物体的mask信息以便从像素级别对物体进行操作,这时就可以…

学习内容散记

git下载网址 :https://registry.npmmirror.com/binary.html?pathgit-for-windows/ error: remote origin already exists 如果你clone下来一个别人的仓库,在此基础上完成你的代码,推送到自己的仓库可能遇到如下问题: error: r…

uniapp开发(由浅到深)

文章目录 1. 项目构建1.1 脚手架构建1.2 HBuilderX创建 uni-app项目步骤: 2 . 包依赖2.1 uView2.2 使用uni原生ui插件2.3 uni-modules2.4 vuex使用 3.跨平台兼容3.1 条件编译 4.API 使用4.1 正逆参数传递 5. 接口封装6. 多端打包3.1 微信小程序3.2 打包App3.2.1 自有…

支付整体架构

5.4 支付的技术架构 架构即未来,只有建立在技术架构设计良好的体系上,支付机构才能有美好的未来。如果支付的技术体系在架构上存在问题,那么就没有办法实现高可用性、高安全性、高效率和水平可扩展性。 总结多年来在海内外支付机构主持和参与…

C语言之位运算

一、什么是位运算 所谓位运算是指进行二进制位的运算 在系统软件中,常要处理二进位的问题 例如,将一个存储单元中的各二进位左移或右移一位,两个数按位相加等 二、位运算符和位运算 1、按位与 运算符(&) 参加运算的两个数据&#xff…

Exploiting Proximity-Aware Tasks for Embodied Social Navigation 论文阅读

论文信息 题目:Exploiting Proximity-Aware Tasks for Embodied Social Navigation 作者:Enrico Cancelli, Tommaso Campari 来源:arXiv 时间:2023 Abstract 学习如何在封闭且空间受限的室内环境中在人类之间导航&a…

uniapp 获取 view 的宽度、高度以及上下左右左边界位置

<view class"cont-box"></view> /* 获取节点信息的对象 */ getElementRect() {const query uni.createSelectorQuery().in(this);query.select(".cont-box").boundingClientRect(res > {console.log(res);console.log(res.height); // 10…

mysql数据库第十二课------mysql语句的拔高2------飞高高

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

研发工程师玩转Kubernetes——通过PV的节点亲和性影响Pod部署

在《研发工程师玩转Kubernetes——PVC通过storageClassName进行延迟绑定》一文中&#xff0c;我们利用Node亲和性&#xff0c;让Pod部署在节点ubuntud上。因为Pod使用的PVC可以部署在节点ubuntuc或者ubuntud上&#xff0c;而系统为了让Pod可以部署成功&#xff0c;则让PVC与Pod…

Spring-Cloud-Loadblancer详细分析_2

LoadBalancerClients 终于分析到了此注解的作用&#xff0c;它是实现不同服务之间的配置隔离的关键 Configuration(proxyBeanMethods false) Retention(RetentionPolicy.RUNTIME) Target({ ElementType.TYPE }) Documented Import(LoadBalancerClientConfigurationRegistrar…

Mongodb:业务应用(1)

环境搭建参考&#xff1a;mongodb&#xff1a;环境搭建_Success___的博客-CSDN博客 需求&#xff1a; 在文章搜索服务中实现保存搜索记录到mongdb 并在搜索时查询出mongdb保存的数据 1、安装mongodb依赖 <dependency><groupId>org.springframework.data</groupI…

Intellij IDEA 导入 eclipse web 项目详细操作

Eclipse当中的web项目都会有这两个文件。但是idea当中应该是没有的&#xff0c;所以导入会出现兼容问题。但是本篇文章会教大家如何导入&#xff0c;并且导入过后还能使用tomcat运行。文章尽可能以图片的形式进行演示。我的idea使用的版本是2022.3.3版本。当然按正常来说版本之…

C++ ModBUS TCP客户端工具 qModMaster 介绍及使用

qModMaster工具介绍 QModMaster是一个基于Qt的Modbus主站&#xff08;Master&#xff09;模拟器&#xff0c;用于模拟和测试Modbus TCP和RTU通信。它提供了一个直观的图形界面&#xff0c;使用户能够轻松设置和发送Modbus请求&#xff0c;并查看和分析响应数据。 以下是QModM…

图论——最短路算法

引入&#xff1a; 如上图&#xff0c;已知图G。 问节点1到节点3的最短距离。 可心算而出为d[1,2]d[2,3]112,比d[1,3]要小。 求最短路径算法&#xff1a; 1.Floyd(弗洛伊德) 是一种基于三角形不等式的多源最短路径算法。边权可以为负数 表现为a[i,j]a[j,k]<a[i,k]。 …

什么是响应式设计?列举几种实现响应式设计的方法。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是响应式设计&#xff1f;⭐ 实现响应式设计的方法⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏…

Docker安装ElasticSearch/ES 7.4.0

目录 前言安装ElasticSearch/ES安装步骤1&#xff1a;准备1. 安装docker2. 搜索可以使用的镜像。3. 也可从docker hub上搜索镜像。4. 选择合适的redis镜像。 安装步骤2&#xff1a;拉取ElasticSearch镜像1 拉取镜像2 查看已拉取的镜像 安装步骤3&#xff1a;创建容器创建容器方…

android 如何分析应用的内存(十八)终章——使用Perfetto查看内存与调用栈之间的泄露

android 如何分析应用的内存&#xff08;十八&#xff09; 在前面两篇文章中&#xff0c;先是介绍了如何用AS查看Android的堆内存&#xff0c;然后介绍了使用MAT查看 Android的堆内存。AS能够满足基本的内存分析需求&#xff0c;但是无法进行多个堆的综合比较&#xff0c;因此…

ArcGIS Pro基础:【按顺序编号】工具实现属性字段的编号自动赋值

本次介绍一个字段的自动排序编号赋值工具&#xff0c;基于arcgis 的字段计算器工具也可以实现类似功能&#xff0c;但是需要自己写一段代码实现&#xff0c; 相对而言不是很方便。 如下所示&#xff0c;该工具就是【编辑】下的【属性】下的【按顺序编号】工具。 其操作方法是…