老曹眼中的面向數(shù)據(jù)架構(gòu)
數(shù)據(jù)是系統(tǒng)的核心,在面向服務(wù)的架構(gòu)之外,也可以考慮一下面向數(shù)據(jù)的架構(gòu)方式。面向數(shù)據(jù)的服務(wù)架構(gòu)需要支持多數(shù)據(jù)源異構(gòu),支持動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù),既支持公有云部署又支持私有云部署,提供多種數(shù)據(jù)應(yīng)用和數(shù)據(jù)產(chǎn)品,如下圖所示:
一般地,為了不影響業(yè)務(wù)系統(tǒng)的正常運行,會將不同數(shù)據(jù)源匯集起來,技術(shù)的采集與攝取,然后進行數(shù)據(jù)的存儲及一系列的操作處理, 最終通過各種的解決方案形成數(shù)據(jù)應(yīng)用衍生的數(shù)據(jù)產(chǎn)品。
從開發(fā)的角度看,可以分成基礎(chǔ)設(shè)施,運營工具,開發(fā)工具和解決方案四層,從數(shù)據(jù)自身來看,也可以分為數(shù)據(jù)源,動態(tài)數(shù)據(jù),靜態(tài)數(shù)據(jù)和數(shù)據(jù)應(yīng)用4個層次,相互是有交疊的。
數(shù)據(jù)源
數(shù)據(jù)源決定了數(shù)據(jù)的寬度, 數(shù)量量決定了數(shù)據(jù)的厚度。即使是做數(shù)據(jù)應(yīng)用,也是和具體的業(yè)務(wù)領(lǐng)域相關(guān)的,數(shù)據(jù)的價值不是憑空出現(xiàn)的。所以, 業(yè)務(wù)系統(tǒng)的數(shù)據(jù)是***位的,也是最容易獲得,直接的價值也較高。
其次是用戶的行為數(shù)據(jù),經(jīng)管用戶經(jīng)受了產(chǎn)品本身的誘導和局限,但用戶的行為數(shù)據(jù)還是在一定程度上體現(xiàn)的用戶便好。 過去的可用性測試甚至形成了可用性工程,而今,一般都會通過用戶的行為數(shù)據(jù)來檢驗用戶體驗。
物聯(lián)網(wǎng)(IOT)的到來,凸顯了傳感器數(shù)據(jù)的重要性。傳感器數(shù)據(jù)是相對高頻的數(shù)據(jù),與時間序列相關(guān),可以考慮與時間相關(guān)的數(shù)據(jù)存儲,以及數(shù)據(jù)的遷移。位置數(shù)據(jù)可以看作是一種特殊的傳感器數(shù)據(jù),通過位置數(shù)據(jù)可以得到物理上空間位置的描述,是一種非常有用的數(shù)據(jù),尤其對移動互聯(lián)網(wǎng)應(yīng)用而言。
社交幾乎也是無處不在的(anything can be social),通過社交屬性的功能,可以使應(yīng)用擁有一定的社會屬性,從而具備更多的價值。電子郵件可能是比較古老的互聯(lián)網(wǎng)應(yīng)用了,可以看作是一種特殊的社交數(shù)據(jù),數(shù)據(jù)采集可以通過標準的POP3/IMAP4協(xié)議實現(xiàn),應(yīng)用內(nèi)的社交數(shù)據(jù)需要自己整理,對于第三方的社交平臺,一般都是提供API 接口服務(wù)的,只要注意以來訪問控制即可。
媒體的范圍較大,針對性的獲取數(shù)據(jù)需要爬蟲的相關(guān)技術(shù),數(shù)字化媒體的各種限制對爬蟲而言是一個挑戰(zhàn)。相對而言,社交媒體和自媒體通用訪問接口的獲取想對容易一些。
不論是客戶的網(wǎng)站還是競品的網(wǎng)站,同樣需要爬蟲技術(shù)的幫助,這些數(shù)據(jù)將對業(yè)務(wù)系統(tǒng)的數(shù)據(jù)形成有益的補充。
文檔數(shù)據(jù)大多是非結(jié)構(gòu)化數(shù)據(jù),一般是文件系統(tǒng)和NoSQL 的勝場。對于很多企業(yè)而言,往往紙質(zhì)文檔數(shù)據(jù)化的過程,隨著AI技術(shù)的發(fā)展,尤其是OCR 相關(guān)技術(shù)的逐漸成熟,所有文檔都是數(shù)據(jù)資源。
動態(tài)數(shù)據(jù)
動態(tài)數(shù)據(jù)的采集過程與靜態(tài)數(shù)據(jù)是類似的,關(guān)鍵在于分析流程,對于動態(tài)數(shù)據(jù)而言,分析是實事發(fā)生的。例如游樂園采用手環(huán)來采集用戶的信息,這些手環(huán)中記錄了用戶的相關(guān)行為,游樂園可以使用這些數(shù)據(jù)為用戶個性化推薦一些服務(wù),這使得在用戶游覽期間的定制化服務(wù)成為可能。基于動態(tài)數(shù)據(jù),在這些場景中使企業(yè)和用戶之間產(chǎn)生更多的商機成為可能。
對于動態(tài)數(shù)據(jù),需要采用實時處理方法。時延是需要考量的一個關(guān)鍵因素,時間就是金錢在這里體現(xiàn)的***。 通過減少多租戶的資源約束和云服務(wù)的使用可以降低時延,提高性能水平,能夠?qū)崟r處理大流量數(shù)據(jù).
數(shù)據(jù)流程相似于傳統(tǒng)的ETL流程,在數(shù)據(jù)提取時同時完成數(shù)據(jù)的初步轉(zhuǎn)換和清洗,具體流程還是與目標息息相關(guān)的。數(shù)據(jù)流處理是動態(tài)數(shù)據(jù)處理的核心部分,既可以對動態(tài)數(shù)據(jù)進行進一步的清洗然后存儲,又可以直接引入分析方法,與后面的流式應(yīng)用連接起來。
數(shù)據(jù)治理是指從使用零散數(shù)據(jù)變?yōu)槭褂媒y(tǒng)一主數(shù)據(jù)、從具有很少或沒有組織和流程治理到業(yè)務(wù)范圍內(nèi)的綜合數(shù)據(jù)治理、從嘗試處理主數(shù)據(jù)混亂狀況到主數(shù)據(jù)井井有條的一個過程。數(shù)據(jù)治理對于確保數(shù)據(jù)的準確、分享和保護是至關(guān)重要的。有效的數(shù)據(jù)治理通過改進分析 算法、縮減存儲和計算成本、降低災(zāi)備風險和提高安全合規(guī)等方式,最終體現(xiàn)數(shù)據(jù)的價值。
數(shù)據(jù)安全一是數(shù)據(jù)本身的安全,主要是指采用加密方法對數(shù)據(jù)進行主動保護,如數(shù)據(jù)保密、數(shù)據(jù)完整性、雙向身份認證等,同時也是數(shù)據(jù)防護的安全,主要是對數(shù)據(jù)存儲進行主動防護,如通過磁盤陣列、數(shù)據(jù)備份、異地容災(zāi)等手段保證數(shù)據(jù)的安全。數(shù)據(jù)處理的安全是指如何有效的防止數(shù)據(jù)在錄入、處理、統(tǒng)計中由于硬件故障、人為誤操作、程序缺陷、病毒或黑客等造成的數(shù)據(jù)庫損壞或數(shù)據(jù)丟失現(xiàn)象,某些敏感或保密的數(shù)據(jù)可能不具備資格的人員閱讀,而造成數(shù)據(jù)泄密等后果。而數(shù)據(jù)存儲的安全是指數(shù)據(jù)在系統(tǒng)運行之外的可讀性。
數(shù)據(jù)運營是指通過對動態(tài)數(shù)據(jù)的分析挖掘,把隱藏在海量數(shù)據(jù)中的信息以合規(guī)化的形式發(fā)布出去,供數(shù)據(jù)的消費者使用。動態(tài)數(shù)據(jù)的數(shù)據(jù)運營是一個非常具有挑戰(zhàn)性的課題。
靜態(tài)數(shù)據(jù)
對于靜態(tài)數(shù)據(jù)的操作,更像是一種批處理形式,是一種離線分析,更像是傳統(tǒng)的OLAP,這樣可以擁有較高性能的處理能力。這意味著先從各種數(shù)據(jù)源獲取數(shù)據(jù),然后再進行分析處理。靜態(tài)數(shù)據(jù)處理分為了兩個階段,例如一個零售終端分析上個月的數(shù)據(jù)來決定本月的商業(yè)活動, 是否能夠根據(jù)用戶的購買行為來發(fā)放定制化的優(yōu)惠卷等等。
具體的分析計算既可以再私有云上執(zhí)行,也可以在公有云上執(zhí)行。對于一定規(guī)模數(shù)據(jù),尤其是探索性數(shù)據(jù)分析,一般都可以在私有云進行計算,甚至直接在私有云上提供數(shù)據(jù)應(yīng)用和數(shù)據(jù)產(chǎn)品。當數(shù)據(jù)規(guī)模和計算資源的需求達到一定程度的時候,可以考慮遷移的公有云。這是面向數(shù)據(jù)的一種混合云結(jié)構(gòu),為了使遷移簡單方便,需要保障環(huán)境的一致性,YARN 是資源調(diào)度的***選擇。當然,mesos 同樣值得關(guān)注。
靜態(tài)數(shù)據(jù)的存儲一般是海量存儲,基于面向讀性能提供的迫切需要,NoSQL是必然的選擇。當然,面向大量的結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)倉庫仍然是不錯的選擇。
數(shù)據(jù)應(yīng)用
數(shù)據(jù)應(yīng)用包含了計算框架,算法,數(shù)據(jù)的可視化以及具體的應(yīng)用呈現(xiàn)。不論是企業(yè)應(yīng)用還是移動應(yīng)用以及交互式Web應(yīng)用,都可以使用數(shù)據(jù)計算得到的結(jié)果。流式應(yīng)用和搜索應(yīng)用都是與計算框架緊密相關(guān)的,可以通過Storm 和ElasticSearch 實現(xiàn),也可以通過Spark框架實現(xiàn)。
商業(yè)智能(BI),傳統(tǒng)上是基于數(shù)據(jù)倉庫的數(shù)據(jù)挖掘,發(fā)現(xiàn)數(shù)據(jù)中潛在的價值。而在面向數(shù)據(jù)的架構(gòu)中,BI的分析方法可以不變,只改變計算的方式,也可以對分析方法進行演講。
報表系統(tǒng)可以認為是可視化的核心之一。面向靜態(tài)數(shù)據(jù)形成傳統(tǒng)的報表,動態(tài)數(shù)據(jù)與靜態(tài)數(shù)據(jù)相結(jié)合形成實時報表。
隨機分析是一種探索性數(shù)據(jù)分析,是一種對數(shù)據(jù)摸索和嘗試,可以使用Hive,pig,sparkSQL等工具執(zhí)行,明確進一步探索的方向。統(tǒng)計分析是更加具體的一種離線分析,基于統(tǒng)計模型的數(shù)據(jù)分析處理。
機器學習(Machine Learning, ML)是一門多領(lǐng)域交叉學科,模擬或?qū)崿F(xiàn)人類的學習行為,以獲取新的知識或技能,是的核心,框架有很多,例如Mahout以及SparkML等。
深度學習是機器學習研究中的一個新領(lǐng)域,源于人工神經(jīng)網(wǎng)絡(luò),含多隱層的多層感知器就是一種深度學習結(jié)構(gòu)。深度學習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征。同機器學習方法一樣,深度機器學習方法也有監(jiān)督學習與無監(jiān)督學習之分.不同的學習框架下建立的學習模型很是不同.個人推薦tensorflow。
【本文來自51CTO專欄作者老曹的原創(chuàng)文章,作者微信公眾號:喔家ArchiSelf,id:wrieless-com】