PostgreSQL支持多種表關聯算法,有豐富的統計函數和語法,面對多維度的復雜查詢和分析場景性能表現優異。31會議在UCloud優刻得云平臺的PostgreSQL云數據庫的應用實踐,可以為PostgreSQL在解決大數據量快速查詢上成功應用提供參考。
用戶場景:大數據量快速查詢
31會議是中國領先的場景營銷科技服務商,隸屬于上海八彥圖信息科技有限公司。通過運用互聯網、物聯網、AI、大數據和云計算技術,并結合會議、展覽、活動等面對面營銷場景,其陸續推出了會議云、展覽云、營銷云三大產品體系以及10個行業場景方案。其中,31會議云和31會展云作為一站式數字會務SaaS云平臺,通過組件化、集成化、流程化實現會展全流程智慧化。
注:圖片來自31會議
可以想見,SaaS化的會議平臺,內部模塊眾多且關聯緊密,對數據庫的需求呈現多樣化和精細化等特點,31會議對OLTP和OLAP都有重要的訴求。截至目前累計服務30多萬家客戶、130多萬場會展的業務量,意味著數據庫的存儲量也很可觀。所以首要的是調研了解市面上可獲取的主流數據庫類型。
UCloud能提供的UDB子類型如下表:
31會議團隊經過審慎考慮,用戶同時選用三種數據庫,針對性的滿足不同目標。
其中,PostgreSQL相比于MySQL在OLAP上的快速高效是其優勢,也是用戶選型PostgreSQL的重要砝碼。在實際業務中,31會議利用PostgreSQL來處理單表500w條記錄規模的大數據量查詢,并且快速流暢的將結果流轉到下一業務環節。
31會議:自建數據庫集群還是用PostgreSQL UDB云數據庫?
現在需要面對的選擇,是利用云主機自己搭建PostgreSQL集群,還是直接使用UCloud PostgreSQL UDB云數據庫產品?
UCloud PostgreSQL UDB具備高安全性和高可用性,并有備份創建、自動回檔等功能。數據層面來講,高可用主備和底層數據存儲,具備數據冗余,可以保證數據零丟失。
基于產品層面提供的這些要素,31會議選擇了使用UCloud PostgreSQL UDB產品。在使用PostgreSQL UDB的一年多時間里,其數據庫實例沒有發生過一次故障,UCloud后臺可靠性設計的機制抵御住了各種意外狀況,沒有影響用戶正常使用,幫助31會議免去了緊急排障的煩惱。
“PostgreSQL UDB用在大數據分析上,查詢效率更高。相比自建,其可靠性更高,方便運維維護。”31會議運維經理湯雷在評價UCloud PostgreSQL UDB產品時如此說到。
UCloud PostgreSQL UD:如何保障高可靠?
為了充分保證可靠性,PostgreSQL UDB產品化方面做了多項工作,例如:
1. 自動回檔
這個功能是指,當用戶出現人為誤操作造成數據刪除或者丟失時,只要之前7天的備份存在,就可以利用“秒級回檔”功能將數據恢復到過去7天內的任意一秒,可以說是為用戶使用PostgreSQL產品提供了一顆“定心丸”。
除了回檔,用戶也可通過“創建從庫”功能來創建更多數據庫的副本,進一步增加數據的安全性。
2. 高可用部署,自動容災
PostgreSQL UDB為確保服務的高可用性,采用主從復制架構,主數據庫提供服務的同時,有另一套數據庫服務不斷同步數據并隨時待命, UDB后臺的自動容災模塊可以在PostgreSQL實例服務出現問題時自動探測到,并自動容災,保證數據庫服務的穩定可靠。
實例切換時,容災模塊會把待命的備用PostgreSQL服務提升為主庫,并且在原來主服務啟動之后回退到從庫。整個過程中用戶不需要任何人工干預和配置修改,真正做到自動容災。
圖:PostgreSQL UDB自動容災示意圖
3. 熱升級,不停服在線擴容
PostgreSQL UDB可依據業務的需要,動態按需擴展數據庫資源。用戶只需在控制臺上進行幾次點擊,就可以動態調整實例的內存和磁盤大小,滿足不同業務階段對于數據庫性能和存儲空間的彈性需求。
PostgreSQL UDB 在資源擴容過程中,數據庫服務可以做到基本不停服,只有秒級的閃斷。這樣大大減少了數據庫擴容對于業務的影響時間,做到真正的“熱升級”。