大數(shù)據(jù)技術(shù)與應(yīng)用 第2版 課件 第3章 數(shù)據(jù)采集與清洗;第4章 大數(shù)據(jù)存儲(chǔ)_第1頁(yè)
大數(shù)據(jù)技術(shù)與應(yīng)用 第2版 課件 第3章 數(shù)據(jù)采集與清洗;第4章 大數(shù)據(jù)存儲(chǔ)_第2頁(yè)
大數(shù)據(jù)技術(shù)與應(yīng)用 第2版 課件 第3章 數(shù)據(jù)采集與清洗;第4章 大數(shù)據(jù)存儲(chǔ)_第3頁(yè)
大數(shù)據(jù)技術(shù)與應(yīng)用 第2版 課件 第3章 數(shù)據(jù)采集與清洗;第4章 大數(shù)據(jù)存儲(chǔ)_第4頁(yè)
大數(shù)據(jù)技術(shù)與應(yīng)用 第2版 課件 第3章 數(shù)據(jù)采集與清洗;第4章 大數(shù)據(jù)存儲(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩214頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

Fluentd

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

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

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

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

Kafka

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

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

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

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

Scrapy爬蟲(chóng)框架

Scrapy是一個(gè)使用Python語(yǔ)言編寫(xiě)的開(kāi)源網(wǎng)絡(luò)爬蟲(chóng)框架,是一個(gè)高級(jí)的Python爬蟲(chóng)框架。Scrapy可用于各種有用的應(yīng)用程序,如數(shù)據(jù)挖掘,信息處理以及歷史歸檔等,目前主要用于抓取web站點(diǎn)并從頁(yè)面中提取結(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ù)一致性,處理無(wú)效值和缺失值等,從而提高數(shù)據(jù)質(zhì)量。

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

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

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

由于調(diào)查、編碼和錄入誤差,數(shù)據(jù)中可能存在一些無(wú)效值和缺失值,需要給予適當(dāng)?shù)奶幚?。常用的處理方法有:估算,整例刪除,變量刪除和成對(duì)刪除。數(shù)據(jù)清洗流程數(shù)據(jù)清洗-預(yù)處理1)選擇數(shù)據(jù)處理工具:一般使用關(guān)系型數(shù)據(jù)庫(kù),單機(jī)可使用MySQL。如果數(shù)據(jù)量大(千萬(wàn)級(jí)以上),可以使用文本文件存儲(chǔ)+Python操作的方式。2)查看數(shù)據(jù)的元數(shù)據(jù)以及數(shù)據(jù)特征:一是看元數(shù)據(jù),包括字段解釋、數(shù)據(jù)來(lái)源、代碼表等等一切描述數(shù)據(jù)的信息;二是抽取一部分?jǐn)?shù)據(jù),使用人工查看方式,對(duì)數(shù)據(jù)本身有一個(gè)直觀(guān)的了解,并且初步發(fā)現(xiàn)一些問(wèn)題,為之后的處理做準(zhǔn)備。在數(shù)據(jù)清洗中,原始數(shù)據(jù)源是數(shù)據(jù)清洗的基礎(chǔ),數(shù)據(jù)分析是數(shù)據(jù)清洗的前提,而定義數(shù)據(jù)清洗轉(zhuǎn)換規(guī)則是關(guān)鍵。在大數(shù)據(jù)清洗中常見(jiàn)的數(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í)間、日期、數(shù)值、全半角等顯示格式不一致2)內(nèi)容中有不該存在的字符3)內(nèi)容與該字段應(yīng)有內(nèi)容不符(4)數(shù)據(jù)清洗-邏輯錯(cuò)誤清洗

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

分箱法是通過(guò)考察某一數(shù)據(jù)周?chē)鷶?shù)據(jù)的值,即“近鄰”來(lái)光滑有序數(shù)據(jù)的值。(2)平滑處理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)工具和分布式并行處理來(lái)實(shí)現(xiàn)。

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

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

Kettle概述

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

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

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

根據(jù)上面的解釋?zhuān)覀儜?yīng)該知道它是“關(guān)于文檔的信息”了

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

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

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

比如:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

NoSQL不使用SQL作為查詢(xún)語(yǔ)言,其存儲(chǔ)也可以不需要固定的表模式,用戶(hù)操作NoSQL時(shí)通常會(huì)避免使用RDBMS的JION操作。

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

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

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

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

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

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

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

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

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

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

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

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

NoSQL好處:

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

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

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

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

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

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

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

MongoDB

的官方網(wǎng)站地址是:NoSQL數(shù)據(jù)庫(kù)的分類(lèi)(4)圖形數(shù)據(jù)庫(kù)圖形數(shù)據(jù)庫(kù)是一種非關(guān)系型數(shù)據(jù)庫(kù),它應(yīng)用圖形理論存儲(chǔ)實(shí)體之間的關(guān)系信息。不過(guò)值得注意的是:圖形數(shù)據(jù)庫(kù)的基本含義是以“圖”這種數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)和查詢(xún)數(shù)據(jù),而不是存儲(chǔ)圖片的數(shù)據(jù)庫(kù)。世界上很多著名的公司都在使用圖數(shù)據(jù)庫(kù)。比如:社交領(lǐng)域:Facebook,Twitter,Linkedin用它來(lái)管理社交關(guān)系,實(shí)現(xiàn)好友推薦零售領(lǐng)域:eBay,沃爾瑪使用它實(shí)現(xiàn)商品實(shí)時(shí)推薦,給買(mǎi)家更好的購(gòu)物體驗(yàn)金融領(lǐng)域:摩根大通,花旗和瑞銀等銀行在用圖數(shù)據(jù)庫(kù)做風(fēng)控處理汽車(chē)制造領(lǐng)域:沃爾沃,戴姆勒和豐田等頂級(jí)汽車(chē)制造商依靠圖數(shù)據(jù)庫(kù)推動(dòng)創(chuàng)新制造解決方案電信領(lǐng)域:Verizon,Orange和AT&T等電信公司依靠圖數(shù)據(jù)庫(kù)來(lái)管理網(wǎng)絡(luò),控制訪(fǎng)問(wèn)并支持客戶(hù)360酒店領(lǐng)域:萬(wàn)豪和雅高酒店等頂級(jí)酒店公司依使用圖數(shù)據(jù)庫(kù)來(lái)管理復(fù)雜且快速變化的庫(kù)存圖形數(shù)據(jù)庫(kù)中還存在著節(jié)點(diǎn)集的概念,所謂節(jié)點(diǎn)集就是圖中一系列節(jié)點(diǎn)的集合,比較接近于關(guān)系數(shù)據(jù)庫(kù)中所最常使用的表。相對(duì)于關(guān)系數(shù)據(jù)庫(kù)中的各種關(guān)聯(lián)表,圖形數(shù)據(jù)庫(kù)中的關(guān)系可以通過(guò)關(guān)系能夠包含屬性這一功能來(lái)提供更為豐富的關(guān)系展現(xiàn)方式。因此相較于關(guān)系型數(shù)據(jù)庫(kù),圖形數(shù)據(jù)庫(kù)的用戶(hù)在對(duì)事物進(jìn)行抽象時(shí)將擁有一個(gè)額外的武器,那就是豐富的關(guān)系。圖形數(shù)據(jù)庫(kù)可用于對(duì)事物建模,如社交圖譜,使用圖形數(shù)據(jù)庫(kù)可以顯示出某個(gè)人在他/她的朋友圈中是否有影響力,以及這群朋友是否有著共同的興趣愛(ài)好等。Neo4J是由Java實(shí)現(xiàn)的開(kāi)源圖數(shù)據(jù)庫(kù)。自2003年開(kāi)始開(kāi)發(fā),直到2007年正式發(fā)布第一版,并托管于GitHub上。Neo4J支持ACID,集群、備份和故障轉(zhuǎn)移。目前Neo4J最新版本為3.5,分為社區(qū)版和企業(yè)版,社區(qū)版只支持單機(jī)部署,功能受限。企業(yè)版支持主從復(fù)制和讀寫(xiě)分離,包含可視化管理工具。NewSQL數(shù)據(jù)庫(kù)NewSQL數(shù)據(jù)庫(kù)是對(duì)各種新的可擴(kuò)展/高性能數(shù)據(jù)庫(kù)的簡(jiǎn)稱(chēng),它是一種相對(duì)較新的形式,旨在使用現(xiàn)有的編程語(yǔ)言和以前不可用的技術(shù)來(lái)結(jié)合SQL和NoSQL中最好的部分。目前常見(jiàn)的NewSQL主要包括兩類(lèi)系統(tǒng):擁有關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品和服務(wù),并將關(guān)系模型的好處帶到分布式架構(gòu)上。提高關(guān)系數(shù)據(jù)庫(kù)的性能,使之達(dá)到不用考慮水平擴(kuò)展問(wèn)題的程度。

在技術(shù)上,相較于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù),NewSQL更強(qiáng)調(diào)數(shù)據(jù)一致性,以更好的適應(yīng)分布式數(shù)據(jù)庫(kù)的應(yīng)用。

值得注意的是:NewSQL中并沒(méi)有開(kāi)拓性的理論技術(shù)的創(chuàng)新,更多的是架構(gòu)的創(chuàng)新,以及把現(xiàn)有的技術(shù)如何更好地適用于當(dāng)今的服務(wù)器,適用于當(dāng)前的分布式架構(gòu)。現(xiàn)有的NewSQL數(shù)據(jù)庫(kù)廠(chǎng)商主要有亞馬遜關(guān)系數(shù)據(jù)庫(kù)服務(wù),微軟SQLAzure,Xeround和FathomDB等。云數(shù)據(jù)庫(kù)云數(shù)據(jù)庫(kù)是指被優(yōu)化或部署到一個(gè)虛擬計(jì)算環(huán)境中的數(shù)據(jù)庫(kù),是在云計(jì)算的大背景下發(fā)展起來(lái)的一種新興的共享基礎(chǔ)架構(gòu)的方法。

云數(shù)據(jù)庫(kù)并非一種全新的數(shù)據(jù)庫(kù)技術(shù),如云數(shù)據(jù)庫(kù)并沒(méi)有專(zhuān)屬于自己的數(shù)據(jù)模型,它所采

溫馨提示

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

評(píng)論

0/150

提交評(píng)論