标簽
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虛拟機
