1、厚積薄發,平安自研數據庫演進之路平安科技 熊燦燦PostgreSQL之源01PostgreSQL之勢02PostgreSQL之癢03厚積薄發,破局之刃04PostgreSQL之源01PostgreSQL之勢02PostgreSQL之癢03厚積薄發,破局之刃041.支持SQL2016大部分特性,至少實現了SQL2011標準中要求的179項主要功能中的160項2.功能豐富,利用內核代碼中的Hook,可以在不修改數據庫內核代碼的情況下,自主添加任意功能3.社區活躍,生態友好,國內外基于PostgreSQL有很多優秀的產品,這些商業主體會集成和發揚,并反哺社區4.FDW聯邦查詢可以在同一個Postgr
2、eSQL中像操作本地表一樣訪問其他數據源5.全棧數據庫,流式處理Pipelinedb、時序數據庫TimescaleDB、空間數據PostGIS、分布式Citus、Greenplum,圖數據AgensGraph、NoSQL JSON/JsonB、Hstore等6.強大的并行能力,如并行query、seqscan、nestloop join、aggregate、merje join、hash join7.強大的物理復制,支持金融級的多副本同步配置,不怕大事務,秒級延遲8.協議友好,采用類BSD協議,在使用和二次開發上基本沒有限制,企業不會因為分發遇到商業風險,不會因為需要開源核心代碼導致辛苦構建的
3、技術壁壘被打破。9.擴展接口豐富,與應用深度結合,比如用戶畫像插件pg_roaringbitmap、虛擬索引插件 hypopg、機器學習插件 madlib等10.版本迭代穩定,每年第三季度發布大版本,每個大版本都有重量級特性11.真正的全棧數據庫,One handle them all,一個打十個,媲美OracleB BS SD DG GP PL LA Ap pa ac ch he e發力的PostgreSQL之源01PostgreSQL之勢02PostgreSQL之癢03厚積薄發,破局之刃041.缺少成熟的ASH、AWR功能:出了故障后能夠溯源的手段匱乏,開源的諸如pg_awr、pg_pro
4、file等功能單一,缺少關鍵診斷信息比如wait_event、LWLock、操作系統層的信息等2.不支持Failover Slot,意味著假如發生了Failover,消費信息會丟失,對于嚴格的金融場景,這個比較頭疼,需要手動拷貝或者通過技術手段定時記錄位點信息3.原生流復制若寫入過大、網絡帶寬擁堵等情況下,會造成主從復制延遲,假如WAL日志被歸檔后會造成主從斷掉4.32位的事務ID,對于寫負載較高的庫,經常要面臨年齡用完的尷尬5.海量連接情況下,TPS隨著連接數的上漲線性下降,v14有了一定的性能提升(release不久),缺少原生的進程池6.沒有好用的列式存儲引擎,對AP分析場景稍許吃力7.
5、沒有原生成熟的TDE(Transparent Data Encryption)8.少有的不支持數據壓縮的主流數據庫(只有TOAST,適用場景有限,Postgre Pro提供了數據壓縮,但依賴于商業支持)9.獨特的MVCC機制,目前來看弊大于利,vacuum經常會因為各種各樣的問題,罷工、懈怠等,到了一定的水位,還需要一個昂貴的AccessExclusiveLock來使表變得緊實10.沒有Hints機制,PostgreSQL并且也不打算支持Hints,原本可以通過一條小小的hints來解決問題,可能需要花費大量時間周期去修改、優化PostgreSQL之源01PostgreSQL之勢02Postg
6、reSQL之癢03厚積薄發,破局之刃04可以看到,社區版的PostgreSQL天空中依舊飄著幾朵小烏云,總感覺缺了點什么?;诖?,平安科技厚積薄發,充分吸收多年金融場景的實戰經驗,同時借鑒主流數據庫產品的優點,自主研發了一款金融級集中式數據庫,RaseSQL,基于PostgreSQL13研發。A Av va ai il la ab bi il li it ty yR Re el li ia ab bi il li it ty yS St ta ab bi il li it ty yE En nt te er rp pr ri is se e高高可可靠靠性性高高可可用用性性高高穩穩定定性性企企業
7、業級級支支持持成立專業化團隊引入開發DBADBA參與開發全流程2009年0 10 20 91 1引入Oracle+PCServer運維自動化建設2010年平安數據庫產品團隊0 30 40 50 60 71 0自動化運維HiDBA上線引入MySQL籌建內部云Dbaas2013年引入MongoDB引入Redis2014年引入Oracle+PCServer運維自動化建設2016年私有云投產RDS引入分布式數據庫引入圖數據庫2018年引入PostgreSQL建立數據庫選型原則2015年公有云投產RDSOracle遷移PG方案2017年金融云投產RDS政務云投產RDS行業私有云投產2019年自研集中數據
8、庫自研分布式數據庫2021年性性能能分分析析利利器器1.基于AWR/ASH,定時采集獲取數據快照,性能問題一覽無遺2.維度豐富,包括網絡、存儲、IO、DB等3.支持多種風格展示:text、json、html4.支持歷史性能數據比對類Oracle風格的html格式報告示例:性能分析備備份份恢恢復復工工具具1.支持全量/增量備份、一致性檢查2.支持遠程備份3.支持備份管理,統籌管理多實例備份4.支持基于時間點的數據恢復5.支持部分數據恢復,只還原指定的單個或多個database和tables6.支持備份限速7.支持備份加密、壓縮等8.支持S3和Azure兼容對象存儲備份恢復備份示例:流流式式傳傳輸
9、輸歸歸檔檔日日志志/指指定定時時間間點點的的復復制制槽槽1.原生PostgreSQL在主庫更新量過大,網絡帶寬擁堵等情況下容易造成主從復制延遲,延遲過大時主庫WAL日志被歸檔或移除后會造成主從復制斷開,RaseSQL支持自動從歸檔目錄查找所需日志并進行流式傳輸。2.支持創建指定位點的復制槽,并斷點續傳數據同步日日志志挖挖掘掘剖剖析析支持強大的日志分析工具,針對數據庫日志生成多種維度的分析報表,性能問題一網打盡。日志分析閃閃回回查查詢詢1.select 語句:select*from test as of timestamp 2017-7-14 16:24:19;2.select into 語句:
10、select*into test_inn from test as of timestamp 2021-11-25 09:15:52.935404+08 where id2 100;3.update from 語句:update test set id=t_user.id from t_user as of timestamp 2021-11-25 15:28:55.914841+08 where test.id!=t_user.id;閃回查詢閃閃回回表表1.閃回表:flashback table rel_flashquery to before drop rename to rel_flas
11、hquery_result;2.查詢閃回結果:select*from rel_flashquery_result;閃回表審審計計模模塊塊1.多級別審計:實例審計、用戶級審計、表級審計2.多種操作類型審計:DML、DDL、DQL等3.支持審計報表4.支持SQL防火墻審計模塊數數據據加加密密1.支持透明加密TDE2.支持主流加密算法3.支持國密SM4數據加密RaseSQL已通過信創測評,完全滿足信創要求。在平安核心大BU率先試點信創系統遷移數據庫到RaseSQL。高效率透明數據加密和解密,對于應用程序完全無感知事中通過審計完成告警、記錄、防御、阻斷事后通過審計完成安全事件的定位分析、追查取證數據庫
12、層的壁壘,有效杜絕高危SQL將管理數據庫對象的權限、管理用戶的權限和管理審計日志的權限分離,避免單一管理員權限過度集中2 20 02 20 0.1 12 2自自研研集集中中式式數數據據庫庫立立項項2 20 02 21 1.6 6R Ra as se eS SQ QL L1 1.0 0發發布布支持AWRASH企業版備份恢復功能企業級日志分析工具數據同步增強功能2 20 02 21 1.1 11 1信信創創測測評評產品功能測評代碼溯源分析2 20 02 23 3.6 6兼容PostgreSQL功能增增強強兼容Oracle功能增增強強性能診斷工具增增強強SQL優化工具增增強強2 20 02 22 2.6 61 1.安安全全增增強強:支持表-回收站功能,數據閃回查詢2 2.O Or ra ac cl le e語語法法兼兼容容性性增增強強:如insert all,merge into等3 3.功功能能增增強強:支持約束的禁用、啟用4 4.讀讀寫寫分分離離實實現現等等未未來來已已來來,將將至至已已至至THANKS謝謝觀看