大資料平臺架構技術選型與場景運用

IT大咖說發表於2019-02-28

大資料平臺架構技術選型與場景運用

內容來源:2017年5月6日,大眼科技CTO張逸在“魅族技術開放日第八期——資料洞察”進行《大資料平臺架構技術選型與場景運用》演講分享。IT大咖說作為獨家視訊合作方,經主辦方和講者審閱授權釋出。
閱讀字數1819 | 4分鐘閱讀

大資料平臺架構技術選型與場景運用

摘要

本次分享將結合多個大資料專案與產品研發的經驗,探討如何基於不同的需求場景搭建通用的大資料平臺。內容涵蓋資料採集、儲存與分析處理等多方面的主流技術、架構決策與技術選型的經驗教訓。

嘉賓演講視訊和PPT地址:t.cn/R9xaSOB

大資料平臺內容

資料來源往往是在業務系統上,大多數做資料分析的時候,不會直接對業務的資料來源進行處理,這時就需要資料採集。

採集到資料之後,基於資料來源的特點把這些資料儲存下來。

最後根據儲存的位置做資料分析和處理。

整個大的生態圈的核心就是資料採集、資料儲存和資料分析。

資料來源的特點

資料來源的特點決定了資料採集與資料儲存的技術選型。資料來源的特點主要有來源、結構、可變性和資料量四大類。

來源有內部資料和外部資料,它們的處理方式是不一樣的。

結構型資料和非結構型資料的選型也是不同的。

第三個特點是資料是否具有可變性,分為不變可新增和可以修改刪除兩種型別。

資料量則有大資料量和小資料量之分。

內部資料

內部資料來自企業系統內部,可以採用主動寫入技術,從而保證變更資料及時被採用。

外部資料

外部資料分為API呼叫和網路爬蟲。

如果要取到的資料本身提供了API,可以通過呼叫API來獲得資料。

另一種情況是沒有提供API,通過爬蟲去把資料“爬”過來。

非結構化資料&結構化資料

非結構化資料和結構化資料在儲存的時候選型完全不同。非結構化資料更多會選擇NoSQL的資料庫,而結構化資料考慮到資料的一致性和查詢在某些方面做join時的快速性,則會更偏向於選擇傳統的關係型資料庫,或是像TERADATA這樣非開源的專業資料庫,以及PostgreSQL這種支援分散式的資料庫。

不變可新增

如果資料來源的資料是不變的,或者只允許新增,則採集會變得非常容易,同步時只需要考慮最簡單的增量同步策略,維持資料的一致性也變得相對容易。

可修改可刪除

資料來源的資料有些可能會修改或刪除,尤其是許多維表經常需要變動。要對這樣的資料進行分析處理,最簡單的辦法就是採用直連形式。如果要進行資料採集,就要考慮同步問題。

大資料量

大資料平臺架構技術選型與場景運用

利用時間來處理大資料量並不是一個實時的處理方式。要做到實時的處理方式,應該採用流式處理。要將兩種方式結合起來,就要用到大資料的lambda架構。

Lambda架構分為了三層,最下層是speed layer,要求速度快,也就是實時。

最上層是batch layer,也就是批處理。

通過中間層serving layer,定期或不定期地把batch views和speed views去做merged,會產生一個結合了batch的資料。它既滿足了一定的實時性,又能滿足一定的大資料量。這是目前比較流行的一種大資料的處理方式。

一個典型的資料載入架構

大資料平臺架構技術選型與場景運用

資料儲存的技術選型

取決於資料來源的型別與資料的採集方式。

取決於採集後資料的格式與規模。

取決於分析資料的應用場景。

大資料平臺的特徵就是,相同的業務資料會以多種不同的表現形式,儲存在不同型別的資料庫中,形成一種poly-db的資料冗餘生態。

場景一:輿情分析

針對某手機品牌的輿情分析。客戶提出的需求是能夠對輿情資料進行全文字搜尋。輿情資料最高可能達到70億條,而全文字搜尋的效能指標要求響應時間控制在10s以內。

大資料平臺架構技術選型與場景運用

爬蟲爬到kafka裡面,進行流處理去蟲去噪,再做語義分析,語義分析完之後將輿情資料寫入ES,全量資料寫入HDFS。

場景二:商業智慧產品

大資料平臺架構技術選型與場景運用

聚合運算把資料來源採集儲存的時候,是基於列的運算,而傳統資料庫是行式儲存。行式儲存針對於列的運算需要全表才能拿到,這時選擇用parquet。因為parquet是以列式方式做儲存,所以做統計分析很快。但parquet執行查詢會很慢,沒有優勢。

場景三:Airbnb的大資料平臺

大資料平臺架構技術選型與場景運用

Airbnb的資料一部分來自於本身的業務資料在MySQL,還有一部分是大量的事件。資料來源不同,處理的方式也不一樣。

基於日誌,就用事件寫入kafka;如果是針對MySQL,就用Sqoop,寫入HDFS裡,並建立Hive的叢集。還存了一份資料放入亞馬遜的S3。

有一部分業務就是對資料合併後放入HDFS做大量的業務查詢和業務統計。這時希望用SQL的方式進行查詢,會有很多選項,它選擇的是Presto。

還有一些流式處理或機器學習要用到Spark,選型就會不同。

資料處理的分類

從業務角度來看,可以分為查詢檢索、資料探勘、統計分析和深度分析。

從技術角度分為五類,batch MapReduce、SQL、流式處理、Machine Learning和DeepLearning。

程式設計模型有離線程式設計模型、記憶體程式設計模型和實時程式設計模型。

大資料平臺架構技術選型與場景運用

基於資料來源的特點、分類,採集的方式,以及儲存的選型,到資料分析和處理的分類,可得出一個相對總體的大資料平臺架構。

我今天的分享就到這裡,謝謝大家!

大資料平臺架構技術選型與場景運用

相關文章