日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大数据采集技术综述

發布時間:2023/12/9 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据采集技术综述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????近年來,以大數據、物聯網、人工智能、5G為核心特征的數字化浪潮正席卷全球。隨著網絡和信息技術的不斷普及,人類產生的數據量正在呈指數級增長。大約每兩年翻一番,這意味著人類在最近兩年產生的數據量相當于之前產生的全部數據量。世界上每時每刻都在產生的大量的數據,包括物聯網傳 感器數據、社交網絡數據、商品交易數據等等。 面對如此巨大的數據,與之相關的采集、存儲、分析等等環節產生了一系列的問題。如何收集這些數據并且進行轉換分析存儲以及有效率的分析成為巨大的挑戰。需要有這樣一個系統用來收集這樣的數據,并且對數據進提取、轉換、加載。

????????本節就介紹這樣一個大數據采集技術。什么是大數據采集技術?大數據采集技術就是對數據進行ETL操作,通過對數據進行提取、轉換、加載,最終挖掘數據的潛在價值。然后提供給用戶解決方案或者決策參考。ETL,是英文 Extract-Transform-Load 的縮寫,數據從數據來源端經過抽取(extract)、轉換(transform)、加載(load)到目的端,然后進行處理分析的過程。用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據模型,將數據加載到數據倉庫中去,最后對數據倉庫中的數據進行數據分析和處理。數據采集位于數據分析生命周期的重要一環,它通過傳感器數據、社交網絡數據、移動互聯網數據等方式獲得各種類型的結構化、半結構化及非結構化的海量數據。由于采集的數據種類錯綜復雜,對于這種不同種類的數據。我們進行數據分析,必須通過提取技術。將復雜格式的數據,進行數據提取,從數據原始格式中提取(extract)出我們需要的數據,這里可以丟棄一些不重要的字段。對于數據提取后的數據,由于數據源頭的采集可能存在不準確。所以我們必須進行數據清洗,對于那些不正確的數據進行過濾、剔除。針對不同的應用場景,對數據進行分析的工具或者系統不同,我們還需要對數據進行數據轉換(transform)操作,將數據轉換成不同的數據格式,最終按照預先定義好的數據倉庫模型,將數據加載(load)到數據倉庫中去。

在現實生活中,數據產生的種類很多,并且不同種類的數據產生的方式不同。對于大數據采集系統,主要分為以下三類系統:

????????一、系統日志采集系統許多公司的業務平臺每天都會產生大量的日志數據。對于這些日志信息,我們可以得到出很多有價值的數據。通過對這些日志信息進行日志采集、收集,然后進行數據分析,挖掘公司業務平臺日志數據中的潛在價值。為公司決策和公司后臺服務器平臺性能評估提高可靠的數據保證。系統日志采集系統做的事情就是收集日志數據提供離線和在線的實時分析使用。目前常用的開源日志收集系統有Flume、Scribe等。 Apache Flume是一個分布式、可靠、可用的服務,用于高效地收集、聚合和移動 大量的日志數據,它具有基于流式數據流的簡單靈活的架構。其可靠性機制和許多故障轉移和恢復機制,使Flume具有強大的容錯能力。Scribe是Facebook開源的日志采集系統。Scribe實際上是一個分布式共享隊列,它可以從各種數據源上收集日志數據,然后放入它上面的共享隊列中。Scribe可以接受thrift client發送過來的數據,將其放入它上面的消息隊列中。然后通過消息隊列將數據Push到分布式存儲系統中,并且由分布式存儲系統提供可靠的容錯性能。如果最后的分布式存儲系統crash時,Scribe中的消息隊列還可以提供容錯能力,它會還日志數據寫到本地磁盤中。Scribe支持持久化的消息隊列,來提供日志收集系統的容錯能力。

????????二、網絡數據采集系統。通過網絡爬蟲和一些網站平臺提供的公共API(如Twitter和新浪微博API)等方式從網站上獲取數據。這樣就可以將非結構化數據和半結構化數據的網頁數據從網頁中提取出來。并將其提取、清洗、轉換成結構化的數據,將其存儲為統一的本地文件數據。目前常用的網頁爬蟲系統有Apache Nutch、Crawler4j、Scrapy等框架。Apache Nutch是一個高度可擴展和可伸縮性的分布式爬蟲框架。Apache通過分布式抓取網頁數據,并且由Hadoop支持,通過提交MapReduce任務來抓取網頁數據,并可以將網頁數據存儲在HDFS分布式文件系統中。Nutch可以進行分布式多任務進行爬取數據,存儲和索引。由于多個機器并行做爬取任務,Nutch利用多個機器充分利用機器的計算資源和存儲能力,大大提高系統爬取數據能力。Crawler4j、Scrapy都是一個爬蟲框架,提供給開發人員便利的爬蟲API接口。開發人員只需要關心爬蟲API接口的實現,不需要關心具體框架怎么爬取數據。Crawler4j、Scrapy框架大大降低了開發人員開發速率,開發人員可以很快的完成一個爬蟲系統的開發。

????????三、數據庫采集系統。一些企業會使用傳統的關系型數據庫MySQL和Oracle等來存儲數據。除此之外,Redis和MongoDB這樣的NoSQL數據庫也常用于數據的采集。企業每時每刻產生的業務數據,以數據庫一行記錄形式被直接寫入到數據庫中。通過數據庫采集系統直接與企業業務后臺服務器結合,將企業業務后臺每時每刻都在產生大量的業務記錄寫入到數據庫中,最后由特定的處理分許系統進行系統分析。

????????針對大數據采集技術,目前主要流行以下大數據采集分析技術。Hive是Facebook團隊開發的一個可以支持PB級別的可伸縮性的數據倉庫。這是一個建立在Hadoop之上的開源數據倉庫解決方案。 Hive支持使用類似SQL的聲明性語言(HiveQL)表示的查詢,這些語言被編譯為使用Hadoop執行的MapReduce作業。另外,HiveQL使用戶可以將自定義的map-reduce腳本插入到查詢中。該語言支持基本數據類型,類似數組和Map的集合以及嵌套組合。 HiveQL語句被提交執行。首先Driver將查詢傳遞給編譯器compiler,通過典型的解析,類型檢查和語義分析階段,使用存儲在Metastore中的元數據。編譯器生成一個邏輯任務,然后通過一個簡單的基于規則的優化器進行優化。最后生成一組MapReduce任務和HDFS Task的DAG優化后的Task。 然后執行引擎使用Hadoop按照它們的依賴性順序執行這些Task。Hive簡化了對于那些不熟悉Hadoop MapReduce接口的用戶學習門檻,Hive提供了一些列簡單的HiveQL語句,對數據倉庫中的數據進行簡要分析與計算。

????????在大數據采技術中,其中有一個關鍵的環節就是transform操作。它將清洗后的數據轉換成不同的數據形式,由不同的數據分析系統和計算系統進行處理和分析。將批量數據從生產數據庫加載到Hadoop HDFS分布式文件系統中或者從Hadoop HDFS文件系統將數據轉換為生產數據庫中,這是一項艱巨的任務。 用戶必須考慮確保數據一致性,生產系統資源消耗等細節。使用腳本傳輸數據效率低下且耗時。Apache Sqoop就是用來解決這個問題,Sqoop允許從結構化數據存儲(如關系數據庫,企業數據倉庫和NoSQL系統)輕松導入和導出數據。使用Sqoop,您可以將來自外部系統的數據配置到HDFS上,并將表填入Hive和HBase中。運行Sqoop時,被傳輸的數據集被分割成不同的分區,一個只有mapper Task的Job被啟動,mapperTask負責傳輸這個數據集的一個分區。Sqoop使用數據庫元數據來推斷數據類型,因此每個數據記錄都以類型安全的方式進行處理。

總結

以上是生活随笔為你收集整理的大数据采集技术综述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。