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