开发者学习笔记【阿里云云数据库助理工程师(ACA)认证:Polar DB-O (兼容 Oracle 语法版本)和Polar DB PostgreSQL 版本概述(二)】
课程地址:https://edu.aliyun.com/course/3112080/lesson/19087
Polar DB-O (兼容 Oracle 语法版本)和Polar DB PostgreSQL 版本概述(二)
五、Polar DB PostgreSQL版本产品的核心功能
PostgreSQL 的基础功能不同,首先看两个:一个是 Polar DB PostgreSQL 内置的时空多模引擎,第二个就是 Polar DB PostgreSQL 提供的完整的空间结合计算库。
时空多模引擎干扰其实就是提供一系列的数据类型函数存储过程,在对空间时空数据库进行一个相对高效的存储,所以查询和分析计算。Polar DB 的模型之所以支持这六大模型,首先是因为平面几何模型和球面几何模型和格栅模型是因为 Polar DB 的 GANOS ,内置了2D,3D,4D 的几何对象数据库,对点线面体和不规则三角网进行任意的空间计算。同时Polar DB 的 GANOS 集成了先进的 mod 移动对象数据库,通过对时空语翼的支持实现车辆轨迹、人员轨轨迹、导弹轨迹和飞翔轨迹的存储、查询、分析和计算。同时拓扑网络通过突破网络支持解决了旅行商问题、最短路径的问题和带转向限制了最短路径的问题。同时也通过约翰逊算法,弗洛伊德算法解决 turn 和 return 的问题。
传统的 Post-gs 的擅长点是平面几何模型和球面几何模型和格栅影像模型,GANOS 除了对 Post-gs 的特性有百分之百的监督之外,还支持移动对象模型,路径规划模型和激光检验模型,甚至支持硬件技术的加速和 SQL 与 no-SQL 的结合,这就是整个 Polar DB GANOS提供完整的空间几何计算库的能力矩阵。
六、Polar DB-O (兼容 Oracle 语法版本)的 Oracle兼容性的概览
1、客户端兼容
其实 Polar DB-O 从 client interface 到 DB Server Parser到优化器层到 extension插件层到安全和执行器日志,包括 DBA 常用的工具也是有一个系统的兼容,而并非只兼容 Oracle 的语法。从接口兼容开始,就是驱动接口用的比较多的是 OCI 和 jdbc,基本是可见业务范围的99%以上。使用 Java 的同学使用最多的是 jdbc,但是可能很少碰到Pro-c,尤其在公有云互联网业务更是少见的。对于金融业务会大量使用pro c进行开发的业务程序,所以 Polar DB 对pro-c的支持会放在一个非常高的等级来看。
2、SQL 兼容
除了对 Pro-c 的支持,以下就是 Polar DBSQL 兼容性,也就是语法兼容性。语法兼容性主要包括数据类型、系统函数、伪劣 PL/SQL、系统图以及 package 是比较常用的,但是举例来讲客户最常用的是一个空串的特性,几乎每一个 Oracle 数据库的业务都会有这个特点,但是这个特点是往往是很多商业数据库并没有支持到的,导致这些数据库产品往往可能在业务运行的时候出现一些数据性的问题,这个是不能接受的。到目前为止 Oracle 中的 PL/SQL Polar DB 大概支持了80%以上,也就是在整个 Oracle 迁移的过程中,大量业务对于 PL/SQL 代码是可以从 Oracle 迁移到 polar DB-O 上的,这就意味着 polar DB-O 对于 Oracle 的 PL/SQL 是一个精准指示,满足绝大多数的业务场景。系统函数视图和系统包package,Polar DB 大概支持了30个以上。
3、重大特性兼容
即功能性兼容。对于功能性兼容举几个例子,一个是分区是非常常用的,主要分区是 Polar DB-O 都支持。对于大规模用户来说,较为常用的是多层次的查询。大家可能以为这种多层的查询执行起来相对简单,但是后来发现用户对于多层次的查询的要求往往不是支持,而是对性能有非常高的要求。其他很多数据库产品对于层次查询的方法基本是一致的,就通过位子语句的迭代和递归来实现,这种方法的实现往往比较低效,所以 Polar DB 在同次查询的功能上实现了从算子层面做了大量的工作,包括 DB-Link 功能,公有云和线下打通之后反而在安全性的保障的难度非常大,这也是 Polar DB 在实现 DB Link 的功能之后非常着重要解决的一个问题。
在 DB- Link 的方面,现在可以支持 Oracle 的 DB- Link 与pg的 DB- Link和阿里云 Polar DB 的 DB-Link以及公有云上 Polar DB 与 线下Polar DB 之间的 DB-Link。
4、生态兼容
生态的兼容相对比较多,对此举两个例子,一个是对标 Oracle 的 DTS,DTS 是一个同步工具,可以把 Oracle 的数据同步到 polar-O,也可以实现 Polar-O 到 Polar-O 之间的数据同步。还有就是 DBS 对标的是 Oracle 生产系统的阿尔曼,是一个备份管理工具,DBS就是全量备份,增量备份,差异备份。基于DBS 能力可以做到原端重删、本地缓存、存储驱动,DBS 具备自己的智融库的,可以增强数据备份的安全性,备份数据可以从 DBS 指向原端,包括磁带库以及对象存储都可以发现。
七、阿里云去 Oracle 的标准流程
1、应用评估工具--ADAM
首先看一个新工具即阿里云 Oracle 迁移的数据库与应用评估工具叫 ADAM,是一款把数据库和应用牵引到阿里云的产品,能显著降低客户上云的技术难度和成本,尤其是针对 Oracle数据。其实现在对于 Oracle 有大的应用场景,大家可以设想,当使用了很长时间的 Oracle之后,想对它迁移到 Polar-O 上面,不知道哪个特性,哪个对象是 polar-O 需要更改的,哪些特性是不需要更改的,这个时候 ADAM 就可以评估亲人的可行性,将每张表、每个字段、每一个对象,ADAM 都会给出 Oracle 到 polar DB的映射是否支持。另外就是 polar DB 相对于 Oracle 性能有一定的提升,原本的 Oracle 规格在polar DB上是否适用,是否可以通过更小的 polar DB 规格寻求一个容量的缩减,从而降低预算,同时这个时候 ADAM 也可以给出一个精准评估的报告,同时 ADAM 还会自动的将 polar DB 已经支持的对象在传输过程中进行自动的转换,来节省 Oracle 的人力和物力,最后在迁移的过程中 ADAM 可以进行 MySQL 的检测以及从 Oracle 到 polar DB 的数据传输功能。到目前为止 ADAM 已经在云上云下服务了700个成功案例的客户。
2、阿里云 Oracle 迁移标准流程
下面来看 Oracle 迁移的整个流程。首先第一步是采集,ADAM 会部署一个agent 到 Oracle主机上,来采集 Oracle 的对象和访问 Oracle 的应用,这个步骤是安全脱敏的。
采集完数据之后,第二步就是把这些数据上传到公有云的服务器上,进行一个原库画像的解析,告知一个客观的 Oracle 数据的画像,有多大的访问量,有多大的数据存储量,用了多少 Oracle 的特性。第三个步骤是最关键的一步评估分析,这个时候 ADAM 会出具数十篇评估报告来佐证画像和评估可行性,来生成评估方案,这一步通常是由伙伴和阿里云原厂的工程师来辅助大家去进行,最重要的是进行实施评估工作量的评估和转换合资 ADAM 自动转换 PL/SQL 到 java 的评估。第三部就是进行结构迁移、校验和扩展性的迁移。
最后一步就是进行的似乎优化,其实在实施迁移过程中有三种实迁移工具可以选择,如果只需要结构和全量迁移的话,能把 ADAM Studio提供一个免费的,领先的迁移。如果需要全量迁移和分量迁移的话,可以使用阿里云的 DTS 进行全量的迁移和动量的前移,这个时候整个各级的窗口就会尽可能的缩写到几分钟级别。同时使用 DTS 和 DGS,是可以做到一个数据回流。最后一排就是阿里云签约的专家服务,专家服务我们分为基础服务,企业服务和数据库专家标准服务,服务范围是包括端对端,从企业上云最开始的评估到数据库的改造一直到 Oracle 的割接、护航、救援包括应用的改造、健康的诊断都有阿里云原厂的数据库专家和大家进行面对面的顾问形式的支持。当把 Oracle 切换到 polar DB 之后,阿里云数据库的专家也会帮助大家把团队知识进行进一步的更新,以便适应polar DB-O 的工作。