天天看點

PostgreSQL , EDB EPAS PPAS(相容Oracle) , Oracle 對比(相容性、特性優劣勢) - 企業去O,去IOE

标簽

PostgreSQL , PPAS , EPAS , edb , enterprisedb , Oracle , 相容性 , 優缺點

https://github.com/digoal/blog/blob/master/201903/20190301_01.md#%E8%83%8C%E6%99%AF 背景

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相容資料庫。

https://github.com/digoal/blog/blob/master/201903/20190301_01.md#pg--ppas-%E5%85%BC%E5%AE%B9%E6%80%A7%E5%AF%B9%E6%AF%94 PG 、 PPAS 相容性對比

功能 PPAS PG社群版
Oracle pl/sql 支援 不支援
Oracle pl/sql 自治事務 11以上版本支援 PG 11支援
Oracle 内置 package 26種,440個package func (df dbms) 13種,通過orafce支援相容。(實際使用體驗較弱,因package會結合plsql使用)
自定義 Oracle package
自定義 Oracle 對象
Oracle 系統視圖
Oracle 内置函數 大量支援 少量相容通過orafce插件
Oracle 相容類型
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,pg ADAM
Oracle 增量同步到ppas,pg
Oracle 不相容SQL,DDL的自動轉換
Oracle 相容性評估,改造工作量評估,自動拆庫,風險揭示,ppas優勢特性揭示,不相容DDL/SQL轉換,結構,資料遷移,一緻性校驗,優化,仿真回放,一鍵遷移

詳細相容性請參考内容PDF

Oracle vs EDB EPAS 技術對比白皮書 EDB EPAS vs Oracle 商業對比白皮書 EDB EPAS 相容性手冊-内置包 EDB EPAS 相容性手冊-sql referencce EDB EPAS 相容性手冊-開發者手冊

https://github.com/digoal/blog/blob/master/201903/20190301_01.md#ppas-%E5%85%BC%E5%AE%B9%E6%80%A7%E9%9C%80%E8%A1%A5%E9%BD%90 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代替

https://github.com/digoal/blog/blob/master/201903/20190301_01.md#oracle--ppas-%E5%AF%B9%E6%AF%94 Oracle 、 PPAS 對比

https://github.com/digoal/blog/blob/master/201903/20190301_01.md#ppas-%E4%BC%98%E5%8A%BF%E7%89%B9%E6%80%A7%E5%B7%B2%E5%88%97%E4%B8%BE43%E9%A1%B9%E4%BC%98%E5%8A%BF%E7%89%B9%E6%80%A7 PPAS 優勢特性(已列舉43項優勢特性)

Oracle
多模-時空 支援 (ganos, postgis, pgrouting, pgpointcloud)
多模-圖像處理 支援 imgsmlr
多模-JSON 支援 (帶索引加速)
多模-全文檢索 支援(分詞、索引、自定義分詞、rank等 帶索引加速)實時BUILD
多模-文本相似 支援(帶索引加速)
多模-向量相似計算 支援 (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 )

https://github.com/digoal/blog/blob/master/201903/20190301_01.md#%E8%AF%A6%E7%BB%86%E5%85%BC%E5%AE%B9%E6%80%A7%E8%AF%B7%E5%8F%82%E8%80%83%E5%86%85%E5%AE%B9pdf

1、

2、

3、

4、

5、

6、

https://github.com/digoal/blog/blob/master/201903/20190301_01.md#%E5%B0%8F%E7%BB%93 小結

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的首選。

https://github.com/digoal/blog/blob/master/201903/20190301_01.md#%E5%85%8D%E8%B4%B9%E9%A2%86%E5%8F%96%E9%98%BF%E9%87%8C%E4%BA%91rds-postgresql%E5%AE%9E%E4%BE%8Becs%E8%99%9A%E6%8B%9F%E6%9C%BA 免費領取阿裡雲RDS PostgreSQL執行個體、ECS虛拟機

PostgreSQL , EDB EPAS PPAS(相容Oracle) , Oracle 對比(相容性、特性優劣勢) - 企業去O,去IOE