大數據時代的數據管理
不知怎么地,大數據,Big Data 這個詞就變得流行起來。
處理大數據慣常是屬于商業智能(BI)的事情。抽取數據、挖掘數據,制成報表、OLAP、儀表盤、挖掘模型,作為輔助決策之用。不過在 BI 領域都不這么叫法,大伙兒都說海量數據,Large-scale Data。這聽起來還是略顯學術氣,不如 Big Data 來的通俗——大數據。這大概是因為如今隨處可見的數據,一種爆炸效應帶來的結果,已經脫離某種專業的范疇,人們需要用更簡單的術語來命名這種數據爆炸。這給不溫不火的 BI 帶來一些新的刺激,讓 BI 人看到一些希望。
以前,不說國內,就算是國外,做 BI 也大多是局限在幾個大行當,電信、金融、零售、政府,他們需要數據來幫助自己理性決策。在國內很長一段時間里,更是僅限于電信和金融兩個行當。可是尷尬的地方在于,決策者有時候更愿意相信自己的直覺,而非數據。這種意識雖然逐漸在變化,可從來沒有發生過根本的變化。意識的變化是艱難的。當一些新興行業的介入,他們對數據的利用方式,價值的榨取,讓人看到數據分析不僅僅用于輔助決策,而是可以從數據中獲得收益了,它已經不再是一種錦上添花的東西了,那正是因為大數據時代的到來。這得感謝互聯網以及還未興起的物聯網,在這些行當里面,數據在爆發,不斷增長。他們不甘心只是如報表、OLAP、儀表盤之類的分析應用。數據分析部門可以按照推薦系統的點擊效果利潤分成;交易的數據可以包裝成分析服務銷售給商戶,讓他們自己去洞察市場商機;根據用戶的點擊流行為和上網內容,個性化廣告布放等等。
就在剛過去的9月,TDWI(數據倉庫學院)發布了2011年第四季度最佳實踐報告,而這份最佳實踐的主題正是大數據分析。TDWI 會通過調查問卷的方式,對全球范圍的企業調查,目標對象既有 IT 人,有業務單位的人,也有咨詢顧問。問卷的問題一般都會詢問企業應用 BI 技術的實際情況,現在如何,計劃如何。所以,這類最佳實踐報告可以反映出當下某項技術的現狀和趨勢。報告的內容也遵循一定結構,一下定義,二看現狀,三分長短,四談趨勢,最后再來個廠商介紹。同樣,這份大數據分析的最佳實踐報告也是如此結構。
其中關于“大數據”的定義,值得關注。如果我們僅僅從字面上看,大數據似乎跟海量數據差別不大,僅僅是變得更加通俗?并非如此,這份報告給出一些區別,TDWI 賦予這個術語更多的含義,更多符合目前數據爆炸時代的含義。
大數據的3V
Big Data 的3V。大數據有3V 的特性。
Volume、Variety、Velocity。這3V 表明大數據的三方面特質:量大、多樣、實時。對,不光是數據量大了。對 TB、PB 數據級的處理,已經成為基本配置。還能處理多樣性的數據類型,結構化數據和非結構化數據,能處理 Web 數據,能處理語音數據甚至是圖像、視頻數據。實時。以前的決策支持時代,可以用批量處理的方式,隔夜處理數據,等決策者第二天上班,可以看到昨天的經營數據。但現在的互聯網時代,業務在24小時不間斷運營,決策已經不是第二天上班才做出,而是在客戶每次瀏覽頁面,每次下訂單的過程中都存在,都會需要對用戶進行實時的推薦,決策已經變得實時。
這個定義非常完美,形式上也很漂亮,3個V。
可細細想想,這每個方面的V,難道不是傳統 BI 一直在試圖征服的嘛?也許所謂大數據時代,是新瓶裝舊酒。只是換了一個稱呼,而具體要解決的問題,仍是那些存在已久的問題。可畢竟大數據時代轟轟烈烈地,踏著舊的海量數據浪潮而來,而且這將是更高一浪。平常人站在下面,是否會腿腳發軟,或是識破浪頭的力度,來個漂亮的轉身沖浪呢?
大數據管理的需求與挑戰
在這樣的大數據時代,數據仍然是最關鍵的。如何將大數據管理好,仍然是對企業的考驗。
無處不數據。手機通話、移動在產生數據,ATM 在產生數據,商品上的 RFID 在產生數據,包裹從一個城市到另一個城市在產生數據。就算是一個小小的店鋪,當它銷售出去一瓶水,也可能會記錄到 Excel 里面,產生了數據。數據記錄這世界的存在和變化。
當企業的某項資產非常重要,數量巨大時,就需要有效管理。如今,數據已經成為這種資產。以前人們還不會將它看做是資產,而是一種附屬物。客戶來辦理業務,在系統中產生了這種附屬物。而現在,發現在客戶辦理業務這條信息中,蘊含這一些客戶的需求,成千上萬條這類信息累積下來,就能洞察客戶所需,為設計新產品,為客戶個性化營銷產生新的價值。數據變成一種資產了,需要被管理起來。
數據倉庫是管理數據的工具。在近二三十年里,以某種類似蝸牛的速度爬行,它始終還是貴族家的玩具。只有那些多金的買主才會為它買單。這讓數據管理變得高高在上,數據當做資產只是停留在理念層面。人們還在爭論著,數據倉庫能夠給我們帶來什么?
我自己曾總結過一句話,體現數據倉庫的六項價值——“能快速、及時、方便、準確而安全地訪問整合過的數據。”現在看看,發現這個描述還蠻符合大數據時代,對數據管理的需求。
而這六方面價值也對應了不同的技術領域。
- 數據倉庫硬件、軟件、模型要保障對數據的快速訪問。比如專用設備,按照數據溫度選擇數據是否高速存儲,采用特殊存儲技術;
- DW 模型確保數據的整合性,當你需要企業視圖的數據,需要以年為周期的數據,需要數據模型的支持;
- ETL 保障數據及時性。批量的 ETL 已經不足夠,需要準實時,甚至是數據流式處理;
- 元數據管理讓數據訪問更方便,不僅僅將數據以表、字段的方式管理,要將數據切分地更小,可管理;
- 數據質量管理保障數據的準確一致,讓數據可信;
- 數據倉庫架構、權限管理保障數據訪問安全。
大數據時代對六項價值之一——快速訪問數據的性能,有明顯推動。人們最迫切的希望還是從無到有,從慢到快吧。讓數據唾手可得。
數據庫技術在變化
傳統數據庫并未專為數據分析而設計,數據倉庫專用設備的興起(Data Warehouse Appliance),如 Teradata、Netezza、Greeplum、Sybase IQ 等等,正表明面向事務性處理的傳統數據庫和面向分析的分析型數據庫走向分離,涇渭分明。數據倉庫專用設備,一般都會采用軟硬一體,以提供最佳性能。這類數據庫會采用更適于數據查詢的技術,以列式存儲或 MPP(大規模并行處理)兩大成熟技術為代表。另外,新興的互聯網企業也在嘗試一些新技術,比如 MapReduce 技術(這得感謝 Google 將它發揚光大),Yahoo 的開源小組開發出 Hadoop,就是一種基于 MapReduce 技術的并行計算框架。在2008年之前,非死book 就在 Hadoop 基礎上開發出類似數據倉庫的 Hive,用來分析點擊流和日志文件。幾年下來,基于 Hadoop 的整套數據倉庫解決方案已日臻成熟。目前在國內也有不少應用,尤其在互聯網行業的數據分析,很多就是基于這個開源方案,比如淘寶的數據魔方。而在一些商業性的產品中,也已經融入 MapReduce 技術,如 AsterData。
低廉的數據倉庫解決方案降低了數據管理的門檻,長尾的中小企業不一定非得去跟 Oracle、IBM 這樣的大公司去談高高在上的價格。開源的產品,配置足夠的硬件存儲,有一支專業的服務團隊,就可以架構一個數據倉庫平臺。在去年,就曾有多位朋友向我咨詢的數據倉庫方案,他們有一個不約而同的期望,價格不要太高。他們有服務團隊。我沒有其他推薦,只有推薦 Hadoop。
還有一些其他的技術可以讓數據訪問性能提高,比如數據溫度技術,可以區分經常被訪問和很少被訪問的數據,經常訪問的就是高溫數據,這類數據將存儲在高速存儲區,訪問路徑會非常直接,而低溫數據則可以放在非高速存儲區,訪問路徑也可一些相對復雜一些。近兩年,存儲訪問的技術也在變化著,比如 Teradata 前幾年推出固態硬盤數據倉庫,用接近閃存的性能訪問數據,比原來在磁盤上順序讀取數據快很多。后來又興起一批內存數據庫產品,這類產品在 DBMS 軟件上進行優化,規避傳統數據庫(數據倉庫)讀取數據時的磁盤 IO 操作,再次大大節省訪問時間。比如 SAP 的 HanaBI、Oracle 的 TimesTen、SolidDB、extremeDB、Altibase。
文本、語音、圖像、社交網絡、地理位置…大數據時代的數據類型如此豐富。用關系型數據庫存儲這類數據,再深入去分析挖掘這些數據,開始有些負累。
于是,越來越多的 NoSQL 數據庫涌現出來,其中很大一部分是用于分析用途。比如西班牙有個小廠商,叫 illumnate,他們擁有一個叫 Correlation DBMS 的數據庫產品。它不像關系數據庫那樣按照表、字段存儲,那樣冗余很大。CDMBS 的做法是,針對每個不同的值,只有一個地方存儲,而所有對這個值的引用,都在索引中記錄。比如有個客戶的姓名叫“張三”,而還有一個公司名字也叫“張三”,那么在 CDBMS 里面,只存有一個“張三”這個值,但在索引里面記錄了有兩個地方引用它。這種數據庫是專門為分析而設計的。因為不存儲冗余數據,所以它對于海量數據,非常節省空間。如果說這個有點不太吸引人的話,另一個據稱的優點就是做 ad-hoc 查詢非常快捷。
社交網絡很火熱,非死book、推ter、QQ、MSN,甚至是普通的電信通話、郵件,都構成社交網絡。人們決策的一個重要依據其實就跟社交群體相關,周圍人的決策會帶動你的決策,用社交網絡理論來做決策支持是一個重大方向。
用關系型數據庫來存儲社交數據有點吃力。我跟你打電話,“我”是一個“用戶”的實體,“你”是另一個“用戶”的實體,我們之間存在了“通話”的關系;“你”還可能跟“她”發生了關系。但社交網絡的分析還需要關注圈子、關系緊密度…… 人們想從中找到人與人之間的關系、圈子,是不是一個家庭的,是不是一個公司的,是不是情侶關系。甚至還要去發現一個人的重要程度,是否具備某種影響力。用實體關系來表述這種社交網絡需要繞些彎路轉換。所以,自然出現了一種圖數據庫(Graph DBMS)。數據按照節點、關系和屬性鍵值存儲。開源產品 Neo4j 就是這類 GDBMS。基本上這也是一種鍵值數據庫,也就是說其最底層數據存儲都是按照 key-value 存放的,這種存儲方式是比較適合并行處理,適用于分析。而 graph database 的重要特點就是內置了常見的 graph 算法,它的存儲結構讓這類算法性能倍增。可想,未來也許會出現專為圖像分析而出的數據庫,專為視頻分析的,等等。
數據的量越來越大,種類越來越豐富,大數據時代需要新的數據管理手段。列式、MPP 的關系型數據倉庫在改變著,NoSQL 的 CDBMS、GDBMS 也試圖在改變著。關系型數據庫是企業 IT 建設時代的數據管理基石,而在 Big Data 時代,也許需要一種新的,正在探索中的數據管理基石。
來自: InfoQ