剖析大資料平台的資料來源

2021-09-08 04:55:50 字數 2206 閱讀 3453

我在一次社群活動中做過一次分享,演講題目為《大資料平台架構技術選型與場景運用》。在演講中,我主要分析了大資料平台架構的生態環境,並主要以資料來源、資料採集、資料儲存與資料處理四個方面展開分析與講解,並結合具體的技術選型與需求場景,給出了我個人對大資料平台的理解。本文是演講內容的第一部分。

大資料平台是乙個整體的生態系統,內容涵蓋非常豐富,涉及到大資料處理過程的諸多技術。在這些技術中,除了一些最基礎的平台框架之外,針對不同的需求場景,也有不同的技術選擇。這其中,顯然有共性與差異性的特徵。若從整個開發生命週期的角度看,無論是需求、架構,還是開發、測試到最後的部署與運維,各種技術都會牽扯其中,不同的角色關注點自然也有不同。

從大資料平台工程師的角度看,決定整個大資料平台關鍵質量的不外三方面:

至於系統監控、資源協調、部署運維及其他管理功能都是大資料平台整個生態環境中不可缺少的拼圖,但對於面向資料的架構,核心還是與資料打交道的一部分。如下圖所示:

根據我在大資料專案中的經驗,我發現,無論是資料採集、儲存還是分析,在技術選型與方案設計上,似乎又與資料來源的特徵息息相關,甚至在某種程度上,可以認為是資料來源的特點決定了整個大資料平台架構的設計。

於是,我將關注點首要放在了資料來源上。分析資料來源的資料特徵,我從四個不同的維度對資料來源進行了分類:

**資料的**不同,意味著我們對資料的掌控也就不同,更意味著我們對資料的訪問機制也有所不同。

企業的內部資料通常與具體業務緊密相關,且多數來自我們可以掌控(或者通過兄弟團隊)的軟體系統,如crm、erp或者hr系統。從企業架構的角度考慮,我們本身就應該避免企業系統出現所謂的「煙囪系統」,規避「資訊孤島」。設計良好的系統應該提供相關的介面允許其他系統有限度地訪問該系統的內部資料,又或者主動地將內部資料寫入到乙個完全解耦合的元件中。例如,乙個常見的做法是將內部系統實時產生的輸入寫入到kafka中。

通常,我們會盡量避免直接將內部系統的資料庫公開給大資料平台。因為這種方式不僅會帶來潛在的安全威脅,還可能會因為資源占用的緣故影響到業務系統。

外部資料的獲取方式不外乎兩種:

與內部資料不同,外部資料不可能聽指揮地「召之即來揮之即去」,我們需要定期或不定期地去獲取資料,好處是我們可以根據業務場景和資料的特點自主地選擇資料儲存。

結構只要了解過大資料專案,都知道資料結構直接影響了儲存與處理技術的選擇。rdb之於結構型資料,nosql之於非結構資料,這是司空見慣的配對了。相當而言,rdb的選擇比較簡單,nosql則有更複雜的分類。pramod j·sadalage與martin fowler在nosql distilled一書中將nosql分為四類:

可變性datomic資料庫的設計哲學是將所有過去發生的事情(或事件)認為是乙個「fact(事實)」,基於事實不能篡改的本質,則資料庫中儲存的資料也當是不變的。無論是新增、刪除還是修改,在資料庫層面都是增加一條記錄,而非直接更改。

然而,多數資料庫並未新增這種不變性的約束,雖然這種不變性帶來的好處是明顯的,不過也會給業務系統的設計與實現帶來不必要的複雜度。然而,作為大資料平台的資料來源而言,情況則相反,若資料允許更改,資料採集過程就會變得更複雜。

一種簡單的應對辦法是採用直連的形式。由於資料分析可能會基於不同的資料場景對資料儲存提出不同的要求,直連的資料來源未必滿足這種要求。例如,假設我們的分析場景是要做基於關鍵字的全文本搜尋,在大資料量高效能的要求下,選擇elasticsearch或者solr會表現更好,若直連的資料來源是mysql,事情就會變得較為棘手。

資料量資料量小,則一切都可迎刃而解,這裡不再贅述。

針對大資料量,實則是兩個不同的場景。一種是批處理方式,典型地演算法是mapreduce,主要針對非實時需求場景,我們可以編寫定期以及批量執行的任務來完成資料的採集。需要費心的是對job的監控、管理與排程。另一種則是流處理方式,(準)實時對產生的資料進行處理,這種場景對資料來源的限制更多,最常見的方案就是將源源不斷產生的資料寫入到kafka中。

在真實場景下,批處理與流處理方式可能共存。lambda架構提出創新的三層架構方式,將此二者有機地融合起來,分別為:

lambda架構圖如下所示:

olap分析平台druid就採用了lambda架構。

剖析大資料平台的資料採集

我在一次社群活動中做過一次分享,演講題目為 大資料平台架構技術選型與場景運用 在演講中,我主要分析了大資料平台架構的生態環境,並主要以資料來源 資料採集 資料儲存與資料處理四個方面展開分析與講解,並結合具體的技術選型與需求場景,給出了我個人對大資料平台的理解。本文講解資料採集部分。資料採集的設計,幾...

資料採集 資料來源 Notebook平台

資料採集之資料來源 1 開放資料來源 2 爬蟲爬取 3 感測器 4 日誌採集 開放資料來源 單位資料來源 美國人口調查局 提供人口資訊,地區分布和教育情況等美國公民相關的資料 歐盟歐盟開放資料平台,提供歐盟各機構的大量資料。facebook facebook官方提供的api,用於查詢使用者公開的海量...

WPF 的 資料來源屬性 和 資料來源

一 資料來源 資料物件 屬性 path 或 path的值 path vm.property或m.property 通常具有通知功能 特例除外 二 path不能孤立而存在,它一定具有所歸屬的資料來源,一定要找到path 確切的說 是它的值 所歸屬的資料來源,說明如下 資料來源 資料物件 1 指定控制項...