流批一體技術在數字政府大屏領域的探索和實踐
Labs 導讀
在數字化浪潮的推動下,以政府、工業、金融等為代表的多領域正在全面開展數字化轉型建設,一些應用場景,對數據處理的時效性提出了更高的要求?;诖诵枨?,設計并搭建了數據實時處理分析平臺,該平臺提供基于Flink SQL的數據分析能力,單個SQL語句即可完成數據的采集、計算和傳輸全流程開發,極大降低了用戶使用實時計算能力的門檻,有效提高了實時計算服務的開發效率和質量,助力政府、工業、金融等領域數字化建設。
Part 01 背景
2022年,國務院公開發布了《全國一體化政務大數據體系建設指南》,要求各地區各部門按需建設政務數據實時交換系統,支持海量數據高速傳輸,實現數據分鐘級共享,形成安全穩定、運行高效的數據供應鏈[1]。
傳統的基于CDC[2]的ETL中,數據采集工具是必不可少的,通常使用DataX 和 Sqoop 做全量數據采集,使用 Canal 或 Debezium做增量變更數據采集,采集到的數據傳輸到消息中間件Kafka中,Flink 計算引擎再去實時消費這一部分數據傳輸到?的端,基于此理念,數據采集鏈路長,數據傳輸的時延較高,全量數據和增量變更數據的采集是割裂的兩個階段,此外,需投入更多的時間去維護采集工具和消息隊列,運維成本較高。針對上述數據采集鏈路長、組件維護成本高等問題,設計并搭建了數據實時處理分析平臺,該平臺基于Apache Flink[3]構建,提供基于Flink SQL的數據分析能力,一個Flink SQL即可完成數據的采集、計算和傳輸全流程開發?;贔link CDC[4],可替換傳統ETL中的采集工具和消息隊列,從?簡化數據傳輸鏈路,降低組件維護成本。
Part 02 什么是流批一體
早期時候Apache Flink雖然是一個可以同時支持流處理和批處理的框架,但是它的流處理和批處理的實現,不管是在API層,還是在底層的Shuffle、調度、算子層,都是單獨的兩套,這兩套實現是完全獨立的,沒有特別緊密的關聯。如圖1所示,流批一體早期架構。
在流批一體這一目標的引導下,Apache Flink 現在已經對底層的算子、調度、Shuffle進行了統一的抽象,以統一的方式向上支持 DataStream API 和 Table API兩套接口。DataStream API 是一種比較偏物理層的接口,Table API 是一種 Declearetive 的接口,這兩套接口對流和批來說都是統一的。如圖2所示,流批一體統一架構。
2.1、流批一體架構
圖1 流批一體早期架構
圖2 流批一體統一架構
2.2 流批一體架構優點
- 代碼復用
基于DataStream API和Table API,用戶可以寫同一套代碼來同時處理歷史的數據和實時的數據;
- 易于開發
統一的Connector和算子實現,減少開發和維護的成本;
- 易于學習
減少學習成本,避免學習兩套相似接口;
- 易于維護
使用同一系統支持流作業和批作業,減少維護成本。
Part 03 數據實時處理分析平臺整體架構介紹
該架構自下而上包括數據源層、數據接入層、資源調度層、實時計算平臺、數據存儲層以及數據應用層?;谠摷軜嬁捎行Ы鉀Q海量數據快速傳輸和秒級計算難題,助力政府、工業、金融等領域數字化建設。
圖片
(1)數據源層:該分析平臺可支持采集數據庫中變更的數據,例如,MySQL數據庫中Binlog日志完整記錄了數據變更,因此可以把 Binlog 文件當作流的數據源;此外該分析平臺還支持采集推送至Kafka消息中間件的JSON格式數據。
(2)接入層:該分析平臺通過Connector對接外圍存儲系統,主要包含Flink Connector、Flink CDC Connector和用戶自定義Connector,基于這三類Connector,該分析平臺構建起完備的外圍存儲系統生態。
(3)調度層:該分析平臺可支持基于K8S[4]的作業調度,借助其強大的能力,實現資源的彈性擴縮容,確保不同作業之間相互隔離,互不影響,避免資源爭用搶占,提高作業并行運行的可靠性。
(4)實時計算平臺:該平臺是整個架構中的關鍵組成,其由配置中心、數據開發和運維中心三個核心子模塊共同組成。其中,配置中心模塊主要承擔平臺配置管理工作,數據開發模塊主要承擔作業的開發和提交工作,運維中心模塊主要承擔作業的監控、告警和運維工作。
(5)存儲層:用于存儲作業的計算結果,通過Flink Connector將計算結果輸出到目標端,支持常見的MySQL、PostGreSQL等關系型數據庫,還可支持MPP數據庫Doris及消息中間件Kafka等。
(6)應用層:該分析平臺可以支持各種流式數據分析需求,具備豐富的應用領域和廣闊的使用前景,比如可應用于可視化駕駛艙大屏、物聯網傳感器數據分析等。
Part 04 平臺特性
圖片
數據實時處理分析平臺經過長期的技術積累、業務沉淀,可以總結出以下5大特性:
1.易用的平臺,提供從SQL開發調試到上線下線的運維監控及SQL的查詢執行能力,使數倉建設及數據治理一體化;
2.敏捷的平臺,支持與DevOps協同,一鍵部署線上作業;
3.云化的平臺,支持K8S資源調度,借助其強大的能力,實現資源的彈性擴縮容;
4.安全的平臺,采用多租戶隔離機制,在數據存儲、計算、調度等層面保障用戶數據安全;
5.開放的平臺,擁抱開放的生態,開放的架構。
Part 05 平臺功能介紹
該分析平臺由配置中心、數據開發和運維中心三個核心子模塊共同組成。其中,配置中心模塊主要承擔平臺配置管理工作,數據開發模塊主要承擔作業的開發和提交工作,運維中心模塊主要承擔作業的監控、告警和運維工作;
5.1 概覽頁
圖片
5.2 可視化作業開發
該分析平臺提供基于可視化、沉浸式的作業開發界面,幫助用戶快速的構建SQL作業,具備自動提示、補全、高亮、美化等高級特性,可通過腳本模式去構建SQL作業,這種模式適合高級開發者,也可通過引導模式去構建SQL作業,通過選數據源、維表和目標表一鍵生成SQL作業,顯著提升SQL作業創建效率,還提供標準的SQL語法檢查,幫助用戶快速定位開發過程中碰到的問題,基于以上模式創建的SQL作業,可一鍵提交部署到集群中去,不必關心作業提交細節。
5.2.1 腳本模式創建作業
圖片
5.2.2 引導模式創建作業
圖片
5.2.3 語法校驗
圖片
5.3 作業運維與監控
該分析平臺提供通過Flink Web UI、錯誤日志等實時監控作業的運行狀態,還提供對錯誤作業進行郵件、短信提示,縮短發現作業問題時間,提升問題定位效率,還提供作業的啟動、停止等操作,還支持根據不同位點恢復作業,確保數據不丟失。
5.3.1 作業運維
圖片
5.3.2 作業監控
圖片
5.3.3 作業告警
圖片
Part 06 應用實踐-可視化駕駛艙大屏
在Chrome數字政府建設的第一要素是數據,數據在數字政府建設進程中至關重要,做什么樣的上層應用,呈現什么樣的指標,均需要數據來“說話”。以某市政務服務熱線12345數據為例,通過設計科學的指標體系,整合不同來源數據,基于該分析平臺、大數據分析挖掘和知識圖譜等核心技術,通過實時高效的數據計算與人機交互能力,將核心數據指標實時動態呈現,構建可視化駕駛艙大屏,幫助管理者掌握全局,提高決策的科學性和有效性,如圖3所示,可視化駕駛艙大屏數據流圖。
圖3 可視化駕駛艙大屏數據流圖
6.1 數據源
圍繞數字政府建設要求,某市通過庫表的形式提供了政務服務熱線12345數據,比如業務訴求表,業務評價表等,依據表業務數據,設計科學的指標體系。
6.2 實時計算平臺
該平臺通過Flink CDC技術采集數據庫變更日志,將數據高效的歸集到平臺中存儲,并將這些日志按發生的順序捕獲、解析,形成特定的數據格式,通過對數據的清洗、聚合和關聯等操作,將計算結果實時寫入MPP數據庫Doris中。
6.3 前端可視化展示
前端服務器定期輪詢MPP數據庫Doris中的數據,結合酷炫的可視化組件,實現數據的動態實時呈現,幫助管理者掌握全局,提高決策的科學性和有效性。
Part 07 未來展望
在數據實時處理分析平臺的探索過程中,性能、場景的支持度、穩定性一直是推動我們平臺不斷升級的原動力。未來我們將從以下3個方向進行探索:
首先,實時數倉,湖倉一體探索,基于Flink強大的流批一體能力,去構建實時數倉,湖倉一體體系架構;
其次,Flink與K8S 的深度結合探索,隨著云服務向算力服務的不斷引進,通過K8S的資源調度能力,提升作業運行的穩定性,并能進行大規模運行;
最后,數據高鐵探索,數據高鐵的建設主要是通過歸集模式的提升,從公共數據平臺、各個應用系統里直接拉數據,保證數據的及時性、完整性和準確性。
??參考文獻
[1] 國務院辦公廳關于印發全國一體化政務大數據體系建設指南的通知 https://www.gov.cn/zhengce/content/2022-10/28/content_5722322.htm.
[2] https://blog.csdn.net/qq30211478/article/details/100690948.
[3] Apache Flink 官網 https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/.
[4] Flink CDC 2.0 正式發布,詳解核心改進 https://developer.aliyun.com/article/786600.
[5] K8S:https://kubernetes.io/zh-cn/docs/home/.