




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第十章
大數(shù)據(jù)存儲(chǔ)與訪問(wèn)技術(shù)《數(shù)據(jù)采集與處理:基于Python》2024/5/1112024/5/112教學(xué)目標(biāo)本章學(xué)習(xí)目標(biāo)1.了解大數(shù)據(jù)的相關(guān)概念、關(guān)鍵技術(shù)、計(jì)算模式和NoSQL數(shù)據(jù)庫(kù)分類,理解非關(guān)系型數(shù)據(jù)庫(kù)(NoSQL)的CAP定理和BASE原則;2.了解NoSQL數(shù)據(jù)庫(kù)MongoDB的特點(diǎn)和存儲(chǔ)模式,掌握基于Python的MongoDB的操作步驟及相關(guān)模塊和方法。本章提綱1.大數(shù)據(jù)技術(shù)2.非關(guān)系型數(shù)據(jù)庫(kù)簡(jiǎn)介3.MongoDB數(shù)據(jù)庫(kù)連接與訪問(wèn)2015年國(guó)務(wù)院正式印發(fā)《促進(jìn)大數(shù)據(jù)發(fā)展行動(dòng)綱要》,《綱要》明確指出要不斷的推動(dòng)大數(shù)據(jù)發(fā)展和應(yīng)用,在未來(lái)打造精準(zhǔn)治理、多方協(xié)作的社會(huì)治理新模式,建立運(yùn)行平穩(wěn)、安全高效的經(jīng)濟(jì)運(yùn)行新機(jī)制,構(gòu)建以人為本、惠及全民的民生服務(wù)新體系,開啟大眾創(chuàng)業(yè)、萬(wàn)眾創(chuàng)新的創(chuàng)新驅(qū)動(dòng)新格局,培育高端智能、新興繁榮的產(chǎn)業(yè)發(fā)展新生態(tài)。2015年,大數(shù)據(jù)“十三五”規(guī)劃出臺(tái),《規(guī)劃》通過(guò)定量和定性相結(jié)合的方式提出了2020年大數(shù)據(jù)產(chǎn)業(yè)發(fā)展目標(biāo)。在總體目標(biāo)方面,提出到2020年,技術(shù)先進(jìn)、應(yīng)用繁榮、保障有力的大數(shù)據(jù)產(chǎn)業(yè)體系基本形成,大數(shù)據(jù)相關(guān)產(chǎn)品和服務(wù)業(yè)務(wù)收入突破1萬(wàn)億元,年均復(fù)合增長(zhǎng)率保持30%左右。大數(shù)據(jù)技術(shù)1.1大數(shù)據(jù)概述
大數(shù)據(jù)(bigdata),指無(wú)法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長(zhǎng)率和多樣化的信息資產(chǎn)。大數(shù)據(jù)時(shí)代的概念最早是全球知名咨詢公司麥肯錫提出的,2006年麥肯錫提出了大數(shù)據(jù)概念。大數(shù)據(jù)發(fā)展歷史大數(shù)據(jù)的發(fā)展主要?dú)v經(jīng)了三個(gè)階段,出現(xiàn)階段、熱門階段和應(yīng)用階段。1)出現(xiàn)階段(1980-2008)2)熱門階段(2009-2012)3)應(yīng)用階段(2013-至今)從技術(shù)手段視角,大數(shù)據(jù)發(fā)展的三個(gè)階段:1)分布式存儲(chǔ)和處理技術(shù)。Hadoop是其中最著名的開源分布式存儲(chǔ)和處理框架,使用Hadoop分布式文件系統(tǒng)(HDFS)存儲(chǔ)海量數(shù)據(jù),并使用MapReduce處理數(shù)據(jù)。2)更多的開源分布式存儲(chǔ)和處理框架。例如Spark和Storm。Spark是一種內(nèi)存計(jì)算框架,它使用RDD(ResilientDistributedDatasets)作為基本數(shù)據(jù)結(jié)構(gòu),具有快速的計(jì)算速度和高效的內(nèi)存管理能力。Storm是一個(gè)實(shí)時(shí)數(shù)據(jù)處理框架,可以實(shí)時(shí)處理流式數(shù)據(jù)。3)融合機(jī)器學(xué)習(xí)和人工智能。主要技術(shù)手段包括深度學(xué)習(xí)、自然語(yǔ)言處理、圖像處理等等,讓大數(shù)據(jù)處理更加智能化和自動(dòng)化。大數(shù)據(jù)的影響大數(shù)據(jù)的影響主要有以下四點(diǎn)。1)大數(shù)據(jù)對(duì)科學(xué)活動(dòng)的影響2)大數(shù)據(jù)對(duì)思維方式的影響3)大數(shù)據(jù)對(duì)社會(huì)發(fā)展的影響4)大數(shù)據(jù)對(duì)就業(yè)市場(chǎng)的影響大數(shù)據(jù)的特征隨著對(duì)大數(shù)據(jù)認(rèn)識(shí)的不斷加深,人們認(rèn)為大數(shù)據(jù)一般具有4V+1O特征:數(shù)據(jù)量大、數(shù)據(jù)類型繁多、數(shù)據(jù)產(chǎn)生速度快以及數(shù)據(jù)價(jià)值密度低;及基本都是在線數(shù)據(jù)。1).數(shù)據(jù)量大Volume大數(shù)據(jù)中的數(shù)據(jù)量大,就是指的海量數(shù)據(jù)。大數(shù)據(jù)之“大”還表現(xiàn)在其采集范圍和內(nèi)容的豐富多變,能存入數(shù)據(jù)庫(kù)的不僅包含各種具有規(guī)律性的數(shù)據(jù)符號(hào),還囊括了各種如圖片、視頻、聲音等非規(guī)則的數(shù)據(jù)。2).數(shù)據(jù)類型繁多Variety大數(shù)據(jù)包括結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。3).數(shù)據(jù)產(chǎn)生速度快Velocity(1)數(shù)據(jù)產(chǎn)生得快。(2)數(shù)據(jù)處理得快。4).數(shù)據(jù)價(jià)值密度低Value5).數(shù)據(jù)永遠(yuǎn)在線Online大數(shù)據(jù)應(yīng)用社會(huì)網(wǎng)絡(luò)思想應(yīng)用:六度分離和三度影響理論1.2大數(shù)據(jù)關(guān)鍵技術(shù)1)大數(shù)據(jù)采集2)大數(shù)據(jù)預(yù)處理3)大數(shù)據(jù)存儲(chǔ)4)大數(shù)據(jù)分析挖掘大數(shù)據(jù)計(jì)算模式大數(shù)據(jù)計(jì)算模式對(duì)應(yīng)的系統(tǒng)如下所示:大數(shù)據(jù)查詢與分析計(jì)算:HBase、Hive、Cassandra、Premel、Impala、Shark、Hana、Redis。批處理計(jì)算:
MapReduce、Spark。流式計(jì)算:Scribe、Flume、Storm、S4、SparkStreaming。迭代計(jì)算:HaLoop、iMapReduce、Twister、Spark。圖計(jì)算:Pregel、PowerGrapg、GraphX。內(nèi)存計(jì)算:Dremel、Hana、Redis。谷歌大數(shù)據(jù)計(jì)算模式大數(shù)據(jù)框架1)批處理系統(tǒng)2)流處理系統(tǒng)3)混合處理系統(tǒng)大數(shù)據(jù)與云計(jì)算大數(shù)據(jù)與人工智能大數(shù)據(jù)的意義
大數(shù)據(jù)的國(guó)家戰(zhàn)略意義大數(shù)據(jù)是一個(gè)事關(guān)我國(guó)經(jīng)濟(jì)社會(huì)發(fā)展全局的戰(zhàn)略性產(chǎn)業(yè),大數(shù)據(jù)技術(shù)為社會(huì)經(jīng)濟(jì)活動(dòng)提供決策依據(jù),提高各個(gè)領(lǐng)域的運(yùn)行效率,提升整個(gè)社會(huì)經(jīng)濟(jì)的集約化程度,對(duì)于我國(guó)經(jīng)濟(jì)發(fā)展轉(zhuǎn)型具有重要的推動(dòng)作用。大數(shù)據(jù)的企業(yè)意義如何應(yīng)對(duì)大數(shù)據(jù)時(shí)代的到來(lái)已經(jīng)成為了每一個(gè)企業(yè)需要面對(duì)的問(wèn)題。我國(guó)大數(shù)據(jù)市場(chǎng)的預(yù)測(cè)2022-2027年中國(guó)大數(shù)據(jù)市場(chǎng)規(guī)模及預(yù)測(cè)(單位:億元)預(yù)計(jì)2027年我國(guó)大數(shù)據(jù)市場(chǎng)規(guī)模將達(dá)到2930.9億元,未來(lái)六年復(fù)合年增長(zhǎng)率為22.6%。(資料來(lái)源:CCID前瞻產(chǎn)業(yè)研究院)大數(shù)據(jù)的產(chǎn)業(yè)鏈分析
運(yùn)營(yíng)分析非關(guān)系型數(shù)據(jù)庫(kù)簡(jiǎn)介NoSQL數(shù)據(jù)庫(kù)簡(jiǎn)介
NoSQL(NoSQL=NotOnlySQL),意即“不僅僅是SQL”。NoSQL是一項(xiàng)全新的數(shù)據(jù)庫(kù)革命性運(yùn)動(dòng),早期就有人提出,發(fā)展至2009年趨勢(shì)越發(fā)高漲。NoSQL的擁護(hù)者們提倡運(yùn)用非關(guān)系型的數(shù)據(jù)存儲(chǔ),相對(duì)于鋪天蓋地的關(guān)系型數(shù)據(jù)庫(kù)運(yùn)用,它無(wú)疑是一種全新思維的注入。RDBMS與NoSQL比較RDBMS是:高度組織化結(jié)構(gòu)化數(shù)據(jù),結(jié)構(gòu)化查詢語(yǔ)言(SQL,包括數(shù)據(jù)操縱和數(shù)據(jù)定義),數(shù)據(jù)和關(guān)系都存儲(chǔ)在單獨(dú)的表中,嚴(yán)格的一致性,基礎(chǔ)事務(wù)NoSQL:代表著不僅僅是SQL;沒(méi)有聲明性查詢語(yǔ)言;沒(méi)有預(yù)定義的模式;存儲(chǔ)模式多樣(鍵-值對(duì)存儲(chǔ),列存儲(chǔ),文檔存儲(chǔ),圖形數(shù)據(jù)庫(kù));最終一致性,而非ACID屬性;非結(jié)構(gòu)化和不可預(yù)知的數(shù)據(jù);CAP定理;高性能,高可用性和可伸縮性CAP定理
1)什么是CAP定理RDBMS與NoSQL比較CAP定理(CAPtheorem),又被稱作布魯爾定理(Brewer'stheorem),它指出對(duì)于一個(gè)分布式計(jì)算系統(tǒng)來(lái)說(shuō),不可能同時(shí)滿足以下三點(diǎn):一致性(Consistency):所有節(jié)點(diǎn)在同一時(shí)間具有相同的數(shù)據(jù)可用性(Availability):保證每個(gè)請(qǐng)求不管成功或者失敗都有響應(yīng)分隔容忍(Partitiontolerance):系統(tǒng)中任意信息的丟失或失敗不會(huì)影響系統(tǒng)的繼續(xù)運(yùn)作CAP理論的核心是:一個(gè)分布式系統(tǒng)不可能同時(shí)很好的滿足一致性、可用性和分區(qū)容錯(cuò)性這三個(gè)需求,最多只能同時(shí)較好的滿足兩個(gè)。根據(jù)CAP原理將NoSQL數(shù)據(jù)庫(kù)分成了滿足CA原則、滿足CP原則和滿足AP原則三大類:CA-單點(diǎn)集群,滿足一致性,可用性的系統(tǒng),通常在可擴(kuò)展性上不太強(qiáng)大。
CP-滿足一致性,分區(qū)容忍性的系統(tǒng),通常性能不是特別高。AP-滿足可用性,分區(qū)容忍性的系統(tǒng),通常可能對(duì)一致性要求低一些。CAP定理
1)什么是BASEBASE:BasicallyAvailable,Soft-state,EventuallyConsistent。由EricBrewer定義。CAP理論的核心是:一個(gè)分布式系統(tǒng)不可能同時(shí)很好的滿足一致性、可用性和分區(qū)容錯(cuò)性這三個(gè)需求,最多只能同時(shí)較好的滿足兩個(gè)。BASE是NoSQL數(shù)據(jù)庫(kù)通常對(duì)可用性及一致性的弱要求原則:BasicallyAvailble--基本可用Soft-state--軟狀態(tài)/柔性事務(wù)。"Softstate"可以理解為"無(wú)連接"的,而"Hardstate"是"面向連接"的EventualConsistency--最終一致性,也是ACID的最終目的。NoSQL數(shù)據(jù)庫(kù)分類
1)列存儲(chǔ),如Hbase、Cassandra、Hypertable等,顧名思義,是按列存儲(chǔ)數(shù)據(jù)的。最大的特點(diǎn)是方便存儲(chǔ)結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),方便做數(shù)據(jù)壓縮,針對(duì)某一列或者某幾列的查詢有非常大的IO優(yōu)勢(shì)。2)文檔存儲(chǔ),如MongoDB、CouchDB,文檔存儲(chǔ)一般用類似json的格式存儲(chǔ),存儲(chǔ)的內(nèi)容是文檔型的。這樣也就有機(jī)會(huì)對(duì)某些字段建立索引,實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)的某些功能。3)key-value存儲(chǔ),如TokyoCabinet/Tyrant、BerkeleyDB、MemcacheDB、Redis等,可以通過(guò)key快速查詢到其value。一般來(lái)說(shuō),存儲(chǔ)不管value的格式,照單全收。(Redis包含了其他功能)4)圖存儲(chǔ),如Neo4J、FlockDB等,圖形關(guān)系的最佳存儲(chǔ)。使用傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)來(lái)解決的話性能低下,而且設(shè)計(jì)使用不方便。5)對(duì)象存儲(chǔ),如db4o、Versant等,通過(guò)類似面向?qū)ο笳Z(yǔ)言的語(yǔ)法操作數(shù)據(jù)庫(kù),通過(guò)對(duì)象的方式存取數(shù)據(jù)。6)XML數(shù)據(jù)庫(kù),如BerkeleyDBXML、BaseX等,高效的存儲(chǔ)XML數(shù)據(jù),并支持XML的內(nèi)部查詢語(yǔ)法,比如XQuery,Xpath。MongoDB數(shù)據(jù)庫(kù)連接與訪問(wèn)3.1MongoDB數(shù)據(jù)庫(kù)簡(jiǎn)介
1)什么是MongoDBMongoDB是由C++語(yǔ)言編寫的,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫(kù)系統(tǒng)。在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。MongoDB旨在為Web應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對(duì)組成。MongoDB文檔類似于JSON對(duì)象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。3.1MongoDB數(shù)據(jù)庫(kù)簡(jiǎn)介
2)MongoDB主要特點(diǎn)面向文檔存儲(chǔ)的數(shù)據(jù)庫(kù),安裝、操作比較簡(jiǎn)單和容易??梢栽贛ongoDB記錄中設(shè)置任何屬性的索引(如:FirstName="Sameer",Address="8GandhiRoad")來(lái)實(shí)現(xiàn)更快的排序。擴(kuò)展性強(qiáng)??梢酝ㄟ^(guò)本地或者網(wǎng)絡(luò)創(chuàng)建數(shù)據(jù)鏡像,負(fù)載可以分布到計(jì)算機(jī)網(wǎng)絡(luò)中其他節(jié)點(diǎn)。支持豐富的查詢表達(dá)式。查詢指令使用JSON形式的標(biāo)記,可輕易查詢文檔中內(nèi)嵌的對(duì)象及數(shù)組。支持豐富的查詢表達(dá)式,并使用Map/reduce函數(shù)對(duì)數(shù)據(jù)進(jìn)行批量處理和聚合操作,使用update()命令可以實(shí)現(xiàn)替換完成的文檔(數(shù)據(jù))或者一些指定的數(shù)據(jù)字段。查詢指令使用JSON形式的標(biāo)記,可輕易查詢文檔中內(nèi)嵌的對(duì)象及數(shù)組。GridFS是MongoDB中的一個(gè)內(nèi)置功能,可以用于存放大量小文件。允許在服務(wù)端執(zhí)行腳本,可以用Javascript編寫某個(gè)函數(shù),直接在服務(wù)端執(zhí)行,也可以把函數(shù)的定義存儲(chǔ)在服務(wù)端,下次直接調(diào)用即可。支持各種編程語(yǔ)言:RUBY,PYTHON,JAVA,C++,PHP,C#等多種語(yǔ)言。3.2.Python訪問(wèn)MongoDB操作
1)準(zhǔn)備工作:確保已經(jīng)安裝好MongoDB并啟動(dòng)其服務(wù),并且安裝好了Python的PyMongo庫(kù)。2)連接MongoDB連接MongoDB時(shí),需要使用PyMongo庫(kù)里面的MongoClient。一般來(lái)說(shuō),傳入MongoDB的IP及端口即可,其中第一個(gè)參數(shù)為地址host,第二個(gè)參數(shù)為端口port(默認(rèn)是27017):importpymongo;client=pymongo.MongoClient(host=‘localhost’,port=27017)。另外,MongoClient的第一個(gè)參數(shù)host還可以直接傳入MongoDB的連接字符串,它以mongodb開頭,例如:client=MongoClient('mongodb://localhost:27017/')。3)指定數(shù)據(jù)庫(kù)MongoDB中可以建立多個(gè)數(shù)據(jù)庫(kù),接下來(lái)需要指定操作哪個(gè)數(shù)據(jù)庫(kù)。這里以test數(shù)據(jù)庫(kù)為例來(lái)說(shuō)明,下一步需要在程序中指定要使用的數(shù)據(jù)庫(kù):db=client.test這里調(diào)用client的test屬性即可返回test數(shù)據(jù)庫(kù)。也可以這樣指定:db=client['test']4)指定集合MongoDB的每個(gè)數(shù)據(jù)庫(kù)又包含許多集合(collection),它們類似于關(guān)系型數(shù)據(jù)庫(kù)中的表。下一步需要指定要操作的集合,這里指定一個(gè)集合名稱為students。與指定數(shù)據(jù)庫(kù)類似,指定集合也有兩種方式:collection=db.students;或者collection=db['students']3.2.Python訪問(wèn)MongoDB操作
示例代碼#1.導(dǎo)入模塊importpymongo#2.連接數(shù)據(jù)庫(kù)client=pymongo.MongoClient(host='localhost',port=27017)#MongoClient的第一個(gè)參數(shù)host還可以直接傳入MongoDB的連接字符串,它以mongodb開頭#client=MongoClient('mongodb://localhost:27017/')#3.指定數(shù)據(jù)庫(kù)db=client['test-database']#4.指定集合:MongoDB的每個(gè)數(shù)據(jù)庫(kù)又包含許多集合(collection),它們類似于關(guān)系型數(shù)據(jù)庫(kù)中的表collection=db.posts#或者db['posts']#5.插入數(shù)據(jù)post_record={'author':"Dongpu",'text':"MyfirstblogpostforCUEB!",'tags':"Python"}result=collection.insert(post_record)#也可以同時(shí)插入多條數(shù)據(jù),只需要以列表形式傳遞即可#在MongoDB中,每條數(shù)據(jù)其實(shí)都有一個(gè)_id屬性來(lái)唯一標(biāo)識(shí)。#如果沒(méi)有顯式指明該屬性,MongoDB會(huì)自動(dòng)產(chǎn)生一個(gè)ObjectId類型的_id屬性。insert()方法會(huì)在執(zhí)行后返回_id
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人力資源管理師備考手冊(cè)試題及答案
- 2024年陪診師考試醫(yī)學(xué)心理試題及答案
- 2024年國(guó)土資源管理知識(shí)試題及答案
- 2025年一月份超臨界二氧化碳EPC總承包合同密封技術(shù)條款
- 全面?zhèn)淇既肆Y源管理師試題及答案
- 投資咨詢經(jīng)濟(jì)環(huán)境試題及答案
- 注冊(cè)會(huì)計(jì)師試題能力提升訓(xùn)練試題及答案
- 全媒體運(yùn)營(yíng)師傳播鏈條管理的試題及答案
- 2024年高中地理地貌特征試題及答案
- 2024年ESG商業(yè)分析師考情預(yù)測(cè)試題及答案
- 職工訴求記錄表
- DBJ04∕T 289-2020 建筑工程施工安全資料管理標(biāo)準(zhǔn)
- 幼兒園大班社會(huì)《認(rèn)識(shí)交通工具》課件
- 初三年級(jí)組長(zhǎng)“走進(jìn)初三誓師大會(huì)”發(fā)言稿
- 無(wú)人機(jī)應(yīng)用技術(shù)概論-第-1-章-緒論
- 《電工電子技術(shù)基礎(chǔ)》高職全套教學(xué)課件
- 2024北京電子科技職業(yè)學(xué)院招聘筆試備考題庫(kù)及答案解析
- 第十五課 中望3D-工程圖系列2講解
- 2024-2029年中國(guó)3D裸眼技術(shù)行業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- DZ∕T 0220-2006 泥石流災(zāi)害防治工程勘查規(guī)范(正式版)
- 干部人事檔案轉(zhuǎn)遞單(帶存根回執(zhí))
評(píng)論
0/150
提交評(píng)論