大資料匯流排平臺DBus設計思路與工作原理
一、背景
企業中大量業務資料儲存在各個業務系統資料庫中,過去通常的同步資料的方法有很多種,比如:
- 各個資料使用方在業務低峰期各種抽取所需資料(缺點是存在重複抽取而且資料不一致)
- 由統一的數倉平臺通過sqoop到各個系統中抽取資料(缺點是sqoop抽取方法時效性差,一般都是T+1的時效性)
- 基於trigger或時間戳的方式獲得增量的變更(缺點是對業務方侵入性大,帶來效能損失等)
這些方案都不能算完美,我們在瞭解和考慮了不同實現方式後,認為要想同時解決資料一致性和實時性,比較合理的方法應該是基於日誌的解決方案,同時能夠提供訊息訂閱的方式給下游系統使用。
DBus(資料匯流排)專案就是應這個需求而生的,DBus專注於資料的收集及實時資料流計算,通過簡單靈活的配置,以無侵入的方式對源端資料進行採集,採用高可用的流式計算框架,對公司各個IT系統在業務流程中產生的資料進行匯聚,經過轉換處理後成為統一JSON的資料格式(UMS),提供給不同資料使用方訂閱和消費,充當數倉平臺、大資料分析平臺、實時報表和實時營銷等業務的資料來源。
二、系統架構和工作原理
DBUS主要分為兩個部分:貼源資料採集和多租戶資料分發。兩個部分之間以Kafka為媒介進行銜接。無多租戶資源、資料隔離需求的使用者,可以直接消費源端資料採集這一級輸出到kafka的資料,無需再配置多租戶資料分發。
2.1 DBUS源端資料採集
DBUS源端資料採集大體來說分為2部分:
- 讀取RDBMS增量日誌的方式來 實時獲取增量資料日誌,並支援全量拉取;
- 基於logtash,flume,filebeat等抓取工具來實時獲得資料,以視覺化的方式對資料進行結構化輸出。
以下為具體實現原理
主要模組如下:
- 日誌抓取模組:從RDBMS的備庫中讀取增量日誌,並實時同步到kafka中;
- 增量轉換模組:將增量資料實時轉換為UMS資料,處理schema變更,脫敏等;
- 全量抽取程式:將全量資料從RDBMS備庫拉取並轉換為UMS資料;
- 日誌運算元處理模組:將來自不同抓取端的日誌資料按照運算元規則進行結構化處理;
- 心跳監控模組:對於RDMS類源,定時向源端傳送心跳資料,並在末端進行監控,傳送預警通知;對於日誌類,直接在末端監控預警。
- web管理模組:管理所有相關模組。
2.2 多租戶資料分發
對於不同租戶對不同源端資料有不同訪問許可權、脫敏需求的情形,需要引入Router分發模組,將源端貼源資料,根據配置好的許可權、使用者有權獲取的源端表、不同脫敏規則等,分發到分配給租戶的Topic。這一級的引入,在DBUS管理系統中,涉及到使用者管理、Sink管理、資源分配、脫敏配置等。不同專案消費分配給他的topic。
主要功能:
- 無侵入方式接入多種資料來源: 業務系統無需任何修改,以無侵入性讀取資料庫系統的日誌獲得增量資料實時變化。目前RDBMS支援mysql,oracle資料來源(Oracle資料來源請參考Oracle相關協議), 日誌方面支援基於logstash,flume和filebeat的多種資料日誌抽取方案。
- 海量資料實時傳輸: 使用基於Storm的流式計算框架,秒級延時,整體無單點保證高可用性。
- 多租戶支援: 提供使用者管理、資源分配、Topology管理、租戶表管理等豐富的功能,可根據需求,為不同租戶分配不同的源端表資料訪問許可權,應用不同的脫敏規則,從而實現多租戶資源隔離、差異化資料安全。
- 感知源端schema變更: 當源端發生schema變更時,能自動感知schema變化,調整UMS版本號,並通過Kafka訊息和郵件通知下游
- 資料實時脫敏: 可根據需求對指定列資料進行實時脫敏。脫敏策略包括:直接替換、MD5、murmur等脫敏演算法,脫敏加鹽,正規表示式替換等。支援使用者開發jar包實現DBUS未覆蓋的個性化脫敏策略。
- 初始化載入: 支援高效的初始化載入和重新載入,支援任意指定輸出topic,靈活應對客戶需求。
- 統一標準化訊息傳輸協議: 使用統一的UMS(JSON格式)訊息schema格式輸出便於消費,提供資料線級ums_id保證資料順序性,輸出insert,Update(before/after),Delete event資料。
- 可靠多路訊息訂閱分發: 使用Kafka儲存和傳遞訊息保證可靠性和便捷的多使用者訂閱
- 支援分割槽表/系列表資料彙集: 支援分割槽表的資料彙集到一個“邏輯表” 。也可將使用者自定義的系列表資料彙集到一個“邏輯表“。例:
- 實時監控&預警: 視覺化監控系統能隨時檢視各資料線實時流量和延時狀況;當資料線發生異常時,根據配置策略自動發郵件或簡訊通知相關負責人
開源地址:https://github.com/BriData/DBus
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69918724/viewspace-2650805/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 拆解大資料匯流排平臺DBus的系統架構大資料架構
- ESB匯流排平臺,輕量級視覺化編排視覺化
- 快速部署DBus體驗實時資料流計算
- 大資料匯流排(DataHub)大資料
- 計算機組成原理之匯流排設計計算機
- RestCloud API服務編排平臺,快速構建企業服務匯流排RESTCloudAPI
- 工作流引擎的工作原理與功能
- 事件匯流排的設計與實現事件
- IIC序列匯流排的組成及工作原理
- limanmanExp資料庫審計設計思路與重要程式碼資料庫
- OPPO大資料診斷平臺設計與實踐大資料
- 大資料開發實戰:實時資料平臺和流計算大資料
- 大資料平臺架構設計探究大資料架構
- CAN(FD)、LIN匯流排通訊和資料庫設計工具-VDE資料庫
- DataPipeline在大資料平臺的資料流實踐API大資料
- 大資料技術原理與應用——大資料概述大資料
- 前端三大框架:資料繫結與資料流前端框架
- 輕量級工作流引擎的設計與實現
- Pinterest為何遷移到新的大資料處理工作流平臺Apache Airflow?REST大資料ApacheAI
- CAN匯流排原理_學習
- 工作流引擎架構設計架構
- 企業級統一資料平臺建設思路
- 大文字資料,匯入匯出到資料庫資料庫
- java 工作流表單設計器 設計方案Java
- 大資料匯入之MySql設計之空間換時間的設計變更大資料MySql
- 移動端 web 開發的設計稿與工作流Web
- 大資料技術原理與應用大資料
- 大資料分析平臺|零程式設計、人人都能用大資料程式設計
- 構建煤礦物聯網大資料平臺思路(1)大資料
- 大資料技術 - 分散式訊息流平臺:Kafka與Pulsar的介紹大資料分散式Kafka
- 資料流&函數語言程式設計函數程式設計
- 程式設計優化之管道資料流程式設計優化
- 資料庫索引的工作原理資料庫索引
- “淘寶” 開放平臺介面設計思路
- 後臺程式設計師如何進階大資料學習?程式設計師大資料
- .net core快速開發平臺,learun自主工作流引擎設計規範
- Mongodb資料的匯出與匯入MongoDB
- Mysql 資料庫匯入與匯出MySql資料庫