背景 企業資料庫選型規則。 一、資料庫部署形式 隨著硬體發展,指標上會有變化。 部署形式決定了容量上限,計算能力上限,讀寫帶寬上限,RPO,RTO指標,適應場景。 1、分散式部署(例如pg+citus插件) 容量上限:100節點以上,PB級。 計算能力上限:100節點以上,6400核以上。 讀寫帶寬 ...
背景
企業資料庫選型規則。
一、資料庫部署形式
隨著硬體發展,指標上會有變化。
部署形式決定了容量上限,計算能力上限,讀寫帶寬上限,RPO,RTO指標,適應場景。
1、分散式部署(例如pg+citus插件)
容量上限:100節點以上,PB級。
計算能力上限:100節點以上,6400核以上。
讀寫帶寬上限:100節點以上,200GB/s以上。
RPO:如果每個計算節點都採用多副本存儲,RPO=0。
RTO:如果每個計算節點都採用HA,RTO可以做到1分鐘內。
使用限制:有一些SQL限制。
適應場景:應用代碼可控程度高的情況下,適合TP和AP業務。
2、單節點本地存儲
容量上限:10TB級。
計算能力上限:64核級。
讀寫帶寬上限:2GB/s級。
RPO:RPO無保障。
RTO:RTO無保障。
使用限制:SQL無限制。
適應場景:測試環境,非生產環境,對資料庫RPO,RTO都沒有要求的環境。
3、單節點多副本存儲
容量上限:32TB級。
計算能力上限:64核級。
讀寫帶寬上限:2GB/s級。
RPO:單機房RPO=0,(如果存儲支持跨機房多副本,可以做到多機房RPO=0)。
RTO:10分鐘級。
使用限制:SQL無限制。
適應場景:非核心場景生產、測試。
4、雙節點共用存儲
容量上限:32TB級。
計算能力上限:64核級。
讀寫帶寬上限:2GB/s級。
RPO:單機房RPO=0,(如果存儲支持跨機房多副本,可以做到多機房RPO=0)。
RTO:1分鐘級。
使用限制:SQL無限制。
適應場景:核心、非核心場景生產。
5、雙節點主備非同步複製
容量上限:32TB級(使用遠程存儲),10TB級(使用本機存儲)
計算能力上限:64核級。
讀寫帶寬上限:2GB/s級。
RPO:10GB網路,REDO延遲毫秒級、1MB以內。(支持跨機房部署)。心跳機制可確保RPO < 60秒
RTO:1分鐘級。
使用限制:SQL無限制。
適應場景:非核心場景生產。
6、雙節點主備半同步複製
容量上限:32TB級(使用遠程存儲),10TB級(使用本機存儲)
計算能力上限:64核級。
讀寫帶寬上限:2GB/s級。
RPO:
無節點或單一節點異常時,可保證RPO=0。
兩個節點都異常時,RPO取決於備份延遲。採用基於PG流複製的持續REDO備份,可以做到RPO毫秒級。
RTO:1分鐘級。
使用限制:SQL無限制。
適應場景:核心、非核心場景生產。
7、三節點及以上多副本全同步複製
容量上限:32TB級(使用遠程存儲),10TB級(使用本機存儲)
計算能力上限:64核級。
讀寫帶寬上限:2GB/s級。
RPO:
小於半數節點異常時,可保證RPO=0。
半數以上節點異常時,RPO取決於 1、10GB網路,REDO延遲毫秒級、1MB以內。2、備份延遲。採用基於PG流複製的持續REDO備份,可以做到RPO毫秒級。
RTO:1分鐘級。
使用限制:SQL無限制。
適應場景:核心場景生產。
8、計算存儲分離(存儲多副本)(比如阿裡雲POLARDB PG)
容量上限:100TB級。
計算能力上限:16節點,1024核級。
讀寫帶寬上限:32GB/s級。
RPO:單機房RPO=0,(如果存儲支持跨機房多副本,可以做到多機房RPO=0)。
RTO:15秒級。
使用限制:SQL無限制。
適應場景:核心、非核心場景生產。
9、計算存儲分離(存儲多副本)+ 雙機房半同步
容量上限:100TB級。
計算能力上限:16節點,1024核級。
讀寫帶寬上限:32GB/s級。
RPO:
無節點或單一節點異常時,可保證RPO=0。
兩個節點都異常時,RPO取決於備份延遲。採用基於PG流複製的持續REDO備份,可以做到RPO毫秒級。
RTO:15秒級。
使用限制:SQL無限制。
適應場景:核心、非核心場景生產。
10、計算存儲分離(存儲多副本)+ 多機房多副本全同步
容量上限:100TB級。
計算能力上限:16節點,1024核級。
讀寫帶寬上限:32GB/s級。
RPO:
小於半數節點異常時,可保證RPO=0。
半數以上節點異常時,RPO取決於 1、10GB網路,REDO延遲毫秒級、1MB以內。2、備份延遲。採用基於PG流複製的持續REDO備份,可以做到RPO毫秒級。
RTO:15秒級。
使用限制:SQL無限制。
適應場景:核心場景生產。
11、只讀節點
使用限制:SQL無限制。
適應場景:擴展讀能力。
12、非核心功能
12.1、業務透明的讀寫分離
使用限制:SQL無限制。
適應場景:擴展讀能力。
12.2、跨庫交互
使用限制:SQL無限制。
適應場景:跨庫DBLINK,跨庫外部表,跨庫物化視圖。
12.3、單元化
使用限制:SQL無限制。
適應場景:多實例共用少量數據,多寫。
二、雲產品形態
1、基礎版(單機多副本存儲)PG 10
當前容量上限:2 TB
未來可達32TB級。
2、雙機版(非同步複製)PG 9.4, 10、PPAS 9.3, 10
當前容量上限:6 TB
3、雙機版(半同步複製)PG 11
當前容量上限:32 TB
4、只讀實例
擴展讀能力。
5、計算存儲分離版 PG 11、PPAS 11
16個計算節點,讀寫分離。
當前容量上限:100 TB
PG、PPAS、POLARDB PG區別
除以上區別以外,還有如下區別(pg ppas polarddb選擇評判標準:數據量,可用性,可靠性,是否有去O需求,成本):
1、pg社區版。
2、PPAS相容PG、同時高度相容ORACLE。
相比社區版PG,新增AWR報告、SQL防火牆、資料庫用戶級資源隔離、索引推薦等高級功能。
3、POLARDB PG。
相容PG、同時高度相容ORACLE。
相比PPAS、PG,容量達到100TB,計算存儲分離,計算可擴展到16節點,支持超低延遲讀寫分離。
擴容速度快。(擴容不需要遷移數據,非常之快)
可用性高,恢復速度快。(恢復不需要REPLAY WAL,秒級恢復)
備份、恢復速度快。(存儲快照,秒級備份)
由於一份存儲支持讀寫分離(PG PPAS使用流複製方式,每個只讀節點一份存儲),POLARDB成本更低廉。
存儲採用按實際使用量付費,不需要規劃存儲大小,彈性更好。
自研主打產品,未來產品黑科技會集中增加到POLARDB。
三、行業合規要求
一些行業對資料庫系統的合規要求:
1、SQL審計
2、擴展性
3、可用性
4、可靠性
5、備份保留時間
6、備份可恢復時間點
7、閃回
8、回收站
9、存儲加密
10、數據文件加密
11、類型加密
12、數據訪問鏈路加密
13、連接認證加密
14、加密KEY管理形式
四、資料庫版本推薦
除非業務有特殊要求。選新不選舊(新版本建議發行2個小版本後使用)。
例如當前PG最新版本為11,已發佈兩個小版本,推薦使用11最新小版本。
五、資料庫選型推薦
1 老業務遷移
原來使用什麼DB? (PG, EDB PPAS, oracle, sybase, db2, ms sql)
1、pg -> pg
2、edb ppas -> ppas
3、oracle -> pg (用戶積極配合改動,並有傾向使用開源版)
平安案例
郵儲案例
中國人壽案例
4、oracle -> ppas (用戶期望少改動)
中航信案例
大量ZF,傳統行業案例
使用ADAM,大量成功去O案例。
https://promotion.aliyun.com/ntms/act/ppasadam.html
5、sybase, db2 -> pg
sybase (鐵老大案例)
db2 (蘇寧案例)
6、ms sql -> pg
(康恩貝案例)
2 新業務
1、如果Oracle可以免費使用,用戶選擇Oracle的概率是多少?如果超過50%的概率選擇Oracle,推薦到PG、POLARDB PG。
2、當前用戶技術棧
2.1、Oracle -> PPAS、POLARDB PG
使用ADAM,大量成功去O案例。
https://promotion.aliyun.com/ntms/act/ppasadam.html
2.2、sybase, db2 -> pg
2.3、ms sql -> pg
2.4、pg -> pg
2.5、edb ppas -> ppas
3、業務複雜度
3.1、複雜業務(有較複雜SQL,較複雜業務邏輯) -> PG
例如: 企業crm, erp, oa, 財務, 銷售, 經營分析系統,GIS地理信息業務,等。 (此類場景典型PG客戶:用友,sap,odoo)
3.2、簡單業務 -> PG (同樣完全可以勝任)
4、業務分類
4.1、純AP
100TB 以內數據,純AP(T+1):POLARDB PG。
32TB 以內數據,純AP(T+1):PG 11。
4.2、實時分析:WHERE條件過濾後數據量億級。 POLARDB PG。 PG 11。
4.3、TP
PG, PPAS, POLARDB PG
4.4、混合場景(有TP,有AP)
100TB以內數據量:
POLARDB PG
32TB 以內數據量:
PG 11
6TB 以內數據量:
PG 10, PPAS 10
產品AP能力主要包括:並行計算、GPU加速、JIT、向量計算、流計算、物化視圖、豐富的分析函數、豐富的視窗查詢函數、HASH JOIN、MERGE JOIN、豐富的內置函數、豐富的PLSQL語法。
產品TP能力:單節點 百萬級QPS
4.5、海量數據,大量為冷數據,不能刪除,極少查詢。
pg, ppas, polardb pg,均支持OSS_FDW外部表,冷存儲。查詢對業務透明。
5、業務有SHARDING需求,但是不想改SQL適配sharding(sharding 帶來的SQL使用限制,包括跨庫事務,跨庫查詢,複雜SQL,維度表過大等問題)
100TB以內數據量:
POLARDB PG
32TB 以內數據量:
PG 11
6TB 以內數據量:
PG 10, PPAS 10
6、業務有多模需求,並且要求數據一致性,實時性
如果不要求實時性,一致性,可以再考慮將數據同步到其他產品
6.1、全文檢索、模糊查詢(tsvector, tsquery, pg_trgm技術)
6.2、任意欄位多維度組合實時查詢(smlar, rum, gin, bitmap scan, varbitx, roaring bitmap等技術)
例如:實時畫像系統、營銷系統。
6.3、文本相似查詢(pg_trgm技術)
6.4、向量相似查詢(cube技術)
例如:相似推薦系統
6.5、圖像相似查詢(imgsmlr技術)
6.6、GIS地理信息業務(postgis, brin, gist技術)
例如:天文、氣象、地震、國土、測繪、車聯網、物聯網
6.7、時空軌跡、混合場景業務(ganos, postgis, brin, gist技術)
例如:餓了麽,點我達,打車,車聯網,
6.8、時序類(timescaledb 技術)
6.9、流計算(pipelinedb 技術)
6.10、圖式搜索(CTE 技術)
例如:風控、族譜、社交、內容推薦、用戶推薦等 業務。
多模類業務,性能功能指標參考HTAP測試
參考
《PostgreSQL 規格評估 - 微觀、巨集觀、精準 多視角估算資料庫性能(選型、做預算不求人)》
《資料庫選型思考(PostgreSQL,MySQL,Oracle)》
RDS PG PPAS 性能白皮書
https://help.aliyun.com/document_detail/101470.html
https://help.aliyun.com/document_detail/101100.html
作者丨digoal
本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/Enterprise-database-selection-rules.html