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