PostgreSQL , EDB EPAS PPAS(兼容Oracle) , Oracle 对比(兼容性、特性优劣势) - 企业去O,去IOE-阿里云开发者社区

开发者社区> 数据库> 正文

PostgreSQL , EDB EPAS PPAS(兼容Oracle) , Oracle 对比(兼容性、特性优劣势) - 企业去O,去IOE

简介: 标签 PostgreSQL , PPAS , EPAS , edb , enterprisedb , Oracle , 兼容性 , 优缺点 背景 EPAS为EDB的PostgreSQL Oracle兼容企业版,基于PostgreSQL社区版本开发,2004年发布了第一个Oracle兼容版,已经在ORACLE兼容性上耕耘了15年。 2018年推出EPAS 11 版本,完成了 Oracle

标签

PostgreSQL , PPAS , EPAS , edb , enterprisedb , Oracle , 兼容性 , 优缺点


背景

EPAS为EDB的PostgreSQL Oracle兼容企业版,基于PostgreSQL社区版本开发,2004年发布了第一个Oracle兼容版,已经在ORACLE兼容性上耕耘了15年。

2018年推出EPAS 11 版本,完成了 Oracle 11g, 12c 认证。

2016年阿里云与EDB合作,推出阿里云RDS PPAS,兼容Oracle。

2018年阿里云与EDB代码级深度合作,即将推出POLARDB O,计算存储分离,云原生Oracle兼容数据库。

PG 、 PPAS 兼容性对比

功能PPASPG社区版
Oracle pl/sql支持不支持
Oracle pl/sql 自治事务11以上版本支持PG 11支持
Oracle 内置 package26种,440个package func (df dbms)13种,通过orafce支持兼容。(实际使用体验较弱,因package会结合plsql使用)
自定义 Oracle package支持不支持
自定义 Oracle 对象支持不支持
Oracle 系统视图支持不支持
Oracle 内置函数大量支持少量兼容通过orafce插件
Oracle 兼容类型支持少量兼容通过orafce插件
Oracle pl/sql 嵌套表支持不支持
Oracle pl/sql bulk collect bind支持不支持
Oracle sql语法大部分支持少部分兼容,其他需修改
Oracle 分区表语法支持不支持
Oracle VPD(RLS)支持不支持,需修改语法
sql 防火墙支持不支持
索引推荐支持不支持
资源隔离(Resource manage)支持不支持
客户端驱动oci,proc,spl,jdbc,.net,odbc兼容不兼容oci,proc
Oracle SQL*Load支持不支持,可以使用pgbulkload或copy代替
Oracle 存储过程加密支持不支持
Oracle rowid支持不支持Oracle rowid 语法(使用ctid或oid代替)
Oracle 迁移评估支持支持较弱(ora2pg)
Oracle 转化ddl,全量同步到ppas,pgADAMADAM
Oracle 增量同步到ppas,pgADAMADAM
Oracle 不兼容SQL,DDL的自动转换ADAMADAM
Oracle 兼容性评估,改造工作量评估,自动拆库,风险揭示,ppas优势特性揭示,不兼容DDL/SQL转换,结构,数据迁移,一致性校验,优化,仿真回放,一键迁移ADAMADAM

详细兼容性请参考内容PDF

Oracle vs EDB EPAS 技术对比白皮书

EDB EPAS vs Oracle 商业对比白皮书

EDB EPAS 兼容性手册-内置包

EDB EPAS 兼容性手册-sql referencce

EDB EPAS 兼容性手册-开发者手册

PPAS 兼容性需补齐

以下取自 Oracle vs EDB EPAS 技术对比白皮书

1、全局临时表

《PostgreSQL Oracle 兼容性之 - 全局临时表 global temp table》

2、分区表支持:INTERVAL PARTITIONING

3、分区表支持:PARTITIONED INDEXES

4、bitmap索引, 当前使用gin索引代替

5、flashback query

6、flashback table, database and transaction query

7、RAC

8、in-memory database

9、data masking

10、database vault

11、xml_db

12、高级压缩

13、TRANSPORTABLE CROSS-PLATFORM TABLE SPACES

14、ONLINE REORGANIZATION, 改语法实现(readme)

15、merge 语法, upsert代替

Oracle 、 PPAS 对比

PPAS 优势特性(已列举43项优势特性)

功能OraclePPAS
多模-时空支持支持 (ganos, postgis, pgrouting, pgpointcloud)
多模-图像处理不支持支持 imgsmlr
多模-JSON支持支持 (带索引加速)
多模-全文检索不支持支持(分词、索引、自定义分词、rank等 带索引加速)实时BUILD
多模-文本相似不支持支持(带索引加速)
多模-向量相似计算不支持支持 (cube插件)
多模-图谱数据处理支持支持
多模-多维不支持支持 (cube插件)
多模-路由不支持支持 (pgrouting插件)
多模-流计算不支持支持 (pipelinedb插件)
性能-JIT不支持支持
性能-向量计算不支持支持
性能-GPU加速不支持支持 (ganos, pg_strom插件)
索引-分区索引支持间接支持 (partial index)
索引-分区表全局索引支持不支持
索引-btree支持支持
索引-hash支持支持
索引-gin不支持支持(倒排索引)
索引-gist支持支持
索引-spgist不支持支持
索引-brin支持(仅Oracle一体机)支持
索引-bloom不支持支持
索引-rum不支持支持
索引-zombodb不支持支持
索引-表达式索引不支持支持
索引-bitmap支持不支持 (使用gin代替)
索引-部分索引不支持支持
高级功能-机器学习不支持支持 (madlib)
高级功能-sharding支持支持 (citus)
高级功能-ddl事务不支持支持
高级功能-异构外部表支持不完全几乎支持任意外部数据源(FDW方式)
内置编程语言-plpgsql不支持支持
内置编程语言-plpython不支持支持
内置编程语言-plperl不支持支持
内置编程语言-pllua不支持支持
内置编程语言-pljava不支持支持
内置编程语言-pltcl不支持支持
高级类型-数组不支持支持
高级类型-range不支持支持
高级类型-xml不支持支持
高级类型-网络不支持支持
高级类型-大对象支持支持
高级类型-字节流支持支持
高级类型-比特流不支持支持
高级类型-图像不支持支持
高级类型-向量不支持支持
复制-物理流支持支持
复制-逻辑流支持支持
复制-任意多副本不支持支持(quorum based replication)
复制-内部订阅不支持支持
优化器-动态优化支持支持 (通过pg_aqo插件)
优化器-join遗传算法不支持支持
优化器-hash join支持支持
优化器-merge join支持支持
优化器-nestloop join支持支持
优化器-游标支持支持
并行-scan支持支持
并行-index scan支持支持
并行-index only scan支持支持
并行-bitmap scan?支持
并行-filter支持支持
并行-sort支持支持
并行-agg支持支持
并行-write (create table, select into, create index)?支持
并行-join支持支持
安全-存储过程加密支持支持
安全-SQL防火墙支持支持
安全-VPD支持支持
安全-审计支持支持
安全-数据库ACL支持支持
安全-认证方法少量大量(md5,peer,ident,trust,reject,password,ldap,ad,gssapi,radius,pam,bsd,sspi)
扩展-过程语言扩展不支持支持
扩展-FDW不支持支持
扩展-采样不支持支持
扩展-自定义扫描不支持支持
扩展-自定义REDO不支持支持
扩展-自定义索引方法不支持支持
扩展-自定义类型、OP、UDF支持支持
衍生产品-derived db数不胜数(https://wiki.postgresql.org/wiki/PostgreSQL_derived_databases)

详细兼容性请参考内容PDF

1、Oracle vs EDB EPAS 技术对比白皮书

2、EDB EPAS vs Oracle 商业对比白皮书

3、EDB EPAS 兼容性手册-内置包

4、EDB EPAS 兼容性手册-sql referencce

5、EDB EPAS 兼容性手册-开发者手册

6、Oracle 兼容性评估,改造工作量评估,自动拆库,风险揭示,ppas优势特性揭示,不兼容DDL/SQL转换,结构,数据迁移,一致性校验,优化,仿真回放,一键迁移

小结

1、覆盖SQL语法(深度兼容,例如connect by,分区表。)、数据类型、函数、包(支持多达26个package,440种方法)、索引类型、操作符、样式、自定义pl/sql 存储过程、函数、包、客户端驱动(OCI)、客户端编程(Pro*C)。

2、兼容4320个ORACLE独有对象(覆盖类型、包、函数、存储过程、视图、同义词、系统表、序列、动态视图等)。

3、兼容数十项ORACLE高级功能(包括VPD,分区表、物化视图、同义词、DBLINK、高级队列、JOB、PROFILE、AWR、PDB、策略、SQL防火墙、OCI驱动、Pro*C等)。

阿里云PPAS(EDB EPAS)在Oracle兼容性,高级功能方面有非常强的优势,是企业平滑去O的首选。

 

免费领取阿里云RDS PostgreSQL实例、ECS虚拟机

版权声明:如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developerteam@list.alibaba-inc.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章