內容來源: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。
程式設計模型有離線程式設計模型、記憶體程式設計模型和實時程式設計模型。
基於資料來源的特點、分類,採集的方式,以及儲存的選型,到資料分析和處理的分類,可得出一個相對總體的大資料平臺架構。
我今天的分享就到這裡,謝謝大家!