1. 程式人生 > >基於大資料的能力開放平臺解決方案

基於大資料的能力開放平臺解決方案

某企業經過多年的系統建設和演進,內部系統間存在一些壁壘,通過在運營商的各個內部系統,如經分、VGOP、大資料平臺、集團集市等中構建基於ESB 的能力開放平臺,解決了系統間排程、封閉式開發、資料孤島等系統問題,使得運營商營銷能力和效率大大提高。

問題分析

背景分析

隨著市場發展,傳統的開發模式已經無法滿足業務開發敏捷性的要求。伴隨經營分析需求量激增,開發時限要求縮短,業務迭代優化需求頻繁,原有的“工單-開發”模式平均開發週期為4.5 天,支撐負荷已達到極限。能力開放使業務人員可以更便捷的接觸和使用到資料,釋放業務部門的開發能力。

由於歷史原因,業務支撐系統存在經分、VGOP、大資料平臺、集團集市等多套獨立的運維繫統,缺乏統一的運維管理,造成系統與系統之間的資料交付複雜,無法最大化

的利用系統資源。統一排程的出現能夠充分整合現有排程系統,減少運維工作量,提升維護質量。

驅動力一:程式排程管理混亂,系統資源使用不充分

經分、大資料平臺、VGOP、集團集市平臺各自擁有獨立的排程管理,平臺內程式基本是序列執行,以經分日處理為例,每日執行時間為20 個小時,已經嚴重影響到了指標的彙總展示。

驅動力二:傳統開發模式響應慢,不能滿足敏捷開發需求

大資料平臺已成為一個數據寶庫,已有趨勢表明,只依賴整合商與業務支撐人員的傳統開發模式已經無法快速響應業務部門需求,提升資料價值。

驅動力三:大資料平臺豐富了經分的資料來源,業務部門急待資料開放

某企業建立了面向企業內部所有部門的大資料平臺,大資料平臺整合了接入B域、O 域、網際網路域資料,近100 餘個資料介面,共計820T 的資料逐步投入生產。大資料平臺增強了傳統經分的資料處理的能力,成為公司重要的資產,但是傳統經分資料倉庫的使用者主要面向業支內部人員,限制了資料的使用人員範圍和資料的使用頻度,已經無法滿足公司日益發展的業務需求,資料的開放迫在眉睫。

問題詳解

基於背景情況分析,我們認為主要問題有三個:

1、 缺乏統一的排程管理,維護效率低下

目前經分系統的日處理一般是使用SHELL 指令碼開發的,按照序列排程的思路執行。進行能力開放後,目前的系統架構無法滿足開發者提交的大量程式執行排程的運維需求。如果採用統一排程的設計思路則基於任務的資料表依賴進行任務解耦及排程,將大大簡化排程配置工作和提高系統的併發度;

2、 需求週期長,導致開發週期長

現行的開發模式是由業務部門提出需求,業務支撐中心進行需求分析,然後再轉派給開發廠商。廠商除了需要與業支溝通需求以外,有時候還需要與業務部門進行二次溝通,最終才能明確需求,開發週期比較長;

3、 資料管理分散,存在資料冗餘,營銷效果欠佳

經分系統對外提供資料,目前採用的是傳統的檔案介面形式,這樣會造成經分和外圍系統存在至少2 份的資料,隨著經分的按天支撐模式,造成傳統的營銷效果欠佳,外圍系統的儲存浪費。

解決方案介紹

業務目標

將大資料平臺及經分資料倉庫平臺的資料和系統處理能力進行標準化封裝,按需進行開放,滿足各業務部門資料使用的需求,並在經驗成熟的情況下逐漸開放給外部眾多的合作伙伴使用。

統一排程:作為大資料開放基礎平臺,通過訊息匯流排將大資料平臺、經分、集市、VGOP、業務部門的應用進行統一的系統排程管控,提供跨平臺排程、分發、解析等基礎功能,實現大資料平臺、經分資料倉庫等多型別底層平臺的能力互補,形成融合平臺的協作效應;通過多租戶技術,解決生產任務與資料開放能力爭用的問題,實現系統資源

對生產任務與臨時任務的合理分配及高效排程。

統一開發:整合圖形化的開發介面,通過統一封裝的函式庫提供類SQL 的開發語言,以遮蔽底層平臺差異,降低業務人員的開發門檻,實現快速的業務開發及資料測試。通過元資料的資料模型抽象,逐步將Hadoop、DB2 的後臺資料資源高效、安全並可控可管的開放給前端進行訪問。

資料共享:大資料平臺將使用者標籤、營銷目標、使用者套餐剩餘量等資訊通過統一的資料服務方式開放給其他系統或者線上使用,確保資料的唯一性和資料響應的及時性。

這裡寫圖片描述

方案內容及亮點

圖為基於大資料的能力開放體系架構,我們在原有大資料平臺上進行整合,

使得大資料的成果能夠有效的被外部系統呼叫,並具備標準的服務能力供後續

的系統對接。

能力開放平臺由統一排程、統一開發、資料共享三大平臺組成:

統一排程平臺將原大資料平臺、經分資料倉庫、VGOP 平臺等關聯度高的獨

立應用系統的任務進行統一管理、執行排程及監控,提升整體的執行效率並簡

化運維。

統一開發平臺搭建於統一排程的基礎之上,開發者可以通過IDE 使用封裝後的函式,以SQL 指令碼進行圖形化的資料處理程式設計及開發。通過多租戶的方式,對開發者分配獨立的大資料平臺及資料倉庫的儲存、計算資源,確保開發者在共享資料、系統能力的同時,不影響生產系統的正常執行。

資料共享平臺提供標準API 封裝,提供給外部系統進行資料查詢和呼叫,實現經分系統對外資料服務標準化,同時保障資料安全性並降低外部系統資料儲存壓力。

統一排程

統一排程由控制中心和AGENT 兩部分組成,如下圖所示:

這裡寫圖片描述

(1)控制中心: 控制中心接收來自內部的訊息,通過規則引擎判斷任務是否滿足觸發條件並分發給Agent 進行處理,並對任務執行情況進行監控及訊息生成。

訊息接收:支援各種事件觸發訊息,如檔案到達、介面裝載、表生成;

規則引擎:根據人工定義、系統資源情況、租戶定義等設定制定任務的執行條件及前後依賴關係;

任務觸發:根據訊息匯流排傳遞的訊息,判斷任務是否具備執行條件,並將滿足觸發條件的任務分發至各平臺Agent 端執行;

任務監控:接收來自Agent 的程式執行狀態及資源狀態併產生新的訊息。

(2)AGENT:部署到參與排程的執行平臺,負責任務執行及系統資源、任務狀態收集報告。

任務監聽:輪詢掃描控制中心發出的任務;

任務執行:支援tcl、shell、python、java 等程式,可以手工設定各個執行平臺程序數,支援多程序併發處理;

資源狀態及心跳報告:支援分鐘級和主動資源收集報告,將資源資訊進行反饋。

控制中心實時監控Agent 執行狀態,並進行簡訊告警,防止Agent 掛死。

統一開發

統一開發提供圖形化的開發能力以及統一元資料管理:

(1) IDE 圖形化的開發介面及統一封裝函式庫的整合,如下圖所示:

這裡寫圖片描述

Ø 滿足業務部門自助開發的需求,整合圖形化的開發介面,通過拖拽的方式實現快速資料處理邏輯設計及開發;

Ø 通過JAVA 包對SQL 命令、Hadoop、DB2 執行平臺的系統命令、時間函式、字串函式、聚合函式等基礎函式庫進行統一封裝,遮蔽底層執行平臺的系統差異,實現類SQL 開發語言支援,降低系統的技術門檻;

Ø 前臺提供圖形化開發介面、拖拽式開發方式、統一封裝的函式庫、靈活的指令碼編輯能力對開發過程進行支撐。包含以下功能:檢視元資料、資料模型註冊、資料模型匯入、設計、開發、測試、上線、優化;

Ø 資料處理過程API 分為7 大類:資料輸入(Reader)、資料輸出(Writer)、行集處理(Process)、欄位級處理、流程控制類、資料檢查類、資料交換類,並提供了一套可擴充套件的機制;

Ø 函式編排支援條件分支、迴圈、異常控制等,支援變數讀取、定義,能夠實現複雜場景下的開發;

Ø 資料同步採用開源的Sqoop 來實現大資料平臺和DB2、HBASE 的高效資料同步。

(2) 統一的元資料開放共享與實時更新

為實現公司內部模型及資料的複用,並實現資料資產的編目管理、共享及分級儲存,同時實現資料安全的可控可管,能力開放平臺搭建了元資料管理模組。包含全域性資料字典、程式邏輯等元資料,提供元資料維護、許可權控制等工具實現元資料,整個生命週期的管理。元資料的管理介面如下圖所示:

這裡寫圖片描述

Ø 元資料的自動更新:通過統一開發平臺開發的程式,相關元資料(表、欄位、資料流圖、觸發條件)將自動納入元資料管理,實現元資料的自動更新,併為統一排程平臺提供程式排程觸發訊息;

Ø 元資料的可控開放:為了保障開放資料的安全性,安全管理員要對即將開放的基礎元資料進行逐個審批,只有得到安全管理員審批的基礎資料才能對外開放,從而保障開放資料的安全性。

資料共享

為發揮大資料的價值,通過標準API 封裝的方式為企業內各種實時的業務運營提供資訊支撐,並對外部系統提供統一的資料呼叫介面,具有實時、動態的資訊互動能力。標準的資料開放介面實現資料和應用的解耦、應用和UI 的解耦,有利於各應用系統功能整合。

這裡寫圖片描述

(1)資料層

為實現快速的資料查詢,資料共享平臺採用了HBASE 及Redis 作為資料層。

Ø HBASE:作為分散式的、面向列的開源資料庫,HBASE 在Hadoop 之上提供了大資料的儲存和快速查詢能力。

Ø Redis:作為基於記憶體亦可持久化的日誌型、Key-Value 資料庫,並提供多種語言的API。其查詢速度比HBASE 更高。

(2)封裝層

基於Restful 架構實現API 封裝,使用Nginx 的代理功能,整合後端多個Tomcat伺服器,實現高併發的查詢能力。

內部結構如下:

這裡寫圖片描述

Ø 服務註冊:服務屬性配置:如服務標識、服務名稱、服務描述、服務釋出地址等資訊的配置; 服務引數配置:包括輸入引數、輸出引數、輸出內容等配置。

Ø 服務安全管理:服務認證鑑權是用於鑑別服務請求方是否有服務呼叫許可權;資料交換安全是用於保證服務請求-響應過程中的資料安全;許可權管理是用於確定服務請求方可呼叫的服務許可權。

Ø 認證鑑權:確定服務請求方是否有訪問服務提供方提供的具體服務的功能許可權;對於有功能許可權的服務請求方,還需要再確定其可訪問的具體服務的資料範圍許可權。

Ø 服務運維:服務監控對資料服務的執行狀況提供實時的監控和分析,幫助運維人員及時瞭解資料服務的健康情況。

Ø 查詢響應:負責處理資料和各類資料來源進行互動,獲取查詢結果。資料獲取處理主要包含: 連線相應的資料來源,執行經過模型對映解析的可執行SQL 語句,獲取結果資料。

Ø 通訊協議:通訊協議採用全球公認的WEB SERVICE 標準協議。需求方更容易安全接入系統。

方案預期效果

統一排程方案效果:統一排程集中整合了企業經分系統、大資料平臺、集團集市、VGOP 等應用系統的排程管理,提高了各個平臺程式的併發度,減少重複建設,節約成本近百萬;

統一開發方案效果:目前網際網路中心和信安部已經開始進行客戶體驗工作,統一開發平臺上線之後,需求的開發速度由原來的數十天量級提升到小時內量級實現,資料變現能力得到數倍的增強;

資料共享方案效果:目前某企業已部署基於Redis 的“使用者剩餘流量”實時查詢系統,採用Redis 記憶體資料庫作為記憶體儲存單元;每天分流500 萬以上的查詢需求,同步資料達到秒級;掃描使用者流量檔次變化達到分鐘級,單機支援併發查詢量由原有BOSS系統的300 次每秒提高到5000 次每秒,並支援水平擴充套件。資料共享平臺上線後將進行融合對外提供統一的API 介面查詢服務。