傳統企業的OLAP幾乎都是基于關系型數據庫,在面臨“大數據”分析瓶頸,甚至實時數據分析的挑戰時,在架構上如何應對?本文試擬出幾個大數據OLAP平臺的設計要點,意在拋磚引玉。
突破設計原則
建設企業的大數據管理平臺(Big?Data?Management?Platform),第一個面臨的挑戰來自歷史數據結構,以及企業現有的數據庫設計人員的觀念、原則。數據關系、ACID在關系數據庫幾十年的統治時期是久得人心,不少開發人員都有過為文檔、圖片設計數據表,或將文檔、圖片序列化為二進制文件存入關系數據庫的經歷。在BDMP之上,我們需要對多種不同的格式的數據進行混合存儲,這就必須意識到曾經的原則已經不再適用——One?size?dosen’t?fit?all,新的原則——One?size?fits?a?bunch.
以下是我列出的一些NoSQL數據庫在設計上的模式:
文檔數據庫:數據結構是類JSON,可以使用嵌入(Embed)或文檔引用(Reference)的方式來為兩個不同的文檔對象建立關系;
列簇數據庫:基于查詢進行設計,有寬行(Wild?Rows)和窄行(Skinny?Rows)的設計決策;
索引數據庫:基于搜索進行設計,在設計時需要考慮對對每個字段內容的處理(Analysis)。
搜索和查詢的區別在于,對返回內容的排序,搜索引擎側重于文本分析和關鍵字權重的處理上,而查詢通常只是對數據進行單列或多列排序返回即可。
數據存儲的二八原則
不少企業在解決海量數據存儲的問題上,要么是把關系數據庫全部往Hadoop上一導入,要么是把以前的非結構化數據如日志、點擊流往NoSQL數據庫中寫入,但最后往往發現前者還是無法解決大數據分析的性能瓶頸,后者也無法回答數據如何發揮業務價值的問題。
在數據的價值和使用上,其實也存在著二八原則:
20%的數據發揮著80%的業務價值;
80%的數據請求只針對20%的數據。
目前來看,不管是數據存儲處理、分析還是挖掘,最完整和成熟的生態圈還是基于關系型數據庫,比如報表、聯機分析等工具;另外就是數據分析人員更偏重于查詢分析語言如SQL、R、Python數據分析包而不是編程語言。
企業大數據平臺建設的二八原則是,將20%最有價值的數據——以結構化的形式存儲在關系型數據庫中供業務人員進行查詢和分析;而將80%的數據——以非結構化、原始形式存儲在相對廉價的Hadoop等平臺上,供有一定數據挖掘技術的數據分析師或數據工程師進行下一步數據處理。經過加工的數據可以以數據集市或數據模型的形式存儲在NoSQL數據庫中,這也是后面要講到的“離線”與“在線”數據。
理解企業的數據處理需求
數據庫到數據倉庫,是事務型數據到分析型數據的轉變,分析型數據需要包括的是:分析的主題、數據的維度和層次,以及數據的歷史變化等等。而對大數據平臺來說,對分析的需求會更細,包括:
查詢:快速響應組合條件查詢、模糊查詢、標簽
搜索:包括對非結構化文檔的搜索、返回結果的排序
統計:實時反映變化,如電商平臺的在線銷售訂單與發貨計算出的庫存顯示
挖掘:支持挖掘算法、機器學習的訓練集
針對不同的數據處理需求,可能需要設計不同的數據存儲,還需要考慮如何快速地將數據復制到對應的存儲點并進行合適的結構轉換,以供分析人員快速響應業務的需求。
離線數據與在線數據
根據不同的企業業務,對“離線”的定義其實不一樣,在這里離線數據特指在業務場景中適用于“歷史數據”的部分。常見的歷史數據查詢分析一般來自于特定時間段,設計上需要考慮的是將數據存入歷史庫中時,建立時間索引。另一種情況是某種業務問題的定位或分析,在數據量巨大的情況下,基于Hadoop或Spark等框架編寫分析算法并直接在平臺上運行,可以大大節約數據導出導入、格式轉換與各種分析工具對接的時間。
在線數據處理按照存儲和分析的先后順序,可分為批處理(先存儲后分析)和流處理(先分析后存儲)兩類。Cassandra數據庫的設計采用上數據追加寫入模式,可以支持實時批處理;流式計算平臺則有Apache?Storm、Yahoo?S4等開源框架,商業平臺有Amazon?Kenisis(部署在云端)。企業的實時分析需求往往有特定的應用場景,需要對業務和現行系統有深入的理解才能設計出一個合理的架構。
via:Silent?River?作者:Justina?Chen
]]>所謂大數據不僅體現在數量上的龐大,還有涉及到的方面比較廣泛,以及計算過程比較的龐大而高效等,大數據分析能夠從海量的數據中提取出最有效的信息,在企業的營銷中發揮關鍵性的作用,可以說誰能夠更好的利用大數據分析就能夠在競爭中處于更加有利的位置,那么大數據分析都包含了哪些技術呢?
第一、數據采集
對于任何的數據分析來說,首要的就是數據采集,因此大數據分析軟件的第一個技術就是數據采集的技術,該工具能夠將分布在互聯網上的數據,一些移動客戶端中的數據進行快速而又廣泛的搜集,同時它還能夠迅速的將一些其他的平臺中的數據源中的數據導入到該工具中,對數據進行清洗、轉換、集成等,從而形成在該工具的數據庫中或者是數據集市當中,為聯系分析處理和數據挖掘提供了基礎。
第二、數據存取
數據在采集之后,大數據分析的另一個技術數據存取將會繼續發揮作用,能夠關系數據庫,方便用戶在使用中儲存原始性的數據,并且快速的采集和使用,再有就是基礎性的架構,比如說運儲存和分布式的文件儲存等,都是比較常見的一種。
第三、數據處理
數據處理可以說是該軟件具有的最核心的技術之一,面對龐大而又復雜的數據,該工具能夠運用一些計算方法或者是統計的方法等對數據進行處理,包括對它的統計、歸納、分類等,從而能夠讓用戶深度的了解到數據所具有的深度價值。
第四、統計分析
統計分析則是該軟件所具有的另一個核心功能,比如說假設性的檢驗等,可以幫助用戶分析出現某一種數據現象的原因是什么,差異分析則可以比較出企業的產品銷售在不同的時間和地區中所顯示出來的巨大差異,以便未來更合理的在時間和地域中進行布局。
第五、相關性分析
某一種數據現象和另外一種數據現象之間存在怎樣的關系,大數據分析通過數據的增長減少變化等都可以分析出二者之間的關系,此外,聚類分析以及主成分分析和對應分析等都是常用的技術,這些技術的運用會讓數據開發更接近人們的應用目標。
本文摘自:FineBI商業智能官網
]]>