首頁>技術>

海量的資料

當你需要搭建大資料平臺的時候一定是傳統的關係型資料庫無法滿足業務的儲存計算要求了,所以首先我們面臨的是海量的資料。

複雜的資料

複雜資料的概念和理想資料完全相反。所有資料集都有一定的複雜性,但有一些天生更難處理。通常這些複雜資料集沒有定義結構(沒有行列結構),經常變化,資料品質很差。比如更新的網頁日誌,json資料,xml資料等。

高速的資料

高速資料通常被認為是實時的或是準實時的資料流。資料流本質上是在生成後就發給處理器的資料包,比如物聯網的穿戴裝置,製造業的感測器,車聯網的終端晶片等等。處理實時資料流有很多挑戰,包括在採集時不丟失資料、處理資料流中的重複記錄、資料如何實時寫入磁碟儲存、以及如何進行實時分析。

二、採集工具日誌採集

我們業務平臺每天都會有大量使用者訪問,會產生大量的訪問日誌資料,比如電商系統的瀏覽,加入購物車,下訂單,付款等一系列流程我們都可以通過埋點獲取到使用者的訪問路徑以及訪問時長這些資料;再比智慧穿戴裝置,實時都會採集我們的血壓、脈搏、心率等資料實時上報到雲端。通過分析這些日誌資訊,我們可以得到出很多業務價值。通過對這些日誌資訊進行日誌採集、收集,然後進行資料分析,挖掘公司業務平臺日誌資料中的潛在價值。為公司決策和公司後臺伺服器平臺效能評估提高可靠的資料保證。系統日誌採集系統做的事情就是收集日誌資料提供離線和線上的實時分析使用。目前常用的開源日誌收集系統有Flume、Logstash、Filebeat。可以根據自己公司的技術棧儲備或者元件的優缺點選擇合適的日誌採集系統,目前了解到的Flume使用的比較多。各個採集工具的對別如下:

資料庫抽取

企業一般都會會使用傳統的關係型資料庫MySQL或Oracle等來儲存業務系統資料。每時每刻產生的業務資料,以資料庫一行記錄的形式被直接寫入到資料庫中儲存。

大資料分析一般是基於歷史海量資料,多維度分析,我們不能直接在原始的業務資料庫上直接操作,因為分析的一些複雜SQL查詢會明顯的影響業務資料庫的效率,導致業務系統不可用。所以我們通常通過資料庫採集系統直接與企業業務後臺資料庫伺服器結合,在業務不那麼繁忙的凌晨,抽取我們想要的資料到分析資料庫或者到HDFS上,最後有大資料處理系統對這些資料進行清洗、組合進行資料分析。

常用資料庫抽取工具:

阿里開源軟體:DataX

DataX 是一個異構資料來源離線同步工具,致力於實現包括關係型資料庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構資料來源之間穩定高效的資料同步功能。開源的DataX貌似只能單機部署。

Apache開源軟體:Sqoop

Sqoop(發音:skup)是一款開源的工具,主要用於在HADOOP(Hive)與傳統的資料庫(mysql、postgresql...)間進行資料的傳遞,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中。可以叢集化部署。

爬蟲爬取

有很多外部資料,比如天氣、IP地址等資料,我們通常會爬取相應的網站資料儲存。目前常用的爬蟲工具是Scrapy,它是一個爬蟲框架,提供給開發人員便利的爬蟲API介面。開發人員只需要關心爬蟲API介面的實現,不需要關心具體框架怎麼爬取資料。Scrapy框架大大降低了開發人員開發速率,開發人員可以很快的完成一個爬蟲系統的開發。

HDFS

2003年,Google釋出論文GFS,啟發Apache Nutch開發了HDFS。2004年,Google 又釋出了論文《MapReduce: Simplified Data Processing on Large Clusters》,Doug Cutting等人實現計算框架MapReduce ,並與HDFS結合來更好的支援該框架。2006年專案從Butch搜尋引擎中獨立出來,成為了現在的Hadoop。

GFS隱藏了底層的負載均衡,切片備份等細節,使複雜性透明化,並提供統一的檔案系統介面。其成本低,容錯高,高吞吐,適合超大資料集應用場景。

HDFS原理:橫向擴充套件,增加“資料節點”就能增加容量。增加協調部門,“命名節點”維護元資料,負責檔案系統的名稱空間,控外部訪問,將資料塊印射到資料節點。還會備份元資料從命名節點,它只與命名節點通訊。資料在多個數據節點備份。

通常關係型資料庫儲存的都是結構化的資料,我們抽取後會直接放到HDFS上作為離線分析的資料來源。

HBase

在實際應用中,我們有很多資料可能不需要複雜的分析,只需要我們能儲存,並且提供快速查詢的功能。HBase在HDFS基礎上提供了Bigtable的能力; 並且基於列的模式進行儲存。列儲存設計的有事減少不必要的欄位佔用儲存,同時查詢的時候也可以只對查詢的指定列有IO操作。HBase可以儲存海量的資料,並且可以根據rowkey提供快速的查詢效能,是非常好的明細資料儲存方案,比如電商的訂單資料就可以放入HBase提供高效的查詢。

當然還有其他的儲存引擎,比如ES適合文字搜尋查詢等。

總結

了解了上面的技術棧後,在實際資料接入中,你還會面臨各種問題,比如如何考慮確保資料一致性,保障資料不能丟失,資料採集儲存的效率,不能產生資料積壓等,這些都需要對每個元件進行研究,適配適合你自己業務系統的引數,用最少的資源,達到最好的結果。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 作為雲原生時代的開發人員,你要了解dockerfile的這些事兒