1. 程式人生 > >剖析大資料平臺的資料來源

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

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

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

大資料平臺的核心功能

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

  • 資料採集
  • 資料儲存
  • 資料處理

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

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

資料來源的特點

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

來源

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

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

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

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

  • API呼叫
  • 通過網路爬蟲抓取

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

結構

只要瞭解過大資料專案,都知道資料結構直接影響了儲存與處理技術的選擇。RDB之於結構型資料,NoSQL之於非結構資料,這是司空見慣的配對了。相當而言,RDB的選擇比較簡單,NoSQL則有更復雜的分類。Pramod J·Sadalage與Martin Fowler在NoSQL Distilled一書中將NoSQL分為四類:

  • 鍵值資料庫
  • 文件資料庫
  • 列族資料庫
  • 圖資料庫

針對不同結構型別的資料,我們可以借鑑這一分類作為選型的參考。

可變性

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

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

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

資料量

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

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

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

  • Batch Layer:針對批處理場景
  • Speed Layer:針對流處理場景
  • Serving Layer:由流處理場景提供實時資料模型,再對批處理的大資料進行預計算,從而提供批處理資料模型(聚合計算後),合併後提供給Serving Layer。

Lambda架構圖如下所示:

OLAP分析平臺druid就採用了Lambda架構。

相關推薦

剖析資料平臺資料來源

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

架構師實踐日 11.9 南京站報名 | 技術牛帶你剖析資料平臺內部演進中的挑戰與實踐

從網際網路時代到物聯網時代,資料成為了企業的核心資產,挖掘資料價值成為了企業資料探索、技術應用的重中之重,甚至將影響到企業未來的發展和商業模式。但大資料體量大、多樣性、價值密度低、速度快等特徵,也給大資料的應用研發工作帶來了不少挑戰。  如何應對大資料

剖析資料平臺資料處理

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

資料來源/資料平臺

【彙總】資料來源/大資料平臺 一、網路趨勢分析   站長工具:5118 | chinaz   指數工具:艾瑞指數 | 百度指數 | 微指數 | 搜狗指數    

資料脫敏介紹(資料平臺 )

資料脫敏(Data Masking),又稱資料漂白、資料去隱私化或資料變形。百度百科對資料脫敏的定義為:指對某些敏感資訊通過脫敏規則進行資料的變形,實現敏感隱私資料 的可靠保護。這樣,就可以在開發、測試和其它非生產環境以及外包環境中安全地使用脫敏後的真實資料集。 可以看到資料脫敏具有幾個關鍵點:

資料平臺架構思考

筆者早期從事資料開發時,使用spark開發一段時間,感覺大資料開發差不多學到頭了,該會的似乎都會了。在後來的實踐過程中,發現很多事情需要站在更高的視角來看問題,不然很容易陷入“不識廬山真面目”的境界。最近在思考資料資產管理平臺的建設,進行血緣分析開發,有如下感悟: 大資料平臺從資料層面來說,包括資料本身和元

【福利】送Spark資料平臺視訊學習資料

沒有套路真的是送!! 大家都知道,大資料行業spark很重要,那話我就不多說了,貼心的大叔給你找了份spark的資料。   多囉嗦兩句,一個好的程式猿的基本素養是學習能力和自驅力。視訊給了你們,能不能堅持下來學習,就只能靠自己了,另外大叔每週會不定期更新《每日五分鐘搞定

美團資料平臺

今天給大家介紹的內容主要包括以下四個部分首先是介紹一下美團大資料平臺的架構,然後回顧一下歷史,看整個平臺演進的時間演進線,每一步是怎麼做的,以及一些挑戰和應對策略,最後總結一下,聊一聊我對平臺化的看法。     謝語宸是來自美團的大資料構建平臺的架構師。他在QCon2016北

【備忘】小象視訊教程 Hadoop 2.X資料平臺V3

第1講 :hadoop生態系統以及版本演化 第2講:HDFS 2.0應用場景、原理、基本架構及使用方法 第3講:Yarn應用場景、基本架構與資源排程 第4講: MapReduce 2.0基本原理與架構 第5講 :MapReduce 2.0程式設計實踐(涉及多語言程式設計) 第6講:Hbase應用場

雙11奇蹟背後的資料平臺,不喧譁,自有聲!

00:02:05 成交額超100億00:57:56 成交額超666億01:47:26 成交額超1000億15:49:39 成交額超1682億22:28:37 成交額超2000億 2018年雙11新紀錄2135億 高速跳轉的數字,不斷重新整理的狀態,光纜中狂奔的程式碼,鍵盤上飛舞的手指…

DataPipeline在資料平臺資料流實踐

文 | 呂鵬 DataPipeline架構師 進入大資料時代,實時作業有著越來越重要的地位。本文將從以下幾個部分進行講解DataPipeline在大資料平臺的實時資料流實踐。 一、企業級資料面臨的主要問題和挑戰 1.資料量不斷攀升 隨著網際網路+的蓬勃發展和使用者規模的急劇擴張,企業資

資料平臺SQL編碼開發規範--轉自阿里雲DataWorks

本文向您介紹SQL編碼的基本原則和詳細的編碼規範。 編碼原則 SQL程式碼的編碼原則如下: 程式碼功能完善,健壯。 程式碼行清晰、整齊,具有一定的可觀賞性。 程式碼編寫要充分考慮執行速度最優的原則。 程式碼行整體層次分明、結構化強。 程式碼中應有必要的註釋以

資料平臺hive原生搭建教程

環境準備 centos 7.1系統 需要三臺雲主機: master(8) 作為 client 客戶端 slave1(9) 作為 hive server 伺服器端 slave2(10) 安裝 mysql server 安裝包使用的是官網下載的 將hive上傳到master ,mys

資料平臺--Hadoop原生搭建教程

環境準備: 三臺虛擬機器 master(8)、slave1(9)、slave2(10) centos 7.1、jdk-8u171-linux-x64.tar.gz、hadoop-2.7.3.tar.gz 0x1環境準備 首先先在三臺虛擬機器中建立hadoop資料夾 mdkir /

資料平臺中資源控制在不同作業系統上的實現

大資料平臺中資源控制在不同作業系統上的實現 在大資料迅速發展的今天,很大一部分支援來自於底層技術的不斷髮展,其中非常重要的一點就是系統資源的管理和控制,大資料平臺的核心就是對資源的排程管理,在排程和管理之後如何對這些資源進行控制便成了另一個重要的問題。大資料系統中使用者成千上萬的作業程序

ambari資料平臺搭建的安裝(全)

本篇主要說明離線安裝的流程,如需檢視線上安裝的可以看以前博文 https://blog.csdn.net/xiaozou_it/article/details/82911160 一、安裝前的一些準備(離、線上皆需先完成) 1、推薦四臺虛擬機器器(本文以centos為例) 2、

使用docker搭建資料平臺

我們以Ambari+HDP為例。儘管說運維堅決不同意在docker上執行大資料元件,但是我覺得,作為測試和學習目的在本地快速構建大資料叢集仍然是一件非常有意義的事情。 如果我們想採取Ambari來安裝HDP的話,其包含的主要元件如下 ambari-server: 主要部署的控

阿里雲HBase攜X-Pack再進化,重新賦能輕量級資料平臺

一、八年雙十一,造就國內最大最專業HBase技術團隊 阿里巴巴集團早在2010開始研究並把HBase投入生產環境使用,從最初的淘寶曆史交易記錄,到螞蟻安全風控資料儲存。持續8年的投入,歷經8年雙十一鍛鍊。4個PMC,6個committer,造就了國內最大最專業的HBase技術團隊,其中HBase核心中超過2

資料平臺hbase,phoenix,spark搭建和研發問題和解決方式彙總

#Q Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.tracing.SpanReceiverHost.get $A <hadoop.version>2.7.3</hadoop.version>

小型資料平臺搭建

目錄 前言 一、 搭建環境 1.1叢集規劃 二、 叢集的相關配置 2.1 新建使用者hadoop 2.2 更改主機名 2.3 主機和IP做相關對映 2.4 SSH免密碼登入 2.5 時間配置 2.6 整體安裝目錄安排 三、 Hadoop HA環境搭建 3.1 JDK配置 3.2 安裝