【大数据采集技术与应用】【第一章】【大数据采集技术与应用概述】
文章目錄
- 1.1 大數據概述
- 1.1.1 大數據時代
- 1.1.2 大數據的概念
- 1.1.3 大數據的特征
- 1.1.4 大數據的應用
- 1.1.5 大數據關鍵技術
- 1.1.6 大數據處理流程
- 1.2 大數據采集技術概述
- 1.2.1 數據采集與大數據采集
- 1.2.2 大數據采集流程
- 1.3大數據采集技術應用
- 1.3.1 大數據處理平臺介紹
- 1.數據集成服務
- 2.數據庫服務
- 3.存儲服務
- 4.大數據處理服務
- 課后作業
- 一、名詞解釋
- 二、簡答題
- 常用工具
1.1 大數據概述
1.1.1 大數據時代
- 1.第三次信息化浪潮
IBM前首席執行官郭士納的觀點,IT領域每隔15年就會迎來一次重大變革。
| 第一次浪潮 | 1980年前后 | 個人計算機 | 信息處理 | Intel、AMD、IBM、蘋果、微軟、聯想、戴爾、惠普等 |
| 第二次浪潮 | 1995年前后 | 互聯網 | 信息傳播 | 雅虎、谷歌、阿里巴巴、百度、騰訊等 |
| 第三次浪潮 | 2010年前后 | 物聯網、云計算和大數據 | 信息爆炸 | 亞馬遜、谷歌、Hortonworks、Cloudera、阿里云等 |
這里我仿照格式寫一下我認為的第四次浪潮:
| 第四次浪潮 | 2020年前后 | 人工智能、機器學習、量子計算機 | 信息智能 |
- 2.信息科技為大數據時代提供技術支撐
信息科技需要解決信息存儲、信息傳輸和信息處理三個核心問題:
(1)存儲設備容量不斷增加
(2)CPU處理能力大幅提升
(3)網絡帶寬不斷增加
- 3.大數據的發展歷程
| 第一階段:萌芽期 | 20世紀90年代至21世紀初 | 隨著數據挖掘理論和數據庫技術的逐步成熟,一批商業智能工具和知識管理技術開始被應用,如數據倉庫、專家系統、知識管理系統等。 |
| 第二階段:成熟期 | 21世紀前10年 | Web 2.0應用迅猛發展,非結構化數據大量產生,傳統處理方法難以應對,帶動了大數據技術的快速突破,大數據解決方案逐步走向成熟,形成了并行計算與分布式系統兩大核心技術,谷歌的GFS和MapReduce等大數據技術受到追捧,Hadoop平臺開始大行其道。 |
| 第三階段:大規模應用期 | 2010年以后 | 大數據應用滲透各行各業,數據驅動決策,信息社會智能化程度大幅提高。 |
1.1.2 大數據的概念
Wikipedia:大數據是指無法使用傳統和常用的軟件技術和工具在一定時間內完成獲取、管理和處理的數據.
麥肯錫咨詢公司:大數據是指大小超出了常規數據庫軟件的采集、存儲、管理和分析能力的數據集。
1.1.3 大數據的特征
相比于傳統處理小數據,大數據具有五個方面的特征:容量大(Volume)、種類多(Variety)、速度快(Velocity)、真實性(Veracity)、價值密度低(Value)。
-
容量大(Volume):數據以每年50%的速度增長,即“大數據摩爾定律”。
-
種類多(Variety):數據類型豐富,包括結構化數據(10%)和非結構化數據(90%)。不得不提到的是,如此類型繁多的異構數據,數據處理和分析技術更具挑戰:傳統數據主要存儲在關系數據庫中,Web2.0等應用的數據越來越多存儲在非關系型數據庫中,必然涉及到集成過程中進行數據轉換。轉換過程復雜且難以管理,傳統的聯機分析處理(OnLine Analytical Processing,OLAP)和其他工具大都面向結構化數據。
-
速度快(Velocity):數據產生速度非常迅速。值得一提的是,如今很多應用都需要基于快速生成的數據給出實時分析結果,數據處理和分析的速度通常要達到秒級響應,傳統的數據挖掘技術通常不要求給出實時分析結果。
-
真實性(Veracity):即追求高質量的數據。
-
價值密度低(Value):隨著數據量的增長,數據中有意義的信息卻沒有呈相應比例增長。有價值的數據與數據的真實性和數據處理時間兩點相關。例如監控視頻中有價值的畫面可能只有一兩秒。
1.1.4 大數據的應用
| 制造業 | 利用工業大數據提升制造業水平,包括產品故障診斷與預測、分析工藝流程、改進生產工藝、優化生產過程能耗、工業供應鏈分析與優化、生產計劃與排程 |
| 金融行業 | 大數據在高頻交易、社交情緒分析和信貸風險分析三大金融創新領域發揮著重要作用 |
| 汽車行業 | 利用大數據和物聯網技術的無人駕駛汽車,在不遠的未來將走入我們的日常生活 |
| 互聯網行業 | 借助于大數據技術,可以分析客戶行為,進行商品推薦和有針對性廣告投放 |
| 餐飲行業 | 利用大數據實現餐飲O20模式,徹底改變傳統餐飲經營方式 |
| 電信行業 | 利用大數據技術實現客戶離網分析,及時掌握客戶離網傾向,出臺客戶挽留措施 |
| 能源行業 | 利用大數據技術分析用戶用電模式,改進電網運行,合理設計電力需求響應系統,確保電網運行安全 |
| 物流行業 | 利用大數據優化物流網絡,提高物流效率,降低物流成本 |
| 城市管理 | 利用大數據實現智能交通、環保監測、城市規劃和智能安防 |
| 生物醫學 | 大數據可以幫助我們實現流行病預測、智慧醫療、健康管理,同時還可以幫助我們解讀DNA,了解更多生命奧秘 |
| 安全領域 | 政府利用大數據技術構建起強大的國家安全保障體系,企業利用大數據抵御網絡攻擊,警察借助大數據來預防犯罪 |
| 個人生活 | 利用與每個人相關聯的“個人大數據”,分析個人生活行為習慣,為其提供更加周到的個性化服務 |
1.1.5 大數據關鍵技術
談到大數據時,往往并非僅指數據本身,而是數據和大數據技術這兩者的綜合。
大數據技術,是指伴隨著大數據的采集、存儲、分析和應用的相關技術,使用非傳統工具來對大量的結構化、半結構化和非結構化數據進行處理,從而獲得分析和預測結果的一系列數據處理和分析技術。
大數據的基本處理流程,主要包括數據采集、存儲、分析和結果呈現等環節:
-
首先采用相應的設備或軟件對每時每刻都在不斷產生數據進行采集。
-
因為對于來源眾多、類型多樣的數據而言,數據缺失和語義模糊等問題是不可避免的,必須采取相應措施來有效解決這些問題,這就需要“數據預處理”的過程,將數據變成一個可用的狀態。
-
數據經過預處理后,會被存放到文件系統或數據庫系統中進行存儲與管理。
-
然后采用數據挖掘工具對數據進行處理分析。
-
最后采用可視化工具對用戶呈現結果。
從數據處理流程的角度,大數據技術主要包括數據采集與預處理、數據存儲和管理、數據處理與分析、數據安全和隱私保護等。
大數據技術的不同層面及其功能:
| 數據采集與預處理 | 利用ETL工具將分布的、異構數據源中的數據,如關系數據、平面數據文件等,抽取到臨時中間層后進行清洗、轉換、集成,最后加載到數據倉庫或數據集市中,成為聯機分析處理、數據挖掘的基礎;也可以利用日志采集工具(如Flume、Kafka等)把實時采集的數據作為流計算系統的輸入,進行實時處理分析 |
| 數據存儲和管理 | 利用分布式文件系統、數據倉庫、關系數據庫、NoSQL數據庫、云數據庫等,實現對結構化、半結構化和非結構化海量數據的存儲和管理 |
| 數據處理與分析 | 利用分布式并行編程模型和計算框架,結合機器學習和數據挖掘算法,實現對海量數據的處理和分析;對分析結果進行可視化呈現,幫助人們更好地理解數據、分析數據 |
| 數據安全和隱私保護 | 在從大數據中挖掘潛在的巨大商業價值和學術價值的同時,構建隱私數據保護體系和數據安全體系,有效保護個人隱私和數據安全 |
大數據技術是許多技術的一個集合體,這些技術并非全都是新生事物,諸如關系數據庫、數據倉庫、數據采集、ETL、OLAP、數據挖掘、數據隱私和安全、數據可視化等都是已經發展多年的技術,在大數據時代得到不斷補充、完善、提高后又有了新的升華,也可以視為大數據技術的一個組成部分。
1.1.6 大數據處理流程
大數據處理流程主要包括數據采集、數據存儲、數據預處理、數據計算、數據統計分析、數據挖掘、數據展示等環節。
大數據的處理流程可以定義為:在合適工具的輔助下,對廣泛異構的數據源進行抽取和集成,結果按照一定的標準進行統一存儲,并利用合適的數據分析技術對存儲的數據進行分析,從中提取有益的知識并利用恰當的方式將結果展現給終端用戶。簡單來說,可以分為數據抽取與集成、數據分析以及數據解釋。
-
(1)數據采集
大數據的采集是指利用多個數據庫來接收發自客戶端(Web、App或者傳感器形式等)的數據,并且用戶可以通過這些數據庫來進行簡單的查詢和處理工作。 -
(2)數據預處理
雖然采集端本身會有很多數據庫,但如果要對這些海量數據進行有效的分析,還是應該將這些來自前端的數據導入到一個集中的大型分布式數據庫或者分布式存儲集群中,并且可以在導入基礎上做一些簡單的清洗和預處理工作。 -
(3)數據統計分析
將海量的來自前端的數據快速導入到一個集中的大型分布式數據庫或者分布式存儲集群,利用分布式技術對存儲于其內的集中的海量數據進行普通的查詢和分類匯總等,以此滿足大多數常見的分析需求。
統計與分析階段的特點和挑戰主要是導人數據量大,查詢涉及的數據量大,查詢請求多。 -
(4)數據挖掘
與前面統計和分析過程不同的是,數據挖掘一般沒有預先設定好的主題,主要是在現有數據上進行基于各種算法的計算,從而起到預測的效果,實現一些高級別數據分析的需求。
比較典型算法有用于聚類的K-means、用于統計學習的SVM和用于分類的Naive Bayes,主要使用的工具有Hadogp的Mahout等。 -
(5)數據展示
當MapReduce過程結束后,產生的數據輸出文件將被按需移至數據倉庫或其他事務型系統。獲得的數據用來進行大數據分析,或者使用BI工具產生報表供使用者作出正確有利的決策,這是大數據處理技術要解決的根本問題。
1.2 大數據采集技術概述
1.2.1 數據采集與大數據采集
數據采集又稱數據獲取,是指從傳感器和其他待測設備等模擬和數字被測但愿中自動采集信息的過程。
新一代數據分類體系中,將新數據源進行歸納與分類,可將其分為線上行為數據與內容數據兩大類。
-
線上行為數據:頁面數據、交互數據、表單數據、會話數據等。
-
內容數據:應用日志、電子文檔、機器數據、語音數據、社交媒體數據。
傳統數據采集與大數據采集的區別:
| 來源單一,數據量相當小 | 來源廣泛,數量巨大 |
| 結構單一 | 數據類型豐富 |
| 關系數據庫和并行數據庫 | 分布式數據庫 |
大數據采集技術就是對數據進行ETL操作,通過對數據進行提取、轉換、加載,挖掘出數據的潛在價值,為用戶提供解決方案或決策參考。
ETL是英文(Extract-Transform-Load)的縮寫,用來描述將數據從來源端經過抽取(Extract)、轉換(Transform)、加載(Load)到目的端,然后進行處理分析的過程,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據模型,將數據加載到數據倉庫中,最后對數據倉庫中的數據進行數據分析和處理。
-
采集的數據種類錯綜復雜,對于不同種類的數據進行數據分析,必須通過提取技術將復雜格式的數據進行數據提取。從數據原始格式中提取出需要的數據,提取過程中丟棄一些不重要的字段。
-
數據源的采集可能存在不準確性,對于提取后的數據,必須進行數據清洗,對于那些不準確的數據進行過濾、剔除。
-
針對不同的應用場景,對數據進行分析的工具或者系統不同,還需要對數據進行數據轉換操作,將數據轉換成不同的數據格式,
-
最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去。
數據產生的種類很多,不同種類的數據產生的方式不同。大數據采集系統主要分為以下三類:
-
1.日志采集系統
日志采集系統就是收集日志數據并提供離線和在線的實時分析。
常用的開源日志收集系統:Flume、Scribe等。 -
2.網絡數據采集系統
通過網絡爬蟲和一些網站平臺提供的公共AP1(如Twitter和新浪微博APD等方式從網站上獲取數據。這樣就可以將非結構化數據和半結構化數據的網頁數據從網頁中提取出來,并對其進行提取、清洗、轉換為結構化的數據,將其存儲為統一的本地文件數據。
目前常用的網頁爬蟲系統有Apache Nutch、Crawler4j、Scirpy等框架。 -
3.數據庫采集系統
常用傳統關系數據庫有:MySQL、Oracle,常用傳統非關系數據庫有:Redis、MongoDB,均常用于數據的采集。
流行的大數據采集分析技術:Hive
數據轉換常用工具:Sqoop
1.2.2 大數據采集流程
互聯網大數據采集就是獲取互聯網中相關網頁內容的過程,并從中抽取出用戶所需要的屬性內容。互聯網網頁數據處理,就是對抽取出來的網頁數據進行內容和格式上的處理,并進行轉換和加工,使之能夠適應用戶的需求,非將之存儲下來,以供后用。
-
1.大數據采集的基本框架
這六個模塊的主要功能如下:
(1)網站頁面:獲取網站的網頁內容。
(2)鏈接抽取:從網頁內容中抽取出該網站正文內容的鏈接地址。
(3)鏈接過濾:判斷該鏈接地址的網頁內容是否已經被抓取過。
(4)內容抽取:從網頁內容中抽取所需屬性的內容值。
(5)爬取URL隊列:為爬蟲提供需要抓取數據網站的URL.
(6)數據:包含了網站URL,即需要抓取數據網站的URL信息;抓取數據的網頁URL及網頁內容三個方面。 -
2.大數據采集的基本步驟
整個大數據采集過程的基本步驟如下:
(1)將需要抓取數據的網站URL信息寫人URL隊列。
(2)爬蟲從URL隊列中獲取需要抓取數據的網站URL信息。
(3)獲取某個具體網站的網頁內容。
(4)從網頁內容中抽取該網站正文頁內容的鏈接地址。
(5)從數據庫中讀取已經抓取過內容的網頁地址。
(6)過濾URL:將當前URL與已經抓取過的URL進行比較。
(7)如果該網頁地址沒有被抓取過,則將該地址寫入抓取網頁URL數據庫:如果該地址已經被抓取過,則放棄對這個地址的抓取操作。
(8)獲取該地址的網頁內容,并抽取出所需屬性的內容值。
(9)將抽取的網頁內容寫入數據庫。
1.3大數據采集技術應用
大數據應用于各個行業,如何利用數據創造價值是大數據采集技術的關鍵點,大數據平臺和技術的應用成了一個出發點。
1.3.1 大數據處理平臺介紹
本書所使用到的大數據處理平臺:DanaStudio數智開發平臺
DanaStudio數智開發平臺是面向開發者、數據管理者、數據應用者提供的一站式大數據協作開發、管理平臺,致力于解決結構化、半結構化和非結構化數據的采集融合、數據治理、元數據管理、分層管理、交換服務等問題。
1.數據集成服務
DANA 智能大數據開發平臺中的數據集成模塊提供數據庫、文件、日志、網頁、實時流數據的抽取、清洗、轉換方案。分布式數據集成引擎,不論是數據庫里的傳統業務數據,還是網頁數據,甚至是文檔、圖片、音視頻等非結構化數據都可以用Crab引擎進行智能收集,并支持數據源的過濾、匹配。數據集成模塊集網絡爬蟲、ETL、文件采集、郵件采集等功能于一身。
2.數據庫服務
DANA智能大數據開發平臺中的數據中心模塊提供大數據時代穩定可靠、可彈性伸縮的數據庫服務,包括關系型業務分析數據庫Stork、內存分析型數據庫Lemur、分布式數據庫Teryx等。
-
Stork數據庫引擎根據不同業務數據庫的需求進行數據存儲功能開發,提供便捷統一的數據庫管理、使用、監控、運維等服務。
-
Lemur是基于內存存儲的高性能結構化數據庫,支持標準SQL語法,可提供每秒百萬級別的交互事務和高效的實時數據分析能力。面對大數據業務,可通過在線橫向擴展來提高大數據的處理和分析能力,帶來更快捷、高效、實時的數據體驗。
-
Teryx幫助構建拍字節(PB)級別的分布式OLAP數據倉庫,支持行式、列式、外部存儲等多種數據存儲形態,提供MPP海量并行查詢處理框架與服務。
3.存儲服務
-
Fox文件系統提供無限擴展、NAS協議標準文件存儲服務。
-
Boa塊存儲提供高性能、高可靠的塊級隨機存儲。
-
Cayman非結構數據倉庫提供私有對象存儲和高效率的非結構化數據管理。
4.大數據處理服務
DANA平臺提供豐富和強大的數據處理服務引擎,包括如下引擎:
-
Eagles實時搜索與分析引擎:實現海量實時在線快速搜索和準確分析服務。
-
Phoenix查詢引擎:具有低延時、高性能的特點,輕松應對海量消息的發送和接收,服務于大數據領域中數據管道、日志服務、流處理數據中心等應用方案。
-
Eel流媒體引擎:支持RTMP、RTSP、HTIP、HLS等多種流媒體協議,輕松實現多媒體文件的直播、點播以及虛擬直播等功能。
-
Dodo調度引擎:采用流程自動調用組件的形式幫助處理分布式任務的調度、執行和監控。
-
Mustang實時流計算引擎:基于Spark Streaming實時流計算框架,滿足所有對實時性要求高的流計算應用場景和系統需求。
-
Leopard 智能媒體數據處理引擎:針對海量文檔、圖片、音視頻等數據進行有效快速處理。
各個行業的大數據處理平臺包括但不限于:政務大數據融合平臺、交通大數據融合平臺、出入境大數據融合平臺等。
課后作業
一、名詞解釋
1.什么是大數據?
維基百科定義:大數據是指無法使用傳統和常用的軟件技術和工具在一定時間內完成獲取、管理和處理的數據。
麥肯錫咨詢公司定義:大數據是指大小超出了常規數據庫軟件的采集、存儲、管理和分析能力的數據集。
2.什么是數據采集?
數據采集又稱數據獲取,是指從傳感器和其他待測設備等模擬和數字被測單元中自動采集信息的過程。
3.什么是大數據采集?
大數據采集技術就是對數據進行ETL操作,通過對數據進行提取、轉換、加載,挖掘出數據的潛在價值,為用戶提供解決方案或決策參考。
二、簡答題
1.簡述大數據的基本特征。
容量大(Volume)、種類多(Variety)、速度快(Velocity)、真實性(Veracity)、價值密度低(Value)。
2.簡述大數據的處理流程。
大數據處理流程主要包括數據采集、數據存儲、數據預處理、數據計算、數據統計分析、數據挖掘、數據展示等環節。
3.數據采集與大數據采集的區別是什么?
| 來源單一,數據量相當小 | 來源廣泛,數量巨大 |
| 結構單一 | 數據類型豐富 |
| 關系數據庫和并行數據庫 | 分布式數據庫 |
傳統數據采集:來源單一,數據量相當小;結構單一;關系數據庫和并行數據庫存儲。
大數據采集:來源廣泛,數量巨大;數據類型豐富;分布式數據庫存儲。
4.什么是大數據采集技術?它包括哪些方法?
大數據采集技術就是對數據進行ETL操作,通過對數據進行提取、轉換、加載,挖掘出數據的潛在價值,為用戶提供解決方案或決策參考。
它包含的方法有:離線采集、實時采集、互聯網采集和其他采集方法。
5.簡述大數據采集技術的主要應用。
1、DANA智能大數據處理平臺
2、政務大數據融合平臺
3、交通大數據融合平臺
4、出入境大數據融合平臺
常用工具
日志采集工具:Flume、Kafka
關系數據庫:MySQL、Oracle、Postgres
NoSQL:Redis、MongoDB
數據預處理:Sqoop、Flume
數據統計分析:Hadoop
數據挖掘:Hadoop的Mahout
日志采集系統:Flume(Apache Flume)、Scribe
網頁爬蟲系統、框架:Apache Nutch、Crawler4j、Scrapy
大數據采集分析技術:Hive
數據轉換:Sqoop(Apache Sqoop)
HDFS(Hadoop Distributed File System):Hadoop分布式文件系統
MapReduce:一個分布式運算程序的編程框架
HQL(Hive Query Language):Hive的SQL語言
PS:僅供參考,因個人能力有限,如有錯誤,請不吝賜教~
總結
以上是生活随笔為你收集整理的【大数据采集技术与应用】【第一章】【大数据采集技术与应用概述】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生产环境中Oracle常用函数总结
- 下一篇: faker和劫的图片_faker亲手画的