互聯網行業利用分布式計算和分布式文件系統較好地解決了海量數據的存儲與計算難題,該實踐為金融業解決目前棘手的數據存儲與處理問題,提供了“他山之石”,不妨借鑒。
近來,大數據這一IT行業的熱門話題,在金融行業也引發了越來越多的關注。在數據爆發式增長的今天,銀行每天都在生成、獲取海量數據。首先,傳統的交易系統每天產生數億筆客戶交易、形成了TB級的結構化數據;其次,業務處理過程中銀行采集了大量用于集中作業、集中授權、集中監控的影像、視頻等非結構化數據;再次,銀行網站每天點擊量達到幾千萬次,隱含著大量客戶需求或產品改進信息;最后,各類媒體、社交網絡中涉及銀行的信息既有客戶需求,也有客戶投訴,這些都可以作為銀行改進產品或服務的依據。
上述數據或基于法規遵從的存儲需求,或基于市場營銷、產品設計的分析需求,或基于風險與安全控制的行為審計需求,都需要銀行對其進行存儲和計算,其中一部分數據還需要及時計算。不難發現,銀行業目前的數據特征以及數據處理要求,基本符合大數據特征。可以說,隨著信息技術的發展,銀行業已經進入大數據時代。
一、分布式數據存儲與處理技術
當前,IT廠商推出的大數據平臺或產品以及各種開源大數據解決方案基本都采用分布式架構,以增強計算與存儲資源的橫向擴展能力。通過對Google、Yahoo、Amazon、Facebook等互聯網公司的研究,不難發現在其數據存儲與處理架構采用了分布式計算和分布式文件系統。互聯網行業正是利用分布式計算和分布式文件系統較好地解決了海量數據的存儲與計算難題。互聯網行業的實踐為金融業解決目前棘手的數據存儲與處理問題,提供了“他山之石”,不妨借鑒。
?1.分布式計算——易獲得的橫向擴展能力
分布式計算,即把一個需要非常大計算能力才能解決的問題分成若干部分,然后把這些部分分配給許多計算節點處理,再把計算結果綜合起來得到最終的結果。這種計算模式,改變了原有的數據庫模式,即將所有的數據集中起來,企圖通過不斷縱向擴展計算機性能來實現高性能的大數據處理。其靈活可擴展的架構,使得計算性能的橫向擴展更易實現。
2.分布式文件系統——性能與成本兼顧
分布式文件系統,多部署于低廉的硬件上(x86及本地磁盤)。在分布式文件系統中,數據文件被分割成一個或多個數據塊,存儲在一組數據節點上,并通過多副本的機制有效保障了數據的可用性和完整性。同時,分布式文件系統還提供高吞吐量來訪問應用程序的數據,適合那些有著超大數據集的應用程序。一些分布式文件系統還可以實現以流的形式訪問文件系統中的數據。在集群中,我們可以通過橫向擴展集群,來提高其性能與吞吐量。分布式文件系統在高性能磁盤系統高效高成本和磁帶系統低效率低成本之間,找到了大數據存儲的解決方案。
二、多種數據處理平臺相結合
傳統的以事務為中心的數據庫架構設計,受縱向擴展能力和高成本限制,已無法滿足越來越多的大數據量數據分析需求。鑒于此,數據存儲與處理技術也隨之由“一種架構支持所有應用”向“多種架構支持多類應用”轉變。
1.大數據時代的數據處理與存儲架構
在大數據時代,為了更好地挖掘不同類型數據的價值,同時更有效地使用各類數據處理平臺,大數據存儲和管理方案,應采用多種處理平臺相結合的模式,以實現高效率、低成本存儲管理大數據的目標。
從數據處理維度看,對于業務處理層(ODS層),鑒于其對事務完整性和高實時性的要求,可采用傳統的高性能關系型數據庫(OLTP型數據庫)作為處理平臺。而對于數據消費層(ADS層),則可以采用大數據技術,使用分布式數據庫(MPP)和Hadoop技術作為分析型數據庫(OLAP型數據庫)處理平臺。未來,業務處理層各應用系統將主動發布各類業務處理數據,而各類主題的數據消費系統則按自身功能定位和數據需求對這些數據進行獲取、加工、轉換及處理。
2.數據消費層MPP or Hadoop
當前,主流的大數據分布式數據處理與存儲方式有兩種:分布式數據庫和Hadoop分布式系統。兩種解決方案的對比分析見表1。
MPP分布式數據庫較Hadoop分布式系統,在復雜邏輯的結構化數據處理上具有一定的優勢,且可基于SQL開發,對于有較豐富SQL經驗的銀行系統開發者開發與運維更容易。當然,業界MPP分布式數據庫產品價格也要高于Hadoop這個源于開源社區的產品。
這是否意味著MPP分布式數據庫就是大數據處理的最佳解決方案呢?我們不妨從銀行系統數據的價值密度和數據特征來考慮這個問題。對于銀行系統數據,我們基本可以達成這樣一個共識:銀行系統數據中,結構化數據價值密度通常高于非結構化或半結構化數據,而在銀行數據中非結構化數據占用了大量的存儲資源。這是因為銀行系統中結構化數據以賬務數據為主,而非結構化數據則主要集中在憑證影像等數據。當然結構化數據中也包括部分日志信息等價值密度不高的數據。
正如前文提到的,數據存儲與處理技術在由“一種架構支持所有應用”向“多種架構支持多類應用”轉變。同樣對于數據消費層數據處理技術,也應根據數據價值密度及數據特征等采用與之相匹配的架構來支持不同應用。對于數據消費層數據中那些價值密度高的交易及賬務數據可采用MPP分布式數據庫構建數據處理平臺;對于那些價值密度不高的結構化數據和非(半)結構化數據則可以采用Hadoop分布式系統作為處理平臺。