用友華表任少斌:三面突圍大數(shù)據(jù)存儲 |
發(fā)布時間: 2012/9/5 10:53:22 |
大數(shù)據(jù)時代給傳統(tǒng)數(shù)據(jù)倉庫架構帶來了一系列的沖擊和挑戰(zhàn),僅從源數(shù)據(jù)采集和存儲層面,就讓倉儲的構建者不得不重新認真地思考:數(shù)據(jù)在哪里?這個問題的答案改寫了企業(yè)數(shù)據(jù)倉庫對數(shù)據(jù)源的既有定義,同時也傳遞了兩方面的焦慮,一是數(shù)據(jù)規(guī)模急速增長,現(xiàn)有的單節(jié)點或者共享磁盤架構能否適應海量數(shù)據(jù)的存儲;二是數(shù)據(jù)結(jié)構復雜多樣,現(xiàn)有的基于結(jié)構化數(shù)據(jù)為主體的存儲方案能否兼容無模式的非結(jié)構化數(shù)據(jù)。
面對企業(yè)大數(shù)據(jù)的挑戰(zhàn),用友華表作為一家提供商業(yè)分析產(chǎn)品的供應商,在技術上我們將如何解決大數(shù)據(jù)的問題呢?目前面對大數(shù)據(jù)給現(xiàn)有倉庫存儲架構帶來的量的沖擊和數(shù)據(jù)種類增加的挑戰(zhàn),不同的公司會選擇不同的技術路線,我們最初試圖通過一個大而全的存儲架構來解決海量數(shù)據(jù)和多種數(shù)據(jù)類型的問題。但結(jié)過一段時間反復研究,我們認為大而全的存儲架構不是解決大數(shù)據(jù)的最佳方案,我們目前決定采用的技術路線是讓不同種類的數(shù)據(jù)存儲在最適合他們的存儲系統(tǒng)里,然后再將不同的數(shù)據(jù)類型進行融合,企業(yè)在融合的數(shù)據(jù)基礎上做商業(yè)分析。 本文我將從用友華表的技術思路、存儲方案、存儲之后的數(shù)據(jù)如何融合三個層次來闡述我們?nèi)绾螒獙Υ髷?shù)據(jù)的挑戰(zhàn)。 分而治之 三面突圍 第一,有"容"乃大。"容",即有足夠的容量來存儲數(shù)據(jù)。對于大規(guī)模數(shù)據(jù),我們將采用分而治之的思想,構建分布式存儲系統(tǒng),并且做到易擴展。保證系統(tǒng)可以方便的增加節(jié)點,當企業(yè)的數(shù)據(jù)快速增加時,可以使數(shù)據(jù)分布始終保持在平衡狀態(tài); 第二,有"榮"乃大。即兼用多種存儲引擎。大數(shù)據(jù)因結(jié)構復雜多樣使得數(shù)據(jù)倉庫要采集的源數(shù)據(jù)種類無比"繁榮",因此新的倉儲架構也要改變目前以結(jié)構化為主體的單一存儲方案的現(xiàn)狀,針對每種數(shù)據(jù)的存儲特點選擇最合適的解決方案:對非結(jié)構化數(shù)據(jù)采用分布式文件系統(tǒng)進行存儲,對結(jié)構松散無模式的半結(jié)構化數(shù)據(jù)采用面向文檔的分布式key/value存儲引擎,對海量的結(jié)構化數(shù)據(jù)采用shared-nothing的分布式并行數(shù)據(jù)庫系統(tǒng)存儲; 第三,有"融"乃大。如上所述可以兼用多種分布式存儲引擎來解決"容"和"榮"的挑戰(zhàn),但企業(yè)存儲多元化數(shù)據(jù)的一個重要目標是集成分析,而多種類型數(shù)據(jù)孤立存儲對后續(xù)的集成分析會帶來極大不便。因此我們還需要構建分布式數(shù)據(jù)庫系統(tǒng)和分布式文件系統(tǒng)之間的連接器,使得非結(jié)構化數(shù)據(jù)在處理成結(jié)構化信息后,能方便的和分布式數(shù)據(jù)庫中的關系型數(shù)據(jù)快速融通,保證大數(shù)據(jù)分析的敏捷性。 存儲方案各不同 上面提到針對大數(shù)據(jù)規(guī)模大、種類多的特點,我們可以采用"容"、"榮"的方案,兼用多種分布式存儲引擎分而治之。那么我們就拿非結(jié)構化、半結(jié)構化和結(jié)構化這三大類數(shù)據(jù)的存儲方案分別舉例說明,以便讓大家更清楚的了解到不同類型的海量數(shù)據(jù)通常都是通過哪些方式來進行存儲的。由于談到的都是業(yè)界普遍使用的開源或商業(yè)方案,因此不做深入討論。 首先,適合存儲海量非結(jié)構化數(shù)據(jù)的分布式文件系統(tǒng)。 HDFS(Hadoop Distributed File System),是鼎鼎大名的開源項目Hadoop的家族成員,是谷歌文件系統(tǒng)GFS(Google File System)的開源實現(xiàn)。HDFS將大規(guī)模數(shù)據(jù)分割為多個64兆字節(jié)的數(shù)據(jù)塊,存儲在多個數(shù)據(jù)節(jié)點組成的分布式集群中,隨著數(shù)據(jù)規(guī)模的不斷增長,只需要在集群中增加更多的數(shù)據(jù)節(jié)點即可,因此具有很強的可擴展性;同時每個數(shù)據(jù)塊會在不同的節(jié)點中存儲3個副本,因此具有高容錯性;因為數(shù)據(jù)是分布式存儲的,因此可以提供高吞吐量的數(shù)據(jù)訪問能力,在海量數(shù)據(jù)批處理方面有很強的性能表現(xiàn)。 其次,適合存儲海量無模式的半結(jié)構化數(shù)據(jù)的分布式Key/Value存儲引擎。 HBase(Hadoop Database),也是開源項目Hadoop的家族成員,是谷歌大表Bigtable的開源實現(xiàn)。HBase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),它不同于一般的有模式的關系型數(shù)據(jù)庫,HBase存儲的數(shù)據(jù)表是無模式的,特別適合結(jié)構復雜多樣的半結(jié)構化數(shù)據(jù)存儲。此外,HBase利用HDFS作為其文件存儲系統(tǒng),利用MapReduce技術來處理HBase中的海量數(shù)據(jù)。 第三,適合存儲海量結(jié)構化數(shù)據(jù)的分布式并行數(shù)據(jù)庫系統(tǒng)。 Greenplum是基于PostgreSQL開發(fā)的一款MPP(海量并行處理)架構的、shared-nothing無共享的分布式并行數(shù)據(jù)庫系統(tǒng)。采用Master/Slave架構,Master只存儲元數(shù)據(jù),真正的用戶數(shù)據(jù)被散列存儲在多臺Slave服務器上,并且所有的數(shù)據(jù)都在其它Slave節(jié)點上存有副本,從而提高了系統(tǒng)可用性。 Greenplum最核心的技術就是,大表數(shù)據(jù)分片存儲,可以應對海量數(shù)據(jù);基于大表的查詢語句在經(jīng)過Master分析后可以分片發(fā)送到Slave節(jié)點進行并行運行,所有節(jié)點將中間結(jié)果返回給Master節(jié)點,由Master進行匯總后返回給客戶端,大大提高了SQL的運行速度。 本文出自:億恩科技【1tcdy.com】 |