因業務需要,已使用Vertica近7年,它是基于X86的MPP數據庫,具有低成本、高效率分析的特點,能夠滿足低成本存儲海量數據,并支持高速數據分析查詢的要求。隨著業務的發展,Vertica集群逐步壯大,2020年MPP數據主倉庫節點已擴容至138臺,成為行業內最大單集群節點。現有系統功能架構圖,如下:

一.項目背景
在Vertica數據庫之前,數據倉庫采用多臺小型機RAC和SAN存儲的架構,數據倉庫隨著多年業務發展也不斷進行擴容升級,但該架構下橫向擴容也存在擴展能力不足以滿足業務需求的問題,共享RAC方式也帶來了節點間通信流量的指數增長和面臨著無法繼續擴容的問題,同時數據上報及時性、報表分析計算性能無法滿足業務要求,急需一種性能更好、成本更低、擴展性更好,以及可維護性更好的方案。傳統數據庫下構如下:

二.Vertica數據庫的優勢
1.列式存儲和計算:通過列式計算和強大的主動數據壓縮,大幅降低成本高昂的磁盤 I/O(主要是傳統的以行為存儲單位的 SQL 數據庫使用),執行查詢的速度可提升 50 到1000 倍,存儲成本最高削減 90%。

2.無共享大規模并行處理:基于無共享的 MPP 架構,支持在線添加數量不限的 X86 工業標準服務器,可根據需求任意擴展解決方案。

3.分鐘級故障節點修復、彈性擴展和高并發彈性負載:可選的 MPP 結合存儲和計算分離部署架構,支持分鐘級在線擴展或收縮集群規模,通過“子集群”隔離負載提供高并發、高吞吐的彈性負載和多租戶支持能力。

4.實時分析:支持主流的CDC工具,原生支持kafka消息系統的連接,支持數據實時裝載和分析。

5.完整的關系數據庫功能和 SQL 標準支持:Vertica 支持關系數據庫事務處理和 ACID 規范,支持 SQL-92/SQL-99標準,提供 ODBC、JDBC、ADO.NET 接口規范驅動。
6.基礎設施透明的開放統一分析平臺:原生支持與Hadoop、Spark和Kafka等開放生態無縫集成,支持X86開放架構企業內部、主流公有云和 VMware 虛擬化平臺和主流Hadoop發行版本部署,采用統一的SQL引擎分析高性能、就地分析Vertica和其他開放格式數據。

三.Vertica數據庫技術支持
Vertica數據庫擁有一支技術水平過硬、服務態度優良的支撐團隊。Vertica主庫擴容工程中,技術團隊積極參與方案制定,技術專家入駐現場,24小時現場支撐擴容工作。在數據遷移、擴容過程中Vertica技術團隊給予了我們非常有力的支撐和保障,集中展現出高度的敬業和專業精神,系統響應效率也得到提升,針對一些突發狀況,曾連續多日奮戰到凌晨,讓我們十分感動并給予高度的認可和好評。
四. Vertica數據庫的使用效果
通過持續建設和分布式數據庫改造,解決了原來基于傳統數據庫、小型機和SAN存儲傳統架構無法支撐PB數量級數據倉庫的性能和擴展能力不足的問題。目前已承載三大市場各個專業經營決策數據服務支撐。采用Vertica數據庫大幅提升系統性能、數據分析能力的同時實現降本增效。以用戶表為例,傳統數據庫匯總分析用時1835秒;Vertica匯總分析用時299秒。匯總分析用時降低降低1536秒,數據分析能力得到很大提升。Vertica數據庫整體較傳統數據庫提前2個小時,集團考核上報、關鍵業務指標的及時性得到有效保障。

五.相關使用經驗和建議
1.傳統數據庫向Vertica遷移:面臨的主要瓶頸集中在外部系統數據如何快速加載到Vertica庫、Vertica庫如何實現對其他集群的數據快速下發兩個方面。在Vertica數據庫之間進行數據同步可采用數據庫自帶的export to vertica或copy from vertica 功能直接進行數據同步,數據無需落地;Vertica與其它數據庫之間進行數據同步,可采用并行導出parquet格式文件或文本文件HDFS,再通過HDFS進行數據分發。可大幅節省數據同步時間。
2.Vertica數據庫恢復:數據庫恢復時需要對每個節點的元數據進行比較,這個過程是比較耗時的,降低數據庫catalog日志大小和表模型分區,合理使用分區表和臨時表,可減少數據庫節點故障時的數據恢復時間。
3.Vertica新一代架構(Eon)探索:從目前的使用經驗來看,Eon架構可實現節點快速擴容、故障節點快速恢復,在增加子集群的情況下,可增加并發能力,同時子集群之間的計算資源完全隔離,數據集中存儲在公共存儲中,可快速實現數據共享,無需進行數據同步。
4.Vertica缺乏成熟的外圍適配開發工具:當前選型razorsql作為Vertica的開發工具,且已經納入4A安全管控,但在金庫模式觸發、程序運行調試等方面與PLSQL仍然存在差距,需進一步提升開發工具的便捷性。




