本文作者Armel Nene是大數(shù)據(jù)公司ETAPIX Global創(chuàng)始人,在軟件開發(fā)和數(shù)據(jù)架構(gòu)領(lǐng)域有多年經(jīng)驗,熟悉Java、SOA、BI、企業(yè)搜索和數(shù)據(jù)倉庫,同時也是開源貢獻者,曾在諾基亞、Tata等多家公司工作。
軟件供應(yīng)商的營銷部門在大數(shù)據(jù)方面做得很好,并使之成為了主流。這意味著什么?如果使用大數(shù)據(jù),那么我們可以實現(xiàn)任何承諾;實現(xiàn)充分的商業(yè)洞察力并打敗競爭對手。然而,目前并沒有像之前被廣泛宣傳的那樣,存在大數(shù)據(jù)的成功實現(xiàn)。現(xiàn)在的問題是:為什么沒有呢?顯然,這些銀彈企業(yè)已經(jīng)看到了數(shù)十億美元的投資,可是至今投資并沒有回報。是誰的錯?畢竟,企業(yè)不必宣傳自己的內(nèi)部流程或項目。在這一點上,我覺得這是由IT部門導(dǎo)致的。多數(shù)大數(shù)據(jù)項目的問題是由于技術(shù)人員(而不是業(yè)務(wù)人員)缺乏對于架構(gòu)調(diào)整的理解和對未來商業(yè)的憧憬而造成的。
大數(shù)據(jù)項目的初步階段與其他任何IT項目沒有什么不同。項目都是由業(yè)務(wù)需求/要求所驅(qū)動的。這里不像黑客帝國那樣,我們無法回答那些還沒有被提出來的問題。在開始任何工作或討論應(yīng)該使用何種技術(shù)之前,所有的利益相關(guān)者都應(yīng)該了解以下幾方面:
·企業(yè)的背景
·企業(yè)的主要驅(qū)動力和組成部分
·對于架構(gòu)工作的要求
·該架構(gòu)的原則
·所使用的框架
·管理框架之間的關(guān)系
·企業(yè)架構(gòu)的成熟度
在大多數(shù)情況下,大數(shù)據(jù)項目包括:了解當(dāng)前商業(yè)技術(shù)環(huán)境;在當(dāng)前和未來的應(yīng)用與服務(wù)方面:
·戰(zhàn)略和經(jīng)營計劃
·經(jīng)營方針、目標(biāo)和主要驅(qū)動
·正在實施的重要商業(yè)架構(gòu)
·管理和法律框架
·IT戰(zhàn)略
·預(yù)先存在的架構(gòu)框架、組織模式和架構(gòu)倉庫
大數(shù)據(jù)連續(xù)/大數(shù)據(jù)項目不應(yīng)該也永遠不能被孤立。一個簡單的事實就是大數(shù)據(jù)需要依靠其他系統(tǒng)存活,這意味著整個團隊?wèi)?yīng)該開辟溝通的渠道。在大數(shù)據(jù)部署時,我想出了五個簡單的圖層/堆棧方法來獲得一個成功的架構(gòu)。為了更傾向于技術(shù)架構(gòu),這似乎顯而易見:
·數(shù)據(jù)來源
·大數(shù)據(jù)的ETL
·數(shù)據(jù)服務(wù)API
·應(yīng)用
·用戶界面服務(wù)
·數(shù)據(jù)源
為了在競爭中獲得優(yōu)勢,當(dāng)前和未來的應(yīng)用程序?qū)a(chǎn)生越來越多的數(shù)據(jù)以及數(shù)據(jù)處理過程。數(shù)據(jù)來自于各種各樣的途徑,但我們可以將它們分為兩大類:
結(jié)構(gòu)化數(shù)據(jù):通常以下一個預(yù)定義的格式存儲,例如使用已知的、成熟的數(shù)據(jù)庫技術(shù)。但并不是所有的結(jié)構(gòu)化數(shù)據(jù)都存儲在數(shù)據(jù)庫中,因為很多企業(yè)選擇使用平面文件,如Microsoft Excel或者制表符分隔文件來存儲數(shù)據(jù)。
非結(jié)構(gòu)化數(shù)據(jù):企業(yè)產(chǎn)生大量的非結(jié)構(gòu)化數(shù)據(jù),如電子郵件、即時消息、視頻會議、網(wǎng)絡(luò)、平面文件,這些文檔、圖片和列表的數(shù)量是巨大的。我們稱之為“非結(jié)構(gòu)化”數(shù)據(jù)。因為他們沒有明確的格式,這也為用戶查詢其內(nèi)容帶來了方便。
在“大數(shù)據(jù)”普及之前,我已經(jīng)將我的職業(yè)生涯的大部分時間花費在了企業(yè)搜索技術(shù)上。了解其數(shù)據(jù)的來源和以什么形式存在才能夠?qū)Σ渴鸫髷?shù)據(jù)ETL項目產(chǎn)生價值。在編寫程序代碼之前,架構(gòu)師需要嘗試規(guī)范數(shù)據(jù)的通用格式。
大數(shù)據(jù)ETL
這是令技術(shù)人員(特別是開發(fā)團隊)感到興奮的那部分。隨著每天有那么多關(guān)于大數(shù)據(jù)的博客和文章發(fā)表,使得非技術(shù)人員容易產(chǎn)生困惑。當(dāng)然,能夠使用快捷的工具處理PB級的數(shù)據(jù),會讓人們感到無比興奮,Hadoop和它的生態(tài)系統(tǒng)正是這樣的工具之一。在我們得意忘形之前,我們首先需要制定一些基本原則:
實時處理
批量處理
數(shù)據(jù)服務(wù)API
無論是否使用Hadoop工具,Extract Transform Load(ETL)項目的目的都在于將數(shù)據(jù)整合到一個基于查詢的主數(shù)據(jù)管理視圖中。Hadoop和其生態(tài)系統(tǒng)用來處理ETL大數(shù)據(jù)并不屬于查詢部分。所使用的工具將很大程度取決于項目處理的需要(無論是實時處理或批量處理);即Hadoop是用于處理大容量數(shù)據(jù)的批量處理框架。一旦數(shù)據(jù)已被處理時,主數(shù)據(jù)管理系統(tǒng)(MDM)可以存儲于數(shù)據(jù)存儲庫中,如基于NoSQL或RDBMS,這只是取決于查詢的需要。
隨著ETL工具受到越來越多的關(guān)注,一個非常重要的領(lǐng)域通常會被忽視,直到它幾乎成為次要考慮。 MDM需要被存儲在一個儲存庫,以便需要時存取信息。在真正的面向服務(wù)體系結(jié)構(gòu)的精神中,數(shù)據(jù)存儲庫應(yīng)該能夠向外部第三方應(yīng)用程序提供一些接口,用來數(shù)據(jù)檢索和操作。在過去,MDM大多都建立在RDBMS中并使用結(jié)構(gòu)化查詢語言來進行檢索和操縱。這并沒有必要去改變,但架構(gòu)師應(yīng)該意識到NoSQL等其它形式的數(shù)據(jù)庫類型。在選擇數(shù)據(jù)庫解決方案時,應(yīng)該考慮到以下因素:
·是否有標(biāo)準(zhǔn)的查詢語言
·我們?nèi)绾芜B接到數(shù)據(jù)庫; 數(shù)據(jù)庫驅(qū)動程序或者是可用的Web服務(wù)
·當(dāng)數(shù)據(jù)增長時,數(shù)據(jù)庫是否可以擴容
·需要什么樣到安全機制來保護某些或全部數(shù)據(jù)
·項目中其它具體問題也應(yīng)包括在該清單中
商務(wù)應(yīng)用程序
到目前為止,我們已經(jīng)將數(shù)據(jù)提取、轉(zhuǎn)換并裝載到主數(shù)據(jù)管理系統(tǒng)中。正常的數(shù)據(jù)現(xiàn)在是通過web服務(wù)公開(或數(shù)據(jù)庫驅(qū)動程序)由第三方應(yīng)用程序使用。將承擔(dān)大數(shù)據(jù)的項目放在首要位置的原因就在于商務(wù)應(yīng)用程序。有人會說,我們應(yīng)該雇傭一個數(shù)據(jù)科學(xué)家。許多博客表明,數(shù)據(jù)科學(xué)家的角色是理解數(shù)據(jù)、探索數(shù)據(jù)、原型 (未知問題的新答案)并評估他們的發(fā)現(xiàn)。這很有趣,因為它讓我想起了電影《黑客帝國》,甚至在Neo要求他們決定哪一個相關(guān)之前,架構(gòu)師就已經(jīng)知道了答案。但這并不是企業(yè)的運行情況。如果數(shù)據(jù)科學(xué)家可能會建議按照意識新方法(《盜夢空間》)去做,但大部分情況下,問題將由數(shù)據(jù)科學(xué)家或那些了解數(shù)據(jù)的人來回答,這將是非常有價值的。商務(wù)應(yīng)用程序?qū)⑹沁@些問題的答案。
用戶界面服務(wù)
用戶界面是項目的成敗,UI設(shè)計的不好會影響到其背后的數(shù)據(jù)。直觀的設(shè)計將提高采用率,而且用戶可能會開始質(zhì)疑數(shù)據(jù)的質(zhì)量。用戶將訪問不同的數(shù)據(jù)、手機、電視和網(wǎng)絡(luò)。例如,用戶通常會將重點放在數(shù)據(jù)的某一方面,因此他們將需要的數(shù)據(jù)以定制的方式呈現(xiàn)。用戶想要通過當(dāng)前的儀表板獲取一些數(shù)據(jù),來匹配他們的視覺和感受。同樣,安全也將是一個問題。。企業(yè)門戶已經(jīng)存在了很長一段時間, 它們通常用于數(shù)據(jù)集成項目。然而,這些標(biāo)準(zhǔn)(如遠程Portlet Web)使用戶界面通過Web服務(wù)調(diào)用對外提供服務(wù)。
結(jié)束語:本文展示了在項目著手之前,對大數(shù)據(jù)項目進行架構(gòu)設(shè)計的重要性。該項目需要與商業(yè)遠景相結(jié)合,并對當(dāng)前和未來的技術(shù)前景有很好的理解。數(shù)據(jù)需要為商業(yè)帶來價值,因此企業(yè)也需要從一開始就參與。理解數(shù)據(jù)將如何被使用是其成功的關(guān)鍵,另外,采用面向服務(wù)的架構(gòu)方法也可以滿足數(shù)據(jù)的多種商業(yè)需求。