大數(shù)據(jù)技術(shù)與應(yīng)用 第2版 課件匯 黃源 第1-4章 大數(shù)據(jù)介紹- 大數(shù)據(jù)存儲_第1頁
大數(shù)據(jù)技術(shù)與應(yīng)用 第2版 課件匯 黃源 第1-4章 大數(shù)據(jù)介紹- 大數(shù)據(jù)存儲_第2頁
大數(shù)據(jù)技術(shù)與應(yīng)用 第2版 課件匯 黃源 第1-4章 大數(shù)據(jù)介紹- 大數(shù)據(jù)存儲_第3頁
大數(shù)據(jù)技術(shù)與應(yīng)用 第2版 課件匯 黃源 第1-4章 大數(shù)據(jù)介紹- 大數(shù)據(jù)存儲_第4頁
大數(shù)據(jù)技術(shù)與應(yīng)用 第2版 課件匯 黃源 第1-4章 大數(shù)據(jù)介紹- 大數(shù)據(jù)存儲_第5頁
已閱讀5頁,還剩316頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第1章大數(shù)據(jù)介紹大數(shù)據(jù)概述

大數(shù)據(jù)(bigdata),指無法在一定時間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長率和多樣化的信息資產(chǎn)。

大數(shù)據(jù)時代的概念最早是全球知名咨詢公司麥肯錫提出的。按照麥肯錫的理念來理解,大數(shù)據(jù)并不是神秘的,不可觸摸的,它是一種新興的產(chǎn)業(yè),從提出概述至今不斷在推動著世界經(jīng)濟(jì)的轉(zhuǎn)型和進(jìn)一步的發(fā)展。

“大數(shù)據(jù)”一詞在1980年未來學(xué)家阿爾文·托夫勒著的《第三次浪潮》書中將“大數(shù)據(jù)”稱為“第三次浪潮的華彩樂章”。

1997年美國宇航局研究員邁克爾·考克斯和大衛(wèi)·埃爾斯沃斯首次使用“大數(shù)據(jù)”這一術(shù)語來描述20世紀(jì)90年代的挑戰(zhàn)。2007–2008年隨著社交網(wǎng)絡(luò)的激增,技術(shù)博客和專業(yè)人士為“大數(shù)據(jù)”概念注入新的生機(jī)。

2008年9月《自然》雜志在推出了名為“大數(shù)據(jù)”的封面專欄,同年“大數(shù)據(jù)”概念得到了美國政府的重視。

從2009-2010年“大數(shù)據(jù)”成為互聯(lián)網(wǎng)技術(shù)行業(yè)中的熱門詞匯?!按髷?shù)據(jù)時代已經(jīng)到來”出現(xiàn)在2011年6月麥肯錫發(fā)布了關(guān)于“大數(shù)據(jù)”的報告,正式定義了大數(shù)據(jù)的概念,后逐漸受到了各行各業(yè)關(guān)注。

2012年,大數(shù)據(jù)一詞越來越多地被提及,人們用它來描述和定義信息爆炸時代產(chǎn)生的海量數(shù)據(jù),并命名與之相關(guān)的技術(shù)發(fā)展與創(chuàng)新。

2008年9月《自然》雜志在推出了名為“大數(shù)據(jù)”的封面專欄,同年“大數(shù)據(jù)”概念得到了美國政府的重視。2014年“大數(shù)據(jù)”首次出現(xiàn)在我國國內(nèi)的《政府工作報告》中。

2015年國務(wù)院正式印發(fā)《促進(jìn)大數(shù)據(jù)發(fā)展行動綱要》。

2016年我國大數(shù)據(jù)行業(yè)發(fā)展的相關(guān)政策細(xì)化落地,國家發(fā)改委、環(huán)保部、工信部、國家林業(yè)局、農(nóng)業(yè)部等均推出了關(guān)于大數(shù)據(jù)的發(fā)展意見和方案。大數(shù)據(jù)的影響(1)大數(shù)據(jù)對科學(xué)活動的影響(2)大數(shù)據(jù)對思維方式的影響(3)大數(shù)據(jù)對社會發(fā)展的影響(4)大數(shù)據(jù)對就業(yè)市場的影響數(shù)據(jù)在我們的生活中,數(shù)據(jù)無處不在。比如銀行通過收集客戶的受教育程度、經(jīng)濟(jì)能力、住房情況等數(shù)據(jù),可以開展相應(yīng)的金融業(yè)務(wù)和服務(wù)。再比如醫(yī)院的電子病歷上,通常包含患者的病程情況、檢查檢驗結(jié)果、手術(shù)記錄等,這些數(shù)據(jù)可以有效的輔助醫(yī)生來監(jiān)控病人的病情。

簡單來說,數(shù)據(jù)就是為了某種目的而收集和轉(zhuǎn)換的任意字符集。數(shù)據(jù)既包括文本、數(shù)字,也包含圖像、語音和視頻等。將數(shù)據(jù)記錄下來,可以幫助我們更好地分析、整理和提取數(shù)據(jù)中蘊含的知識以及規(guī)律。數(shù)據(jù)在計算機(jī)系統(tǒng)中是以二進(jìn)制的形式來存儲的,用0或1來表示。結(jié)構(gòu)化數(shù)據(jù)

存儲在計算機(jī)的數(shù)據(jù)又分成兩類。第一類稱為結(jié)構(gòu)化數(shù)據(jù),是指在系統(tǒng)中定義好數(shù)據(jù)的結(jié)構(gòu),再嚴(yán)格地按照定義好的結(jié)構(gòu)來存儲、計算和管理數(shù)據(jù)。

最常見的結(jié)構(gòu)化數(shù)據(jù)就是關(guān)系型數(shù)據(jù)庫中的二維表,其中每一行稱為一個記錄,每一列稱作一個字段。比如在表中我們記錄的是每一年每個國家二氧化碳的總排放量和人均排放量,那么在表中先定義了4個字段,年份、人均二氧化碳排放量、國家和總二氧化碳排放量。非結(jié)構(gòu)化數(shù)據(jù)另一類稱為非結(jié)構(gòu)化數(shù)據(jù),是指數(shù)據(jù)結(jié)構(gòu)不規(guī)則或不完整,甚至沒有預(yù)定義的數(shù)據(jù)模型。非結(jié)構(gòu)化數(shù)據(jù)是大量存在的,比如文本、圖像、視頻和語音等。這些數(shù)據(jù)對我們的生活是非常重要的。在很多的行業(yè)領(lǐng)域里,80%的業(yè)務(wù)相關(guān)的信息都是來自于非結(jié)構(gòu)化數(shù)據(jù),特別是文本數(shù)據(jù)。在圖中展示了從2009年到2017年數(shù)據(jù)的增長情況,可以看出非結(jié)構(gòu)化數(shù)據(jù)增長得非常迅速。

非結(jié)構(gòu)化數(shù)據(jù)的第一類——文本數(shù)據(jù),是最常見的也是最多的。我們展示了兩個文本數(shù)據(jù),第一個是新聞數(shù)據(jù),標(biāo)題是“解碼澳門經(jīng)濟(jì)快速發(fā)展的‘隱形翅膀’”,它的來源是新華社的一篇新聞。這樣一個有標(biāo)題、有正文的新聞是一個典型的文本數(shù)據(jù)。

文本數(shù)據(jù)比結(jié)構(gòu)化數(shù)據(jù)要占用更多的內(nèi)存,比如“hello!”這樣一個簡單的單詞,計算機(jī)用二進(jìn)制表示出來,會看到一長串?dāng)?shù)字。那么可想而知,大量的文本將占用更多的存儲空間,表示起來也更加復(fù)雜。圖像是另一種非結(jié)構(gòu)化數(shù)據(jù)。一張標(biāo)有數(shù)字8的圖像,大家看到它可能會想到馬路上各種各樣的廣告牌和數(shù)字顯示LED屏。這個圖像是由很多小方格組成的,小方格被稱為像素點。

數(shù)字8的圖像中,橫排有16個像素點,豎排有22個像素點,一共由16×22個像素點組成。圖像是黑白的灰度圖,為了表現(xiàn)黑白的深淺不同,我們在每一個像素點上標(biāo)有不同的數(shù)值,大家可以發(fā)現(xiàn)最小的是0,最大的是255,也就是說用256個等級來區(qū)分顏色的深淺度,這樣我們就得到了一個矩陣。事實上在計算機(jī)中也是用數(shù)字矩陣的形式存儲圖像的。語音是第三種非結(jié)構(gòu)化數(shù)據(jù)形式。例如人說話的聲音、唱歌,都是由于空氣震動而產(chǎn)生的聲波。除了空氣以外,在固體和液體中聲音也是可以傳播的。第四類非結(jié)構(gòu)化數(shù)據(jù)是視頻,它是由一系列的靜態(tài)影像與聲音組合而成的。視頻按照一定的刷新頻率進(jìn)行刷新和播放,利用了人眼的視覺暫留原理,當(dāng)播放的速率超過每秒24幀以上時,可以給人一種平滑連續(xù)變化的動態(tài)視覺效果。因此視頻的本質(zhì)實際上是不斷變化的圖像,可以把它看作是單位時間內(nèi)聲音的存儲和若干幀圖像的存儲來處理,只不過處理視頻需要更強大的存儲和計算能力。在我們的日常生活中數(shù)據(jù)隨處可見。數(shù)據(jù)是為了某種目的而收集和整理的任意字符集。在計算機(jī)中數(shù)據(jù)最終使用0和1來表示。數(shù)據(jù)可以分類結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。非結(jié)構(gòu)化數(shù)據(jù)包括文本、圖像、語音和視頻等,它們是現(xiàn)在大數(shù)據(jù)和人工智能領(lǐng)域關(guān)注的重點。大數(shù)據(jù)的特征隨著對大數(shù)據(jù)認(rèn)識的不斷加深,人們認(rèn)為大數(shù)據(jù)一般具有四個特征:數(shù)據(jù)量大、數(shù)據(jù)類型繁多、數(shù)據(jù)產(chǎn)生速度快以及數(shù)據(jù)價值密度低。1.數(shù)據(jù)量大大數(shù)據(jù)中的數(shù)據(jù)量大,就是指的海量數(shù)據(jù)。由于大數(shù)據(jù)往往是采取全樣分析,因此大數(shù)據(jù)的“大”首先體現(xiàn)在其規(guī)模和容量遠(yuǎn)遠(yuǎn)超出傳統(tǒng)數(shù)據(jù)的測量尺度2.數(shù)據(jù)類型繁多(1)結(jié)構(gòu)化數(shù)據(jù)常指存儲關(guān)系在數(shù)據(jù)庫中的數(shù)據(jù),該數(shù)據(jù)遵循某種標(biāo)準(zhǔn),如企業(yè)財務(wù)報表、醫(yī)療數(shù)據(jù)庫信息、行政審批數(shù)據(jù)、學(xué)生檔案數(shù)據(jù)等。(2)非結(jié)構(gòu)化數(shù)據(jù)常指不規(guī)則或不完整的數(shù)據(jù),包括所有格式的辦公文檔、XML、HTML、各類報表、圖片、圖像以及咅頻、視頻信息等。企業(yè)中80%的數(shù)據(jù)都是非結(jié)構(gòu)化數(shù)據(jù),這些數(shù)據(jù)每年都按指數(shù)增長60%。相對于以往便于存儲的以文本為主的結(jié)構(gòu)化數(shù)據(jù),越來越多的非結(jié)構(gòu)化數(shù)據(jù)的產(chǎn)生給所有廠商都提出了挑戰(zhàn)。在網(wǎng)絡(luò)中非結(jié)構(gòu)化數(shù)據(jù)越來越成為數(shù)據(jù)的主要部分。值得注意的是:非結(jié)構(gòu)化數(shù)據(jù)具有內(nèi)部結(jié)構(gòu),但不通過預(yù)定義的數(shù)據(jù)模型或模式進(jìn)行結(jié)構(gòu)化。它可能是文本的或非文本的,也可能是人為的或機(jī)器生成的。它也可以存儲在像NoSQL這樣的非關(guān)系數(shù)據(jù)庫中。(3)半結(jié)構(gòu)化數(shù)據(jù)常指有一定的結(jié)構(gòu)與一致性約束,但在本質(zhì)上不存在關(guān)系的數(shù)據(jù),如常用于跨平臺傳輸?shù)腦ML數(shù)據(jù)以及JSON數(shù)據(jù)等。3.數(shù)據(jù)產(chǎn)生速度快在數(shù)據(jù)處理速度方面,有一個著名的“1秒定律”,即要在秒級時間范圍內(nèi)給出分析結(jié)果,超出這個時間,數(shù)據(jù)就失去價值了。大數(shù)據(jù)是一種以實時數(shù)據(jù)處理、實時結(jié)果導(dǎo)向為特征的解決方案4.數(shù)據(jù)價值密度低隨著互聯(lián)網(wǎng)以及物聯(lián)網(wǎng)的廣泛應(yīng)用,信息感知無處不在,信息海量,但價值密度較低,如何結(jié)合業(yè)務(wù)邏輯并通過強大的機(jī)器算法來挖掘數(shù)據(jù)價值,是大數(shù)據(jù)時代最需要解決的問題。大數(shù)據(jù)技術(shù)應(yīng)用與基礎(chǔ)大數(shù)據(jù)的應(yīng)用無處不在,從金融業(yè)到娛樂業(yè),從制造業(yè)到互聯(lián)網(wǎng)行業(yè),從物流業(yè)到運輸業(yè),到處都有大數(shù)據(jù)的身影。大數(shù)據(jù)關(guān)鍵技術(shù)(1)大數(shù)據(jù)采集數(shù)據(jù)采集位于數(shù)據(jù)分析生命周期的重要一環(huán),它通過傳感器數(shù)據(jù)、社交網(wǎng)絡(luò)數(shù)據(jù)、移動互聯(lián)網(wǎng)數(shù)據(jù)等方式獲得各種類型的結(jié)構(gòu)化、半結(jié)構(gòu)化及非結(jié)構(gòu)化的海量數(shù)據(jù)。(2)大數(shù)據(jù)預(yù)處理現(xiàn)實中的數(shù)據(jù)大多是“臟”數(shù)據(jù),如缺少屬性值或僅僅包含聚集數(shù)據(jù)等,因此需要人們對數(shù)據(jù)進(jìn)行預(yù)處理。數(shù)據(jù)預(yù)處理技術(shù)主要包含以下幾點:數(shù)據(jù)清理:用來清除數(shù)據(jù)中的噪聲,糾正不一致。數(shù)據(jù)集成:將數(shù)據(jù)由多個數(shù)據(jù)源合并成一個一致的數(shù)據(jù)存儲,如數(shù)據(jù)倉庫。數(shù)據(jù)歸約:通過如聚集、刪除冗余特征或聚類來降低數(shù)據(jù)的規(guī)模。數(shù)據(jù)變換:把數(shù)據(jù)壓縮到較小的區(qū)間,如[0,1],可以提高涉及距離度量的挖掘算法的準(zhǔn)確率和效率。(3)大數(shù)據(jù)存儲

大數(shù)據(jù)存儲是將數(shù)量巨大、難于收集、處理、分析的數(shù)據(jù)集持久化到計算機(jī)中。由于大數(shù)據(jù)環(huán)境一定是海量的數(shù)據(jù)環(huán)境,并且增量都有可能是海量的,因此大數(shù)據(jù)的存儲和一般數(shù)據(jù)的存儲有極大的差別,需要非常高性能、高吞吐率、大容量的基礎(chǔ)設(shè)備。(4)大數(shù)據(jù)分析挖掘

數(shù)據(jù)分析與挖掘的目的是把隱藏在一大批看來雜亂無章的數(shù)據(jù)中的信息集中起來,進(jìn)行萃取、提煉,以找出所研究對象的內(nèi)在規(guī)律。大數(shù)據(jù)計算模式計算模式的出現(xiàn)有力推動了大數(shù)據(jù)技術(shù)和應(yīng)用的發(fā)展,所謂大數(shù)據(jù)計算模式,即根據(jù)大數(shù)據(jù)的不同數(shù)據(jù)特征和計算特征,從多樣性的大數(shù)據(jù)計算問題和需求中提煉并建立的各種高層抽象(abstraction)或模型(model)。大數(shù)據(jù)計算模式對應(yīng)的系統(tǒng)如下所示。大數(shù)據(jù)查詢與分析計算:HBase、Hive、Cassandra、Premel、Impala、Shark、Hana、Redis。

批處理計算:

MapReduce、Spark。

流式計算:Scribe、Flume、Storm、S4、SparkStreaming。

迭代計算:HaLoop、iMapReduce、Twister、Spark。

圖計算:Pregel、PowerGrapg、GraphX。

內(nèi)存計算:Dremel、Hana、Redis。大數(shù)據(jù)框架大數(shù)據(jù)框架,是對于可以進(jìn)行大數(shù)據(jù)分析處理工具的集合,主要用于負(fù)責(zé)對大數(shù)據(jù)系統(tǒng)中的數(shù)據(jù)進(jìn)行計算。數(shù)據(jù)包括從持久存儲中讀取的數(shù)據(jù)或通過消息隊列等方式接入到系統(tǒng)中的數(shù)據(jù),而計算則是從數(shù)據(jù)中提取信息的過程。按照對所處理的數(shù)據(jù)形式和得到結(jié)果的時效性分類,大數(shù)據(jù)處理框架可以分為三類:批處理系統(tǒng)、流處理系統(tǒng)和混合處理系統(tǒng)。大數(shù)據(jù)與云計算大數(shù)據(jù)與云計算機(jī)都較好的代表了IT界發(fā)展的趨勢,二者相互聯(lián)系,密不可分。大數(shù)據(jù)的本質(zhì)就是利用計算機(jī)集群來處理大批量的數(shù)據(jù),大數(shù)據(jù)的技術(shù)關(guān)注點在于如何將數(shù)據(jù)分發(fā)給不同的計算機(jī)進(jìn)行存儲和處理。云計算機(jī)是計算機(jī)硬件資源的虛擬化,而大數(shù)據(jù)是對于海量數(shù)據(jù)的高效處理。大數(shù)據(jù)與人工智能人工智能(ArtificialIntelligence),英文縮寫為AI。它是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。大數(shù)據(jù)與人工智能的區(qū)別第一,在概念上兩者有所不同,大數(shù)據(jù)和云計算可以理解為技術(shù)上的概念,人工智能是應(yīng)用層面的概念,人工智能的技術(shù)前提是云計算和大數(shù)據(jù)。第二,在實現(xiàn)上,大數(shù)據(jù)主要是依靠海量數(shù)據(jù)來幫助人們對問題作出更好的判斷和分析,而人工智能一種計算形式,它允許機(jī)器執(zhí)行認(rèn)知功能,例如對輸入起作用或作出反應(yīng),類似于人類的做法,并能夠替代人類對認(rèn)知結(jié)果作出決定。大數(shù)據(jù)是一個事關(guān)我國經(jīng)濟(jì)社會發(fā)展全局的戰(zhàn)略性產(chǎn)業(yè),大數(shù)據(jù)技術(shù)為社會經(jīng)濟(jì)活動提供決策依據(jù),提高各個領(lǐng)域的運行效率,提升整個社會經(jīng)濟(jì)的集約化程度,對于我國經(jīng)濟(jì)發(fā)展轉(zhuǎn)型具有重要的推動作用。

大數(shù)據(jù)的意義從國家層面上講,大數(shù)據(jù)在推動中國經(jīng)濟(jì)轉(zhuǎn)型方面也將發(fā)揮重要作用。其一,通過大數(shù)據(jù)的分析可以幫助解決中國城鎮(zhèn)化發(fā)展中面臨的住房、教育、交通等難題。例如,在城市發(fā)展中,大數(shù)據(jù)是“智慧城市”建設(shè)中不可或缺的組成部分。通過對交通流量數(shù)據(jù)的實時采集和分析,可以指導(dǎo)駕駛者選擇最佳路線,改善城市交通狀況。其二,通過大數(shù)據(jù)的研究有助于推動鋼鐵、零售等傳統(tǒng)產(chǎn)業(yè)升級,向價值鏈高端發(fā)展。其三,大數(shù)據(jù)的應(yīng)用可以幫助中國在發(fā)展戰(zhàn)略性新興產(chǎn)業(yè)方面迅速站穩(wěn)腳跟,鞏固并提升競爭優(yōu)勢。大數(shù)據(jù)在許多企業(yè)應(yīng)用程序中的確扮演著相當(dāng)重要的角色,大數(shù)據(jù)的應(yīng)用對于企業(yè)帶來的好處有以下幾點:(1)結(jié)合各種傳統(tǒng)企業(yè)數(shù)據(jù)對大數(shù)據(jù)進(jìn)行分析和提煉,帶給企業(yè)更深入透徹的洞察力。它可以帶來更高的生產(chǎn)力,更大的創(chuàng)新和更強的競爭地位。

(2)正確的數(shù)據(jù)分析可以幫助企業(yè)做出明智的業(yè)務(wù)經(jīng)營決策的工具。這里所談的數(shù)據(jù)包括來自企業(yè)業(yè)務(wù)系統(tǒng)的訂單、庫存、交易賬目、客戶和供應(yīng)商資料及來自企業(yè)所處行業(yè)和競爭對手的數(shù)據(jù),以及來自企業(yè)所處的其他外部環(huán)境中的各種數(shù)據(jù)。而商業(yè)智能能夠輔助的業(yè)務(wù)經(jīng)營決策既可以是作業(yè)層的,也可以是管理層和策略層的決策。

(3)促進(jìn)企業(yè)決策流程:增進(jìn)企業(yè)的資訊整合與資訊分析的能力,匯總公司內(nèi)、外部的資料,整合成有效的決策資訊,讓企業(yè)經(jīng)理人大幅增進(jìn)決策效率與改善決策品質(zhì),很大程度上影響了企業(yè)的經(jīng)營和績效。大數(shù)據(jù)已成為驅(qū)動經(jīng)濟(jì)發(fā)展的新引擎,大數(shù)據(jù)應(yīng)用范圍和應(yīng)用水平將加速我國經(jīng)濟(jì)結(jié)構(gòu)調(diào)整、深度改變我們的生產(chǎn)生活方式??梢灶A(yù)見,在“十三五”期間:我國的大數(shù)據(jù)基礎(chǔ)設(shè)施建設(shè)持續(xù)增長。大數(shù)據(jù)開放共享進(jìn)度加快。政府大數(shù)據(jù)深入應(yīng)用。大數(shù)據(jù)相關(guān)立法加快。大數(shù)據(jù)與傳統(tǒng)產(chǎn)業(yè)深度融合。大數(shù)據(jù)的產(chǎn)業(yè)鏈分析大數(shù)據(jù)產(chǎn)業(yè)鏈的參與者主要包括:數(shù)據(jù)提供商(數(shù)據(jù)源)、基礎(chǔ)設(shè)施提供商(產(chǎn)生與匯聚層)、分析技術(shù)提供商(組織與管理層、分析與挖掘?qū)樱┖蜆I(yè)務(wù)應(yīng)用提供商(應(yīng)用與服務(wù)層)。數(shù)據(jù)提供商:主要負(fù)責(zé)基礎(chǔ)數(shù)據(jù)的生成和各方數(shù)據(jù)段融合?;A(chǔ)設(shè)施提供商:主要負(fù)責(zé)數(shù)據(jù)庫平臺的管理和建設(shè),以及云設(shè)施的建設(shè)。分析技術(shù)提供商:主要負(fù)責(zé)分析技術(shù)、分析服務(wù)和分析工具的提供,以及數(shù)據(jù)可視化的實現(xiàn)。業(yè)務(wù)應(yīng)用提供商:主要負(fù)責(zé)大數(shù)據(jù)的軟件開發(fā)與應(yīng)用。大數(shù)據(jù)的應(yīng)用本章小結(jié)1)大數(shù)據(jù)(bigdata),指無法在一定時間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長率和多樣化的信息資產(chǎn)。2)大數(shù)據(jù)一般具有四個特征:數(shù)據(jù)量大、數(shù)據(jù)類型繁多、數(shù)據(jù)產(chǎn)生速度快以及數(shù)據(jù)價值密度低。3)大數(shù)據(jù)的應(yīng)用無處不在,從金融業(yè)到娛樂業(yè),從制造業(yè)到互聯(lián)網(wǎng)行業(yè),從物流業(yè)到運輸業(yè),到處都有大數(shù)據(jù)的身影。4)大數(shù)據(jù)的關(guān)鍵技術(shù)包含數(shù)據(jù)采集、大數(shù)據(jù)預(yù)處理、大數(shù)據(jù)存儲和大數(shù)據(jù)分析挖掘。

5)按照對所處理的數(shù)據(jù)形式和得到結(jié)果的時效性分類,大數(shù)據(jù)處理框架可以分為三類:批處理系統(tǒng)、流處理系統(tǒng)和混合處理系統(tǒng)。6)大數(shù)據(jù)是一個事關(guān)我國經(jīng)濟(jì)社會發(fā)展全局的戰(zhàn)略性產(chǎn)業(yè),大數(shù)據(jù)技術(shù)為社會經(jīng)濟(jì)活動提供決策依據(jù),提高各個領(lǐng)域的運行效率,提升整個社會經(jīng)濟(jì)的集約化程度,對于我國經(jīng)濟(jì)發(fā)展轉(zhuǎn)型具有重要的推動作用。7)大數(shù)據(jù)運營是指以企業(yè)海量數(shù)據(jù)的存儲和分析挖掘應(yīng)用為核心支持的、企業(yè)全員參與的,以精準(zhǔn)、細(xì)分和精細(xì)化為特點的運營制度和戰(zhàn)略。

第2章大數(shù)據(jù)架構(gòu)大數(shù)據(jù)架構(gòu)概述

大數(shù)據(jù)架構(gòu)是用于于攝取和處理大量數(shù)據(jù)(通常稱為“大數(shù)據(jù)”)的總體系統(tǒng),因此可以針對業(yè)務(wù)目的進(jìn)行分析。該架構(gòu)可視為基于組織業(yè)務(wù)需求的大數(shù)據(jù)解決方案的藍(lán)圖。

企業(yè)中數(shù)據(jù)平臺的基礎(chǔ)架構(gòu)工業(yè)大數(shù)據(jù)的基礎(chǔ)架構(gòu)

使用大數(shù)據(jù)架構(gòu)可以幫助企業(yè)節(jié)省資金并做出關(guān)鍵決策,其中主要包括以下幾點:

1)降低成本。在存儲大量數(shù)據(jù)時,Hadoop和基于云計算的分析等大數(shù)據(jù)技術(shù)可以顯著地降低成本。

2)做出更快、更好的決策。使用大數(shù)據(jù)架構(gòu)的流組件,企業(yè)可以實時做出決策。

3)預(yù)測未來需求并創(chuàng)建新產(chǎn)品。大數(shù)據(jù)可以幫助企業(yè)衡量客戶需求并使用分析預(yù)測未來趨勢。

大數(shù)據(jù)架構(gòu)分類目前圍繞Hadoop體系的大數(shù)據(jù)架構(gòu)主要有傳統(tǒng)大數(shù)據(jù)架構(gòu)、流式架構(gòu)、Lambda架構(gòu)、Kappa架構(gòu)以及Unifield架構(gòu)等。傳統(tǒng)大數(shù)據(jù)架構(gòu)

傳統(tǒng)大數(shù)據(jù)架構(gòu),是因為其定位是為了解決傳統(tǒng)BI的問題,簡單來說,數(shù)據(jù)分析的業(yè)務(wù)沒有發(fā)生任何變化,但是因為數(shù)據(jù)量、性能等問題導(dǎo)致系統(tǒng)無法正常使用,需要進(jìn)行升級改造,那么此類架構(gòu)便是為了解決這個問題。流式架構(gòu)

在傳統(tǒng)大數(shù)據(jù)架構(gòu)的基礎(chǔ)上,流式架構(gòu)非常激進(jìn),直接拔掉了批處理,數(shù)據(jù)全程以流的形式處理,所以在數(shù)據(jù)接入端沒有了ETL,轉(zhuǎn)而替換為數(shù)據(jù)通道。Lambda架構(gòu)

Lambda架構(gòu)算是大數(shù)據(jù)系統(tǒng)里面舉足輕重的架構(gòu),大多數(shù)架構(gòu)基本都是Lambda架構(gòu)或者基于其變種的架構(gòu)。Lambda的數(shù)據(jù)通道分為兩條分支:實時流和離線。實時流依照流式架構(gòu),保障了其實時性,而離線則以批處理方式為主,保障了最終一致性。Kappa架構(gòu)Kappa架構(gòu)在Lambda的基礎(chǔ)上進(jìn)行了優(yōu)化,將實時和流部分進(jìn)行了合并,將數(shù)據(jù)通道以消息隊列進(jìn)行替代。因此對于Kappa架構(gòu)來說,依舊以流處理為主,但是數(shù)據(jù)卻在數(shù)據(jù)湖層面進(jìn)行了存儲Unifield架構(gòu)以上的種種架構(gòu)都圍繞海量數(shù)據(jù)處理為主,Unifield架構(gòu)則更激進(jìn),將機(jī)器學(xué)習(xí)和數(shù)據(jù)處理揉為一體,從核心上來說,Unifield依舊以Lambda為主,不過對其進(jìn)行了改造,在流處理層新增了機(jī)器學(xué)習(xí)層。

Hadoop是Apache軟件基金會旗下的一個開源分布式計算平臺。以Hadoop分布式文件系統(tǒng)(Hadoopdistributedfilesystem,HDFS)和MapReduce(GoogleMapReduce的開源實現(xiàn))為核心的Hadoop為用戶提供了系統(tǒng)底層細(xì)節(jié)透明的分布式基礎(chǔ)架構(gòu)。

Hadoop架構(gòu)狹義上來說,Hadoop就是單獨指代hadoop這個軟件,廣義上來說,Hadoop指代大數(shù)據(jù)的一個生態(tài)圈,包括很多其他的軟件。Hadoop特點

Hadoop是一個框架,由一系列的軟件庫組成的框架。這些軟件庫也可稱作功能模塊,它們各自負(fù)責(zé)了Hadoop的一部分功能。Hadoop適合處理大規(guī)模數(shù)據(jù),并能夠?qū)崿F(xiàn)分布式存儲和分布式計算Hadoop被部署在一個集群上。

所謂集群,是一組通過網(wǎng)絡(luò)互聯(lián)的計算機(jī),集群里的每一臺計算機(jī)稱為一個節(jié)點。

Hadoop發(fā)展史

Hadoop原本來自于Google一款名為MapReduce的編程模型包。Google的MapReduce框架可以把一個應(yīng)用程序分解為許多并行計算指令,跨大量的計算節(jié)點運行巨大的數(shù)據(jù)集。

Hadoop的源頭是ApacheNutch,該項目始于2002年,是ApacheLucene的子項目之一。Nutch的設(shè)計目標(biāo)是構(gòu)建一個大型的全網(wǎng)搜索引擎hadoop的歷史版本一共有3個,分別是:0.x系列版本:hadoop當(dāng)中最早的一個開源版本,在此基礎(chǔ)上演變而來的1.x以及2.x的版本;

1.x版本系列:hadoop版本當(dāng)中的第二代開源版本,主要修復(fù)0.x版本的一些bug等;

2.x版本系列:架構(gòu)產(chǎn)生重大變化,引入了yarn平臺等許多新特性。

Hadoop核心組件

Hadoop的三大核心組件分別是:HDFS、YARN和MapReduce。HDFS(HadoopDistributeFileSystem):hadoop的數(shù)據(jù)存儲工具。YARN(YetAnotherResourceNegotiator,另一種資源協(xié)調(diào)者):Hadoop的資源管理器。HadoopMapReduce:分布式計算框架。

HDFS

HDFS(HadoopDistributedFileSystem),它是一個文件系統(tǒng),用于存儲文件,通過目錄樹來定位文件;其次,它是分布式的,由很多服務(wù)器聯(lián)合起來實現(xiàn)其功能,集群中的服務(wù)器有各自的角色。

YARN

ApacheHadoopYARN(YetAnotherResourceNegotiator,另一種資源協(xié)調(diào)者)是一種新的Hadoop資源管理器,它是一個通用資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度。

MapReduceMapReduce是Google公司于2004年提出的能并發(fā)處理海量數(shù)據(jù)的并行編程模型,其特點是簡單易學(xué)、適用廣泛,能夠降低并行編程難度,讓程序員從繁雜的并行編程工作中解脫出來,輕松地編寫簡單、高效的并行程序。HDFS概述HDFS(Hadoopdistributedfilesystem)是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的,是一個分布式文件系統(tǒng)。它是Google的GFS提出之后出現(xiàn)的另外一種文件系統(tǒng)。HDFS優(yōu)缺點

(1)處理超大文件。這里的超大文件通常是指百MB、甚至數(shù)百MB大小的文件。但是,目前在實際應(yīng)用中,HDFS已經(jīng)能用來存儲管理PB級的數(shù)據(jù)了。

(2)流式數(shù)據(jù)訪問。HDFS的設(shè)計建立在“一次寫入、多次讀寫”任務(wù)的基礎(chǔ)上。

(3)運行于廉價的商用機(jī)器集群上。Hadoop設(shè)計對應(yīng)急需求比較低,只需運行在低廉的商用硬件集群上,而無需運行在昂貴的高可用性機(jī)器上。HDFS構(gòu)成HDFS的關(guān)鍵元素包含:Block、NameNode和DataNode。Block:將一個文件進(jìn)行分塊,通常一個塊的大小是64M。NameNode:保存整個文件系統(tǒng)的目錄信息、文件信息及分塊信息,這是由唯一一臺主機(jī)專門保存,當(dāng)然這臺主機(jī)如果出錯,NameNode就失效了。DataNode:分布在廉價的計算機(jī)上,用于存儲Block塊文件。HDFS操作Hadoop自帶一組命令行工具,而其中有關(guān)HDFS的命令是其工具集的一個子集。執(zhí)行“hadoopdfs”命令可以顯示HDFS常用命令的使用信息:[hadoop@masterbin]$hadoopdfsUsage:javaFsShell[-ls<path>][-lsr<path>][-df[<path>]][-du<path>][-dus<path>][-count[-q]<path>][-mv<src><dst>][-cp<src><dst>][-rm[-skipTrash]<path>][-rmr[-skipTrash]<path>][-expunge][-put<localsrc>…<dst>][-copyFromLocal<localsrc>…<dst>][-moveFromLocal<localsrc>…<dst>][-get[ignoreCrc][-crc]<src><localdst>][-getmerge<src><localdst>[addnl]][-cat<src>][-text<src>][-copyToLocal[ignoreCrc][-crc]<src><localdst>][-moveToLocal[-crc]<src><localdst>][-mkdir<path>][setrep[-r][-w]<rep><path/file>][-touchz<path>][-test–[ezd]<path>][-stat[format]<path>][-tail[-f]<file>][-chmod[-R]<MODE[MODE]…|OCTALMODE>PATH][-chown[-R][OWNER][GROUP]]PATH…][-chgrp][-R]GROUPPATH…][-help[cmd]]MapReduce概述MapReduce是Google系統(tǒng)和Hadoop系統(tǒng)中的一項核心技術(shù)。它是一個軟件框架,可以將單個計算作業(yè)分配給多臺計算機(jī)執(zhí)行。它假定這些作業(yè)在單機(jī)上需要很長的運行時間,因此使用多臺機(jī)器縮短運行時間。Map(映射)Reduce(化簡)一個大數(shù)據(jù)若可以分為具有同樣計算過程的數(shù)據(jù)塊,并且這些數(shù)據(jù)塊之間不存在數(shù)據(jù)依賴關(guān)系,則提高處理速度的最好辦法就是并行計算。

MapReduce是一種分布式計算模型,在處理海量數(shù)據(jù)上具有很明顯的優(yōu)勢,因此常被用于大規(guī)模數(shù)據(jù)集的并行計算。

MapReduce出現(xiàn)的歷史要追溯到1956年,圖靈獎獲得者--著名的人工智能專家McCarthy首次提出了LISP語言的構(gòu)想,而在LISP語言中就包含了現(xiàn)在所使用的MapReduce功能。2004年,Google公司的Dean發(fā)表文章將MapReduce這一編程模型在分布式系統(tǒng)中的應(yīng)用進(jìn)行了介紹,從此MapReduce分布式編程模型進(jìn)入了人們的視野。

MapReduce是一個簡單、方便的分布式編程模型,主要面向存儲在HDFS中的數(shù)據(jù)。采用“分而治之”的思想,MapReduce將一個大規(guī)模數(shù)據(jù)分解為多個小規(guī)模數(shù)據(jù),并將其分發(fā)給集群中的多個節(jié)點共同去完成。MapReduce的編程框架是由一個單獨運行在主節(jié)點上的JobTracker和運行在每個集群從節(jié)點上的TaskTracker共同組成的。用戶用map和reduce兩個函數(shù)來表達(dá)計算。map函數(shù)的輸入是一個<key,value>鍵值對,輸出一個<key,value>鍵值對的集合的中間結(jié)果。

MapReduce集合所有相同key值的value,然后提供給reduce函數(shù)。reduce函數(shù)收到key值和對應(yīng)的value的集合,通過計算得到較小的value值的集合。在Hadoop的體系結(jié)構(gòu)中,MapReduce是一個簡單、易用的軟件框架。計算單詞的個數(shù)如果想統(tǒng)計下過去10年計算機(jī)論文出現(xiàn)最多的幾個單詞,看看大家都在研究些什么,那收集好論文后,該怎么辦呢?把作業(yè)交給多個計算機(jī)去完成。我們寫一個小程序,把所有論文按順序遍歷一遍,統(tǒng)計每一個遇到的單詞的出現(xiàn)次數(shù),最后就可以知道哪幾個單詞最熱門了。這種方法在數(shù)據(jù)集比較小時,是非常有效的,而且實現(xiàn)最簡單,用來解決這個問題很合適。

部署到N臺機(jī)器上去,然后把論文集分成N份,一臺機(jī)器跑一個作業(yè)。這個方法跑得足夠快,但是部署起來很麻煩。

MapReduce算法的機(jī)制要遠(yuǎn)比這復(fù)雜得多,但是主體思想是一致的–通過分散計算來分析大量數(shù)據(jù)。無論是Facebook、NASA,還是小創(chuàng)業(yè)公司,MapReduce都是目前分析互聯(lián)網(wǎng)級別數(shù)據(jù)的主流方法。本章小結(jié)(1)Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,實現(xiàn)了Google的MapReduce編程模型和框架,能夠把應(yīng)用程序分割成許多的小的工作單元,并把這些單元放到任何集群節(jié)點上執(zhí)行。在MapReduce中,一個準(zhǔn)備提交執(zhí)行的應(yīng)用程序稱為“作業(yè)(job)”,而從一個作業(yè)劃分得出運行于各個計算節(jié)點的工作單元稱為“任務(wù)(task)”。(2)HDFS:將文件進(jìn)行切塊處理,再通過文件信息服務(wù)器Namenode存放切塊的文件信息存放地址,實際存放數(shù)據(jù)的服務(wù)器Datanode存放切塊后的數(shù)據(jù)。系統(tǒng)默認(rèn)每個片塊大小為64M,以保證尋址速度;數(shù)據(jù)會寫入3個Datanode中,以保證更高的容錯性。HDFSClient幫助Namenode對寫入讀取數(shù)據(jù)進(jìn)行預(yù)處理,進(jìn)行文件的分塊與發(fā)送讀取操作。Namenode負(fù)責(zé)為數(shù)據(jù)任務(wù)尋址。HDFS還設(shè)計了SecondaryNamenode來更新Namenode,以避免日志文件過大。(3)MapReduce中有兩類節(jié)點,第一個是JobTracker,它也是一個Master管理節(jié)點。客戶端提交一個任務(wù),JobTracker把它放到一個后續(xù)隊列里面,在適當(dāng)?shù)臅r候選擇一個Job,將這個Job拆分成多個Map任務(wù)和Reduce任務(wù),將任務(wù)分發(fā)給TaskTracker。在部署的時候,TaskTracker和HDFS中的DataNode往往是同一種物理節(jié)點。這樣可以保證計算是跟著數(shù)據(jù)走的,保證讀取數(shù)據(jù)開銷最小,即移動計算。

第3章數(shù)據(jù)采集與清洗數(shù)據(jù)采集具有悠久的歷史,在遠(yuǎn)古時期,人們便學(xué)會了在繩子上打結(jié),進(jìn)行數(shù)字的記錄。到了19世紀(jì),1887年,美國統(tǒng)計學(xué)家霍爾曼·霍爾瑞斯發(fā)明了一臺電動機(jī)器,它能夠讀取卡片上的洞數(shù),使用這臺設(shè)備,美國僅用了一年時間,就完成了原本需要8年才能完成的人口普查工作。人工采集方法是一種非常傳統(tǒng)的數(shù)據(jù)采集方法,其中最古老的就是普查,它至今已有數(shù)千年的歷史。據(jù)記載2200多年前的西漢時期,中國就開展了第1次人口普查,這也是早期人工數(shù)據(jù)采集的典范。1895年,學(xué)術(shù)界提出了抽樣調(diào)查方法,并且在后來的30多年進(jìn)行完善,使得這個調(diào)查方法成為一種更及時、更經(jīng)濟(jì)的數(shù)據(jù)采集方法,被廣泛應(yīng)用在經(jīng)濟(jì)、社會和科學(xué)研究領(lǐng)域。直到今天,它仍然是一種特別有效的方法。進(jìn)入20世紀(jì),數(shù)據(jù)采集的重要性更加得到重視。例如在1934年到1937年間,美國總統(tǒng)羅斯福就開展了一項數(shù)據(jù)收集的計劃,他整理了美國2600萬個員工和300萬個雇主的記錄,有了這些數(shù)據(jù),就可以很好的開展社會保障法的系列工作。到了21世紀(jì),數(shù)據(jù)采集得到了進(jìn)一步的發(fā)展。2009年印度政府建立了印度唯一的身份識別管理部門,它對12億印度人進(jìn)行了指紋、照片和虹膜等個人特征信息的采集,并且為每一個印度人分配了12位數(shù)字ID號碼,將這些身份數(shù)據(jù)匯集到世界上最大的生物識別數(shù)據(jù)庫中,這也是當(dāng)時影響非常廣泛的一個數(shù)據(jù)采集的例子。數(shù)據(jù)采集在各行各業(yè)都有廣泛的應(yīng)用,比如旅游行業(yè)通過收集各類相關(guān)信息,能夠幫助人們優(yōu)化出行策略;在電子商務(wù)領(lǐng)域,通過對商品類別、商品名稱、商品價格等信息進(jìn)行數(shù)據(jù)采集和分析,可以構(gòu)建商品比價系統(tǒng);再比如銀行通過收集用戶的個人交易數(shù)據(jù),對用戶的征信和貸款進(jìn)行評級,此外在金融領(lǐng)域、招聘領(lǐng)域和輿情分析領(lǐng)域中數(shù)據(jù)采集也是非常重要的。學(xué)生數(shù)據(jù)采集大數(shù)據(jù)采集擁有數(shù)據(jù)的方式有很多種,既可以通過企業(yè)自身來采集數(shù)據(jù),也可以通過如爬蟲等其他方式獲取數(shù)據(jù)。擁有數(shù)據(jù)是大數(shù)據(jù)分析的前提。網(wǎng)絡(luò)爬蟲的對象主要是各類網(wǎng)站,包括新聞類、社交類、購物類以及相應(yīng)的一些API、用戶接口和一些流型數(shù)據(jù),比如說目前各種視頻的一些彈幕數(shù)據(jù)。數(shù)據(jù)采集的方法

(1)系統(tǒng)日志采集

日志采集系統(tǒng)的主要工作就是收集業(yè)務(wù)日志數(shù)據(jù)供離線和在線的分析系統(tǒng)使用。

目前常用的開源日志采集平臺包含有:ApacheFlume、Fluentd、Logstash、Chukwa、Scribe以及SplunkForwarder等。

(2)網(wǎng)絡(luò)數(shù)據(jù)采集

網(wǎng)絡(luò)數(shù)據(jù)采集是指利用互聯(lián)網(wǎng)搜索引擎技術(shù)實現(xiàn)有針對性、行業(yè)性、精準(zhǔn)性的數(shù)據(jù)抓取,并按照一定規(guī)則和篩選標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)歸類,并形成數(shù)據(jù)庫文件的一個過程。

(3)數(shù)據(jù)庫采集

數(shù)據(jù)庫采集是將實時產(chǎn)生的數(shù)據(jù)以記錄的形式直接寫入到企業(yè)的數(shù)據(jù)庫中,然后使用特定的數(shù)據(jù)處理系統(tǒng)進(jìn)行進(jìn)一步分析。目前比較常見的數(shù)據(jù)庫采集主要有MySQL、Oracle、Redis、Bennyunn以及MongoDB等。數(shù)據(jù)采集平臺

ApacheFlumeFlume是cloudera于2009年7月開源的日志系統(tǒng)。它內(nèi)置的各種組件非常齊全,用戶幾乎不必進(jìn)行任何額外開發(fā)即可使用。

Flume內(nèi)部有一個或者多個Agent,每一個Agent都由Source,Channel和Sink組成。Source負(fù)責(zé)接收輸入數(shù)據(jù),并將數(shù)據(jù)寫入管道。

Fluentd

Fluentd是一個開源的日志數(shù)據(jù)采集平臺,專為處理數(shù)據(jù)流設(shè)計,它使用JSON作為數(shù)據(jù)格式。它采用了插件式的架構(gòu),具有高可擴(kuò)展性高可用性,同時還實現(xiàn)了高可靠的信息轉(zhuǎn)發(fā)。在實際應(yīng)用中,F(xiàn)luentd主要負(fù)責(zé)從服務(wù)器收集日志信息,并將數(shù)據(jù)流交給后續(xù)數(shù)據(jù)存儲。因此,F(xiàn)luentd可以解決數(shù)據(jù)流流向混亂的問題。Logstash

Elasicsearch是當(dāng)前主流的分布式大數(shù)據(jù)存儲和搜索引擎,可以為用戶提供強大的全文本檢索能力,廣泛應(yīng)用于日志檢索,全站搜索等領(lǐng)域。Logstash作為Elasicsearch常用的實時數(shù)據(jù)采集引擎,可以采集來自不同數(shù)據(jù)源的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行處理后輸出到多種輸出源。從功能上看,Inputs用于從數(shù)據(jù)源獲取數(shù)據(jù),F(xiàn)ilters用于處理數(shù)據(jù)如格式轉(zhuǎn)換,數(shù)據(jù)派生等,Outputs用于數(shù)據(jù)輸出Chukwa

Chukwa是一個開源的監(jiān)控大型分布式系統(tǒng)的數(shù)據(jù)采集系統(tǒng),它構(gòu)建于HDFS和Map/Reduce框架之上,并繼承了Hadoop優(yōu)秀的擴(kuò)展性和健壯性。在數(shù)據(jù)分析方面,Chukwa擁有一套靈活、強大的工具,可用于監(jiān)控和分析結(jié)果來更好的利用所采集的數(shù)據(jù)結(jié)果。Chukwa中的主要部件包含有Agents、Adaptors、Collectors、Map/ReduceJobs以及HICC等。其中Agents負(fù)責(zé)采集最原始的數(shù)據(jù),并發(fā)送給Collectors;Adaptors是直接采集數(shù)據(jù)的接口和工具,一個Agent可以管理多個Adaptor的數(shù)據(jù)采集;Collectors負(fù)責(zé)收集Agent收送來的數(shù)據(jù),并定時寫入集群中;Map/ReduceJobs則執(zhí)行定時啟動任務(wù),負(fù)責(zé)把集群中的數(shù)據(jù)分類、排序、去重和合并;HICC負(fù)責(zé)數(shù)據(jù)的最后展示。Scribe

Scribe是facebook開源的日志收集系統(tǒng),在facebook內(nèi)部已經(jīng)得到大量的應(yīng)用。它能夠從各種日志源上收集日志,存儲到一個中央存儲系統(tǒng)(可以是NFS,分布式文件系統(tǒng)等)上,以便于進(jìn)行集中統(tǒng)計分析處理。Scribe的架構(gòu)比較簡單,主要包括三部分,分別為Scribeagent,Scribe和存儲系統(tǒng)。

Kafka

Kafka是由Apache軟件基金會開發(fā)的一個開源流處理平臺,由Scala和Java編寫,使用了多種效率優(yōu)化機(jī)制,適合于異構(gòu)集群。

Kafka實際上是一個消息發(fā)布訂閱系統(tǒng),它主要有三種角色,分別為Producer,Broker和Consumer。Producer向某個topic發(fā)布消息,而Consumer訂閱某個topic的消息,進(jìn)而一旦有新的關(guān)于某個topic的消息,Broker會傳遞給訂閱它的所有Consumer。

爬蟲主要是與網(wǎng)頁打交道的,在了解爬蟲之前,必須要了解網(wǎng)頁的工作方式。

(1)網(wǎng)頁請求和響應(yīng)的過程1)Request(請求)。每一個用戶打開的網(wǎng)頁都必須在最開始由用戶向服務(wù)器發(fā)送訪問的請求。2)Response(響應(yīng))。服務(wù)器在接收到用戶的請求后,會驗證請求的有效性,然后向用戶發(fā)送相應(yīng)的內(nèi)容??蛻舳私邮盏椒?wù)器的相應(yīng)內(nèi)容后,再將此內(nèi)容展示出來,以供用戶瀏覽。網(wǎng)絡(luò)數(shù)據(jù)的采集網(wǎng)頁請求的方式一般分為兩種:GET和POST。1)GET:GET是最常見的請求方式,一般用于獲取或者查詢資源信息,也是大多數(shù)網(wǎng)站使用的方式。2)POST:POST與GET相比,多了以表單形式上傳參數(shù)的功能,因此除了查詢信息外,還可以修改信息。用戶使用爬蟲來獲取網(wǎng)頁數(shù)據(jù)的時候,一般要經(jīng)過以下幾步:發(fā)送請求。獲取相應(yīng)內(nèi)容。解析內(nèi)容。保存數(shù)據(jù)。

Scrapy爬蟲框架

Scrapy是一個使用Python語言編寫的開源網(wǎng)絡(luò)爬蟲框架,是一個高級的Python爬蟲框架。Scrapy可用于各種有用的應(yīng)用程序,如數(shù)據(jù)挖掘,信息處理以及歷史歸檔等,目前主要用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。

Scrapy框架由ScrapyEngine、Scheduler、Downloader、Spiders、ItemPipeline、Downloadermiddlewares以及Spidermiddlewares等幾部分組成數(shù)據(jù)清洗

在眾多數(shù)據(jù)中總是存在著許多“臟”數(shù)據(jù),即不完整、不規(guī)范、不準(zhǔn)確的數(shù)據(jù),因此數(shù)據(jù)清洗就是指把“臟數(shù)據(jù)”徹底洗掉,包括檢查數(shù)據(jù)一致性,處理無效值和缺失值等,從而提高數(shù)據(jù)質(zhì)量。

在實際的工作中,數(shù)據(jù)清洗通常占開發(fā)過程的50%-70%左右的時間。

數(shù)據(jù)清洗的含義是檢測和去除數(shù)據(jù)集中的噪聲數(shù)據(jù)和無關(guān)數(shù)據(jù),處理遺漏數(shù)據(jù),去除空白數(shù)據(jù)域和知識背景下的白噪聲。

一致性檢查一致性檢查是根據(jù)每個變量的合理取值范圍和相互關(guān)系,檢查數(shù)據(jù)命名是否規(guī)范,是否有沖突,數(shù)據(jù)內(nèi)容是否合乎要求,記錄是否有拼寫錯誤,發(fā)現(xiàn)超出正常范圍、邏輯上不合理或者相互矛盾的數(shù)據(jù)。用1-7級量表測量的變量出現(xiàn)了0值,體重出現(xiàn)了負(fù)數(shù),身高出現(xiàn)了負(fù)數(shù),年齡出現(xiàn)了負(fù)數(shù),考試成績出現(xiàn)了負(fù)數(shù)等,都應(yīng)視為超出正常值域范圍。無效值和缺失值的處理

由于調(diào)查、編碼和錄入誤差,數(shù)據(jù)中可能存在一些無效值和缺失值,需要給予適當(dāng)?shù)奶幚怼3S玫奶幚矸椒ㄓ校汗浪?,整例刪除,變量刪除和成對刪除。數(shù)據(jù)清洗流程數(shù)據(jù)清洗-預(yù)處理1)選擇數(shù)據(jù)處理工具:一般使用關(guān)系型數(shù)據(jù)庫,單機(jī)可使用MySQL。如果數(shù)據(jù)量大(千萬級以上),可以使用文本文件存儲+Python操作的方式。2)查看數(shù)據(jù)的元數(shù)據(jù)以及數(shù)據(jù)特征:一是看元數(shù)據(jù),包括字段解釋、數(shù)據(jù)來源、代碼表等等一切描述數(shù)據(jù)的信息;二是抽取一部分?jǐn)?shù)據(jù),使用人工查看方式,對數(shù)據(jù)本身有一個直觀的了解,并且初步發(fā)現(xiàn)一些問題,為之后的處理做準(zhǔn)備。在數(shù)據(jù)清洗中,原始數(shù)據(jù)源是數(shù)據(jù)清洗的基礎(chǔ),數(shù)據(jù)分析是數(shù)據(jù)清洗的前提,而定義數(shù)據(jù)清洗轉(zhuǎn)換規(guī)則是關(guān)鍵。在大數(shù)據(jù)清洗中常見的數(shù)據(jù)清洗規(guī)則主要包括有:非空檢核、主鍵重復(fù)、非法代碼清洗、非法值清洗、數(shù)據(jù)格式檢核、記錄數(shù)檢核等。

(2)數(shù)據(jù)清洗-缺省值清洗1)確定缺省值范圍2)去除不需要的字段

(3)填充缺省值內(nèi)容4)重新獲取數(shù)據(jù)(3)數(shù)據(jù)清洗-格式與內(nèi)容清洗1)時間、日期、數(shù)值、全半角等顯示格式不一致2)內(nèi)容中有不該存在的字符3)內(nèi)容與該字段應(yīng)有內(nèi)容不符(4)數(shù)據(jù)清洗-邏輯錯誤清洗

邏輯錯誤清洗是指通過簡單的邏輯推理來發(fā)現(xiàn)數(shù)據(jù)中存在的問題數(shù)據(jù),從而防止分析結(jié)果走偏。1)數(shù)據(jù)去重。2)去掉不合理的值。3)去掉不可靠的字段值。4)對來源不可靠的數(shù)據(jù)重點關(guān)注。在填寫年齡時,將“20歲”寫為了“200歲”,或是“-20歲”就可以將該值清除。(5)數(shù)據(jù)清洗-多余的數(shù)據(jù)清洗(6)數(shù)據(jù)清洗-關(guān)聯(lián)性驗證銷售公司有汽車的線下購買信息,也有電話客服問卷信息,兩者通過姓名和手機(jī)號關(guān)聯(lián),那么要看一下,同一個人線下登記的車輛信息和線上問卷問出來的車輛信息是不是一致的,如果不是那么需要調(diào)整或去除數(shù)據(jù)。大數(shù)據(jù)清洗的質(zhì)量規(guī)范數(shù)據(jù)缺失值的處理方法(1)刪除缺失值(2)均值填補法(3)熱卡填補法(4)最近距離決定填補法(5)回歸填補法(6)多重填補法(7)k-最近鄰法(8)有序最近鄰法(9)基于貝葉斯的方法噪聲數(shù)據(jù)的處理方法噪聲數(shù)據(jù)是指數(shù)據(jù)中存在著錯誤或異常(偏離期望值)的數(shù)據(jù),這些數(shù)據(jù)對數(shù)據(jù)的分析造成了干擾。噪聲數(shù)據(jù)主要包含錯誤數(shù)據(jù)、假數(shù)據(jù)和異常數(shù)據(jù)。(1)分箱法

分箱法是通過考察某一數(shù)據(jù)周圍數(shù)據(jù)的值,即“近鄰”來光滑有序數(shù)據(jù)的值。(2)平滑處理

在分箱之后,需要對每個箱子中的數(shù)據(jù)進(jìn)行平滑處理。平滑方法主要有:按平均值平滑、按邊界值平滑和按中值平滑。(3)回歸法

回歸法是試圖發(fā)現(xiàn)兩個相關(guān)的變量之間的變化模式,通過使數(shù)據(jù)適合一個函數(shù)來平滑數(shù)據(jù),即通過建立數(shù)學(xué)模型來預(yù)測下一個數(shù)值,包括線性回歸和非線性回歸?;貧w法(4)聚類分析

將數(shù)據(jù)集合分組為若干個簇,在簇外的值即為孤立點,這些孤立點就是噪聲數(shù)據(jù),應(yīng)當(dāng)對這些孤立點進(jìn)行刪除或者替換。大數(shù)據(jù)清洗的質(zhì)量規(guī)范冗余數(shù)據(jù)的處理方法

冗余數(shù)據(jù)既包含重復(fù)的數(shù)據(jù),也包含對分析處理的問題無關(guān)的數(shù)據(jù),通常采用過濾數(shù)據(jù)的方法來處理冗余數(shù)據(jù)。例如,對于重復(fù)數(shù)據(jù)采用重復(fù)過濾的方法,對于無關(guān)的數(shù)據(jù)則采用條件過濾的方法。數(shù)據(jù)清洗的評估描述數(shù)據(jù)清洗的評估實質(zhì)上是對清洗后的數(shù)據(jù)的質(zhì)量進(jìn)行評估,而數(shù)據(jù)質(zhì)量的評估過程是一種通過測量和改善數(shù)據(jù)綜合特征來優(yōu)化數(shù)據(jù)價值的過程。數(shù)據(jù)質(zhì)量評價指標(biāo)和方法研究的難點在于數(shù)據(jù)質(zhì)量的含義、內(nèi)容、分類、分級、質(zhì)量的評價指標(biāo)等。

在進(jìn)行數(shù)據(jù)質(zhì)量評估時,要根據(jù)具體的數(shù)據(jù)質(zhì)量評估需求對數(shù)據(jù)質(zhì)量評估指標(biāo)進(jìn)行相應(yīng)的取舍。但是,數(shù)據(jù)質(zhì)量評估至少應(yīng)該包含以下兩方面的基本評估指標(biāo):數(shù)據(jù)對用戶必須是可信的和數(shù)據(jù)對用戶必須是可用的。數(shù)據(jù)的標(biāo)準(zhǔn)化,是通過一定的數(shù)學(xué)變換方式,將原始數(shù)據(jù)按照一定的比例進(jìn)行轉(zhuǎn)換,使之落入到一個小的特定區(qū)間內(nèi),例如0~1或-1~1的區(qū)間內(nèi),消除不同變量之間性質(zhì)、量綱、數(shù)量級等特征屬性的差異,將其轉(zhuǎn)化為一個無量綱的相對數(shù)值。數(shù)據(jù)標(biāo)準(zhǔn)化概述數(shù)據(jù)的標(biāo)準(zhǔn)化,是通過一定的數(shù)學(xué)變換方式,將原始數(shù)據(jù)按照一定的比例進(jìn)行轉(zhuǎn)換,使之落入到一個小的特定區(qū)間內(nèi),例如0~1或-1~1的區(qū)間內(nèi),消除不同變量之間性質(zhì)、量綱、數(shù)量級等特征屬性的差異,將其轉(zhuǎn)化為一個無量綱的相對數(shù)值。在比較學(xué)生成績時,一個百分制的變量與一個5分值的變量放在一起是無法比較的。只有通過數(shù)據(jù)標(biāo)準(zhǔn)化,都把它們標(biāo)準(zhǔn)到同一個標(biāo)準(zhǔn)時才具有可比性。在利用大數(shù)據(jù)預(yù)測的房價時,由于全國各地的工資收入水平是不同的。因此直接使用原始的數(shù)據(jù)值,那么他們對房價的影響程度將是不一樣的,而通過標(biāo)準(zhǔn)化處理,可以使得不同的特征具有相同的尺度。目前有許多中數(shù)據(jù)標(biāo)準(zhǔn)化方法,常用的有最小-最大標(biāo)準(zhǔn)化、Z-score標(biāo)準(zhǔn)化和按小數(shù)定標(biāo)標(biāo)準(zhǔn)化等。數(shù)據(jù)倉庫概述

數(shù)據(jù)倉庫是決策支持系統(tǒng)和聯(lián)機(jī)分析應(yīng)用數(shù)據(jù)源的結(jié)構(gòu)化數(shù)據(jù)環(huán)境,它研究和解決從數(shù)據(jù)庫中獲取信息的問題,并為企業(yè)所有級別的決策制定過程,提供所有類型數(shù)據(jù)支持的戰(zhàn)略集合。

數(shù)據(jù)倉庫可以從各種數(shù)據(jù)源中提取所需的數(shù)據(jù),并進(jìn)行存儲、整合與挖掘,從而最終幫助企業(yè)的高層管理者或者業(yè)務(wù)分析人員做出商業(yè)戰(zhàn)略決策或商業(yè)報表。1)數(shù)據(jù)集市:數(shù)據(jù)集市(DataMart)簡稱DM,也叫數(shù)據(jù)市場。它是在企業(yè)中為了滿足特定的部門或者用戶的需求,按照多維的方式進(jìn)行存儲,包括定義維度、需要計算的指標(biāo)、維度的層次等,生成面向決策分析需求的數(shù)據(jù)立方體。2)元數(shù)據(jù):元數(shù)據(jù),又稱中介數(shù)據(jù)、中繼數(shù)據(jù),是描述數(shù)據(jù)的數(shù)據(jù),主要是描述數(shù)據(jù)屬性的信息。3)OLAP:OLAP又叫做聯(lián)機(jī)分析處理。OLAP是一種軟件技術(shù),它使分析人員能夠迅速、一致、交互地從各個方面觀察信息,以達(dá)到深入理解數(shù)據(jù)的目的。4)ODS:ODS也叫作操作性數(shù)據(jù),它是是數(shù)據(jù)倉庫體系結(jié)構(gòu)中的一個可選部分,是“面向主題的、集成的、當(dāng)前或接近當(dāng)前的、不斷變化的”數(shù)據(jù)。一般而言,ODS是作為數(shù)據(jù)庫到數(shù)據(jù)倉庫的一種過渡。數(shù)據(jù)集成

數(shù)據(jù)集成正是將把不同來源、格式、特點性質(zhì)的數(shù)據(jù)在邏輯上或物理上有機(jī)地集中,從而為企業(yè)提供全面的數(shù)據(jù)共享。數(shù)據(jù)變換

數(shù)據(jù)變換的目的是將數(shù)據(jù)變換或者統(tǒng)一為適合挖掘的形式,其主要內(nèi)容如下:

(1)光滑。去掉數(shù)據(jù)中的噪聲。

(2)聚集。對數(shù)據(jù)進(jìn)行匯總。

(3)數(shù)據(jù)泛化。一個從相對低層概念到更高層概念且對數(shù)據(jù)庫中與任務(wù)相關(guān)的大量數(shù)據(jù)進(jìn)行抽象概述的一個分析過程。

(4)標(biāo)準(zhǔn)化。通過一定的數(shù)學(xué)變換方式,將原始數(shù)據(jù)按照一定的比例進(jìn)行轉(zhuǎn)換,使之落入到一個小的特定區(qū)間內(nèi),例如0~1或-1~1的區(qū)間內(nèi)。數(shù)據(jù)倉庫的構(gòu)建工具

ETL,是英文Extract-Transform-Load的縮寫,用來描述將數(shù)據(jù)從來源端經(jīng)過抽取、轉(zhuǎn)換、加載至目的端的過程。ETL流程如下:數(shù)據(jù)抽取。把數(shù)據(jù)從數(shù)據(jù)源讀出來。數(shù)據(jù)轉(zhuǎn)換。把原始數(shù)據(jù)轉(zhuǎn)換成期望的格式和維度。如果用在數(shù)據(jù)倉庫的場景下,數(shù)據(jù)轉(zhuǎn)換也包含數(shù)據(jù)清洗。數(shù)據(jù)加載。把處理后的數(shù)據(jù)加載到目標(biāo)處,比如數(shù)據(jù)倉庫。

ETL常用工具(1)Talend(2)DataStage(3)Kettle(4)InformaticaPowerCenter數(shù)據(jù)清洗環(huán)境介紹目前的數(shù)據(jù)清洗主要是將數(shù)據(jù)劃分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),分別采用傳統(tǒng)的數(shù)據(jù)提取、轉(zhuǎn)換、加載(ETL)工具和分布式并行處理來實現(xiàn)。

具體來講,結(jié)構(gòu)化數(shù)據(jù)可以存儲在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫中。關(guān)系型數(shù)據(jù)庫在處理事務(wù)、及時響應(yīng)、保證數(shù)據(jù)的一致性方面有天然的優(yōu)勢。

非結(jié)構(gòu)化數(shù)據(jù)可以存儲在新型的分布式存儲中,比如Hadoop的HDFS。分布式存儲在系統(tǒng)的橫向擴(kuò)展性、降低存儲成本、提高文件讀取速度方面有著獨特的優(yōu)勢。例如要將傳統(tǒng)結(jié)構(gòu)化數(shù)據(jù),例如要將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到分布式存儲中,可以利用Sqoop等工具,先將關(guān)系型數(shù)據(jù)庫(MySql、PostgreSQL等)的表結(jié)構(gòu)導(dǎo)入分布式數(shù)據(jù)庫(Hive),然后再向分布式數(shù)據(jù)庫的表中導(dǎo)入結(jié)構(gòu)化數(shù)據(jù)。圖顯示了在MySql中的數(shù)據(jù)清洗圖顯示了在Hadoop環(huán)境中的數(shù)據(jù)清洗

Kettle概述

Kettle是純java開發(fā),開源的etl工具??梢栽贚inux、windows、unix中運行。有圖形界面,也有命令腳本還可以二次開發(fā)。(官方社區(qū):/)。要安裝Kettle必須首先從網(wǎng)上下載,此外,由于Kettle是基于java開發(fā)的,所以需要java環(huán)境。Kettle的使用主數(shù)據(jù)與元數(shù)據(jù)主數(shù)據(jù)是用來描述企業(yè)核心業(yè)務(wù)實體的數(shù)據(jù),比如客戶、合作伙伴、員工、產(chǎn)品、物料單、賬戶等;它是具有高業(yè)務(wù)價值的、可以在企業(yè)內(nèi)跨越各個業(yè)務(wù)部門被重復(fù)使用的數(shù)據(jù),并且存在于多個異構(gòu)的應(yīng)用系統(tǒng)中。

一般來講主數(shù)據(jù)可以包括很多方面,除了常見的客戶主數(shù)據(jù)之外,不同行業(yè)的客戶還可能擁有其他各種類型的主數(shù)據(jù),例如:對于電信行業(yè)客戶而言,電信運營商提供的各種服務(wù)可以形成其產(chǎn)品主數(shù)據(jù)元數(shù)據(jù)一般來講,元數(shù)據(jù)主要用來描述數(shù)據(jù)屬性的信息,例如記錄數(shù)據(jù)倉庫中模型的定義、各層級間的映射關(guān)系、監(jiān)控數(shù)據(jù)倉庫的數(shù)據(jù)狀態(tài)及ETL的任務(wù)運行狀態(tài)等。元數(shù)據(jù)是對數(shù)據(jù)本身進(jìn)行描述的數(shù)據(jù),或者說,它不是對象本身,它只描述對象的屬性,就是一個對數(shù)據(jù)自身進(jìn)行描繪的數(shù)據(jù)。例如,人們上網(wǎng)網(wǎng)購,想要買一件衣服,那么衣服就是數(shù)據(jù),而挑選的衣服的色彩、尺寸、做工、樣式等屬性就是它的元數(shù)據(jù)。(她)年紀(jì)已經(jīng)不輕,三十歲上下,個子高挑,身材勻稱,黑黑的眉毛,紅紅的臉蛋--一句話,不是姑娘,而是果凍,她那樣活躍,吵吵嚷嚷,不停地哼著小俄羅斯的抒情歌曲,高聲大笑,動不動就發(fā)出一連串響亮的笑聲:哈,哈,哈!這個例子中的"年齡"、"身高"、"相貌"、"性格",就是元數(shù)據(jù),因為它們是用來描述具體數(shù)據(jù)/信息的數(shù)據(jù)/信息。這幾個元數(shù)據(jù)用來刻畫個人狀況還不夠精確。我們每個人從小到大,都填過《個人情況登記表》之類的東西,其中包括姓名、性別、民族、政治面貌、一寸照片、學(xué)歷、職稱等等......這一套元數(shù)據(jù)才算比較完備。元數(shù)據(jù)是信息的描述和分類可以實現(xiàn)結(jié)構(gòu)畫,從而為機(jī)器處理創(chuàng)造了可能。在數(shù)據(jù)清洗中,第一步就是分析原始數(shù)據(jù)源,其主要工作是查看各種數(shù)據(jù)內(nèi)容。這個步驟包含兩個部分,第一就是看元數(shù)據(jù),包括字段解釋、數(shù)據(jù)來源、代碼表等等一切描述數(shù)據(jù)的信息;第二就是抽取一部分主數(shù)據(jù),使用人工查看方式,對數(shù)據(jù)本身有一個直觀的了解,并且初步發(fā)現(xiàn)一些問題,從而為后面的數(shù)據(jù)處理工作做準(zhǔn)備。元數(shù)據(jù)管理

HTML的head里有一個meta標(biāo)簽。那么它是什么呢?

根據(jù)上面的解釋,我們應(yīng)該知道它是“關(guān)于文檔的信息”了

meta的屬性有兩種,name和http-equiv.

name屬性用來描述網(wǎng)頁的內(nèi)容,以便搜索引擎查找。比如這個網(wǎng)頁的keywords呀。

http-equiv屬性指示服務(wù)器在發(fā)送實際的文檔之前先在要傳送給瀏覽器的MIME文檔頭部包含名稱/值對。

比如:

<metahttp-equiv="Content-Language"contect="zh-CN">用以說明主頁制作所使用的文字以及語言元數(shù)據(jù)可以幫助數(shù)據(jù)平臺解決“有哪些數(shù)據(jù)”、“數(shù)據(jù)存儲有多少”、“數(shù)據(jù)流中的血緣關(guān)系”、“如何找到我需要的數(shù)據(jù)”、“如何使用數(shù)據(jù)”和“數(shù)據(jù)的生產(chǎn)進(jìn)度”,并對上游線上業(yè)務(wù)庫的同步進(jìn)度和元信息變更進(jìn)行監(jiān)控,及時進(jìn)行影響分析及預(yù)警。本章小結(jié)1)數(shù)據(jù)是大數(shù)據(jù)應(yīng)用的基礎(chǔ),研究大數(shù)據(jù)、分析大數(shù)據(jù)的前提是擁有大數(shù)據(jù)。擁有數(shù)據(jù)的方式有很多種,既可以通過企業(yè)自身來采集數(shù)據(jù),也可以通過如爬蟲等其他方式獲取數(shù)據(jù)。2)目前常用的開源日志采集平臺包含有:ApacheFlume、Fluentd、Logstash、Chukwa、Scribe以及SplunkForwarder等。這些采集平臺大部分采用的是分布式架構(gòu),以滿足大規(guī)模日志采集的需要。3)網(wǎng)絡(luò)數(shù)據(jù)采集是指利用互聯(lián)網(wǎng)搜索引擎技術(shù)實現(xiàn)有針對性、行業(yè)性、精準(zhǔn)性的數(shù)據(jù)抓取,并按照一定規(guī)則和篩選標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)歸類,并形成數(shù)據(jù)庫文件的一個過程。(4)大數(shù)據(jù)的關(guān)鍵技術(shù)包含數(shù)據(jù)采集、大數(shù)據(jù)預(yù)處理、大數(shù)據(jù)存儲和大數(shù)據(jù)分析挖掘。

4)數(shù)據(jù)的不斷劇增是大數(shù)據(jù)時代的顯著特征,大數(shù)據(jù)必須經(jīng)過清洗、分析、建模、可視化才能體現(xiàn)其潛在的價值。5)數(shù)據(jù)倉庫是決策支持系統(tǒng)和聯(lián)機(jī)分析應(yīng)用數(shù)據(jù)源的結(jié)構(gòu)化數(shù)據(jù)環(huán)境,它研究和解決從數(shù)據(jù)庫中獲取信息的問題,并為企業(yè)所有級別的決策制定過程,提供所有類型數(shù)據(jù)支持的戰(zhàn)略集合。6)ETL是數(shù)據(jù)倉庫中的非常重要的一環(huán),是承前啟后的必要的一步。第4章大數(shù)據(jù)存儲大數(shù)據(jù)存儲概述

大數(shù)據(jù)存儲通常是指將那些數(shù)量巨大、難于收集、處理、分析的數(shù)據(jù)集持久化到計算機(jī)中。在進(jìn)行大數(shù)據(jù)分析之前,首先的步驟就是要將海量的數(shù)據(jù)存儲起來,以便今后的使用。

大數(shù)據(jù)的存儲數(shù)據(jù)通常是以GB甚至是TB乃至PB作為存儲的數(shù)據(jù)量級,因而與傳統(tǒng)的數(shù)據(jù)存儲方式差異較大。

傳統(tǒng)數(shù)據(jù)的獲取大多是人工的,或者是簡單的鍵盤輸入。如超市每天的營業(yè)額以及營業(yè)數(shù)據(jù)等,多數(shù)是以電子表格的方式錄入并存儲到計算機(jī)中,存儲容量較小。

在大數(shù)據(jù)時代,數(shù)據(jù)獲取的方式有這樣幾類:爬蟲抓取、用戶留存、用戶上傳、數(shù)據(jù)交易和數(shù)據(jù)共享。

傳統(tǒng)數(shù)據(jù)要么以線下傳統(tǒng)文件的方式,要么以郵件或是第三方軟件進(jìn)行傳輸,而隨著API接口的成熟和普及,API接口也隨著時代的發(fā)展逐漸標(biāo)準(zhǔn)化、統(tǒng)一化。

大數(shù)據(jù)存儲的數(shù)據(jù)類型與傳統(tǒng)存儲的數(shù)據(jù)類型差異較大。傳統(tǒng)數(shù)據(jù)更注重于對象的描述,而大數(shù)據(jù)更傾向與對數(shù)據(jù)過程的記錄。

大數(shù)據(jù)的存儲中不僅存儲數(shù)據(jù)的容量較大,更重要的是人們可以從存儲的數(shù)據(jù)間找到相互的關(guān)系,從而能夠?qū)?shù)據(jù)進(jìn)行比對和分析,最終產(chǎn)生商業(yè)價值。

大數(shù)據(jù)存儲的類型主要有以下三種:塊存儲、文件存儲和對象存儲。(1)塊存儲塊存儲就好比硬盤一樣,直接掛載到主機(jī),一般用于主機(jī)的直接存儲空間和數(shù)據(jù)庫應(yīng)用的存儲。DAS:是直接連接于主機(jī)服務(wù)器的一種儲存方式,也叫作直連式存儲。云存儲的塊存儲:具備SAN的優(yōu)勢,而且成本低,不用自己運維,且提供彈性擴(kuò)容,隨意搭配不同等級的存儲等功能,存儲介質(zhì)可選普通硬盤和SSD。SAN:是一種用高速(光纖)網(wǎng)絡(luò)聯(lián)接專業(yè)主機(jī)服務(wù)器的一種儲存方式,此系統(tǒng)會位于主機(jī)群的后端,它使用高速I/O聯(lián)結(jié)方式。(2)文件存儲文件存儲(NAS)相對塊存儲來說更能兼顧多個應(yīng)用和更多用戶訪問,同時提供方便的數(shù)據(jù)共享手段。阿里云文件存儲就是一種分布式的網(wǎng)絡(luò)文件存儲。(3)對象存儲對象存儲同時兼具SAN高級直接訪問磁盤特點及NAS的分布式共享特點。它的核心是將數(shù)據(jù)通路(數(shù)據(jù)讀或?qū)?和控制通路(元數(shù)據(jù))分離,并且基于對象存儲設(shè)備(OSD),構(gòu)建存儲系統(tǒng)。大數(shù)據(jù)存儲的方式

大數(shù)據(jù)的存儲方式主要有分布式存儲、NoSQL數(shù)據(jù)庫、NewSQL數(shù)據(jù)庫以及云數(shù)據(jù)庫四種。

分布式存儲分布式系統(tǒng)包含多個自主的處理單元,通過計算機(jī)網(wǎng)絡(luò)互連來協(xié)作完成分配的任務(wù),其分而治之的策略能夠更好的處理大規(guī)模數(shù)據(jù)分析問題。

(1)分布式文件系統(tǒng)分布式文件系統(tǒng)HDFS是一個高度容錯性系統(tǒng),被設(shè)計成適用于批量處理,能夠提供高吞吐量的的數(shù)據(jù)訪問。

(2)分布式鍵值系統(tǒng)分布式鍵值系統(tǒng)用于存儲關(guān)系簡單的半結(jié)構(gòu)化數(shù)據(jù)。典型的分布式鍵值系統(tǒng)有AmazonDynamo,以及獲得廣泛應(yīng)用和關(guān)注的對象存儲技術(shù)(ObjectStorage)也可以視為鍵值系統(tǒng),其存儲和管理的是對象而不是數(shù)據(jù)塊。淘寶也自主開發(fā)的一個分布式鍵值存儲引擎Tair。

NoSQL數(shù)據(jù)庫

NoSQL數(shù)據(jù)庫又叫作非關(guān)系數(shù)據(jù)庫,它是英文“NotOnlySQL”的簡寫,即“不僅僅是SQL”。NoSQL一詞最早出現(xiàn)于1998年,是CarloStrozzi開發(fā)的一個輕量、開源、不提供SQL功能的關(guān)系數(shù)據(jù)庫。

NoSQL數(shù)據(jù)庫又叫作非關(guān)系數(shù)據(jù)庫,它是英文“NotOnlySQL”的簡寫,即“不僅僅是SQL”。NoSQL一詞最早出現(xiàn)于1998年,是CarloStrozzi開發(fā)的一個輕量、開源、不提供SQL功能的關(guān)系數(shù)據(jù)庫。

NoSQL不使用SQL作為查詢語言,其存儲也可以不需要固定的表模式,用戶操作NoSQL時通常會避免使用RDBMS的JION操作。

目前NoSQL數(shù)據(jù)庫在以下的這幾種情況下比較適用:

(1)數(shù)據(jù)模型比較簡單;

(2)需要靈活性更強的IT系統(tǒng);

(3)對數(shù)據(jù)庫性能要求較高;

(4)不需要高度的數(shù)據(jù)一致性;

(5)對于給定Key,比較容易映射復(fù)雜值的環(huán)境。

NoSQL數(shù)據(jù)庫的理論基礎(chǔ)

NoSQL數(shù)據(jù)庫的三大理論基礎(chǔ)分別是:CAP原則、BASE和最終一致性。

CAP原則又稱CAP定理,指的是在一個分布式系統(tǒng)中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分區(qū)容錯性),三者不可得兼。

BASE是BasicallyAvailable(基本可用)、Softstate(軟狀態(tài))和Eventuallyconsistent(最終一致性)三個短語的簡寫。BASE是對CAP中一致性和可用性權(quán)衡的結(jié)果。

最終一致性:服務(wù)器一致性是指更新如何復(fù)制分布到整個系統(tǒng),以保證數(shù)據(jù)的最終一致。而客戶端一致性是指在高并發(fā)的數(shù)據(jù)訪問操作下,后續(xù)操作是否可以獲取最新的數(shù)據(jù)。

易于數(shù)據(jù)的分散提升性能和增大規(guī)模

NoSQL好處:

希望順暢地對數(shù)據(jù)進(jìn)行緩存(Cache)處理希望對數(shù)組類型的數(shù)據(jù)進(jìn)行高速處理希望進(jìn)行全部保存

NoSQL在處理大量數(shù)據(jù)方面很有優(yōu)勢。但實際上NoSQL數(shù)據(jù)庫還有各種各樣的特點,如果能夠恰當(dāng)?shù)乩眠@些特點,它就會非常有用。

NoSQL數(shù)據(jù)庫的分類(1)列式數(shù)據(jù)庫列式存儲是相對于傳統(tǒng)關(guān)系型數(shù)據(jù)庫的行式存儲來說的,簡單來說兩者的區(qū)別就是如何組織表。一般來講,將表放入存儲系統(tǒng)中有兩種方法:行存儲和列存儲。行存儲法是將各行放入連續(xù)的物理位置,這很像傳統(tǒng)的記錄和文件系統(tǒng)。列存儲法是將數(shù)據(jù)按照列存儲到數(shù)據(jù)庫中,與行存儲類似。在實際應(yīng)用中,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,如Oracle、DB2、MySQL、SQLSERVER等采用行式存儲法,而新興的Hbase、HPVertica、EMCGreenplum等分布式數(shù)據(jù)庫采用列式存儲。列式數(shù)據(jù)庫的優(yōu)點主要有:極高的裝載速度、適合大量的數(shù)據(jù)而不是小數(shù)據(jù)、高效的壓縮率以及適合做聚合操作等。

列式數(shù)據(jù)庫的缺點主要有:不適合掃描小量數(shù)據(jù)、不適合隨機(jī)的更新以及不適合做含有刪除和更新的實時操作等。列式數(shù)據(jù)庫由于其針對不同列的數(shù)據(jù)特征而發(fā)明的不同算法使其往往有比行式數(shù)據(jù)庫高的多的壓縮率,普通的行式數(shù)據(jù)庫一般壓縮率在3:1到5:1左右,而列式數(shù)據(jù)庫的壓縮率一般在8:1到30:1左右。NoSQL數(shù)據(jù)庫的分類(2)鍵值數(shù)據(jù)庫鍵值存儲即Key-Value存儲,簡稱KV存儲。它是NoSQL存儲的一種方式。它的數(shù)據(jù)按照鍵值對的形式進(jìn)行組織,索引和存儲。鍵值數(shù)據(jù)庫就像在傳統(tǒng)語言中使用的哈希表,可以通過key來添加、查詢或者刪除數(shù)據(jù),鑒于使用主鍵訪問,所以會獲得不錯的性能及擴(kuò)展性。在實際應(yīng)用中,鍵值數(shù)據(jù)庫適用于那些頻繁讀寫,擁有簡單數(shù)據(jù)模型的應(yīng)用。鍵值數(shù)據(jù)庫中存儲的值可以是簡單的標(biāo)量值,如整數(shù)或布爾值,也可以是結(jié)構(gòu)化數(shù)據(jù)類型,比如列表和JSON結(jié)構(gòu)。適用案例存放會話數(shù)據(jù)。用戶配置信息。購物車數(shù)據(jù)。不適用案例需要在不同數(shù)據(jù)集之間建立關(guān)系,或是將不同的關(guān)鍵字集合聯(lián)系起來。需要執(zhí)行含有多項操作的事務(wù),而又需要復(fù)原或回滾。需要根據(jù)鍵值對的某部分來查詢關(guān)鍵字。需要同時操作多個關(guān)鍵字。

Redis是用C語言開發(fā)的一個開源的高性能鍵值對數(shù)據(jù)庫。提供5種鍵值數(shù)據(jù)類型來應(yīng)對不通場景下的存儲需求。目前Redis的主要應(yīng)用場景有:①數(shù)據(jù)緩存②在線列表③任務(wù)隊列④訪問記錄⑤數(shù)據(jù)過期處理⑥session分離。

在Redis鍵值數(shù)據(jù)庫中,所存儲的聚合不一定非要是領(lǐng)域?qū)ο螅╠omainobject),任何數(shù)據(jù)結(jié)構(gòu)都可以。Redis能夠存儲list、set、hash等數(shù)據(jù)結(jié)構(gòu),而且支持“獲取某個范圍內(nèi)的數(shù)值(range)”、“求差集(diff)”、“求并集(union)”、“求交集(intersection)”等操作。NoSQL數(shù)據(jù)庫的分類(3)文檔型數(shù)據(jù)庫文檔型數(shù)據(jù)庫是鍵值數(shù)據(jù)庫的子類,它們的差別在于處理數(shù)據(jù)的方式:在鍵值數(shù)據(jù)庫中,數(shù)據(jù)是對數(shù)據(jù)庫不透明的;而面向文檔的數(shù)據(jù)庫系統(tǒng)依賴于文件的內(nèi)部結(jié)構(gòu),它獲取元數(shù)據(jù)以用于數(shù)據(jù)庫引擎進(jìn)行更深層次的優(yōu)化。與鍵值存儲不同的是,文檔存儲關(guān)心文檔的內(nèi)部結(jié)構(gòu)。這使得存儲引擎可以直接支持二級索引,從而允許對任意字段進(jìn)行高效查詢。MongoDB是一個跨平臺的,面向文檔的數(shù)據(jù)庫,是當(dāng)前NoSQL數(shù)據(jù)庫產(chǎn)品中最熱門的一種。它介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)

系數(shù)據(jù)庫的產(chǎn)品。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類JSON的BSON格式,因此可以存比較復(fù)雜的數(shù)據(jù)類型。

MongoDB

的官方網(wǎng)站地址是:NoSQL數(shù)據(jù)庫的分類(4)圖形數(shù)據(jù)庫圖形數(shù)據(jù)庫是一種非關(guān)系型數(shù)據(jù)庫,它應(yīng)用圖形理論存儲實體之間的關(guān)系信息。不過值得注意的是:圖形數(shù)據(jù)庫的基本含義是以“圖”這種數(shù)據(jù)結(jié)構(gòu)存儲和查詢數(shù)據(jù),而不是存儲圖片的數(shù)據(jù)庫。世界上很多著名的公司都在使用圖數(shù)據(jù)庫。比如:社交領(lǐng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論