摘要:本文「 StreamX 一站式計算利器在海博科技的生產實踐,助力智慧城市建設 」作者是海博科技大數據架構師王慶煥,主要內容為:
- 選擇 StreamX
- 快速上手
- 應用場景
- 功能擴展
- 未來期待
海博科技是一家行業(yè)領先的人工智能物聯網產品和解決方案公司。目前在公共安全、智慧城市、智慧制造領域,為全國客戶提供包括算法、軟件和硬件產品在內的全棧式整體解決方案。
01. 選擇 StreamX
海博科技自 2020 年開始使用 Flink SQL 匯聚、處理各類實時物聯數據。隨著各地市智慧城市建設步伐的加快,需要匯聚的各類物聯數據的數據種類、數據量也不斷增加,導致線上維護的 Flink SQL 任務越來越多,一個專門的能夠管理眾多 Flink SQL 任務的計算平臺成為了迫切的需求。
在體驗對比了 Apache Zeppelin 和 StreamX 之后,我們選擇了 StreamX 作為公司的實時計算平臺。相比 Apache Zeppelin, StreamX 并不出名。但是在體驗了 StreamX 發(fā)行的初版,閱讀其設計文檔后,我們發(fā)現其基于 一站式 設計的思想,能夠覆蓋 Flink 任務開發(fā)的全生命周期,使得配置、開發(fā)、部署、運維全部在一個平臺即可完成。我們的開發(fā)、運維、測試的同學可以使用 StreamX 協(xié)同工作,低代碼 + 一站式 的設計思想堅定了我們使用 StreamX 的信心。
02. 落地實踐
- 快速上手
使用 StreamX 完成一個實時匯聚任務就像把大象放進冰箱一樣簡單,僅需三步即可完成:
-
編輯 SQL
image.png -
上傳依賴包
image.png -
部署運行
image.png
僅需上述三步,即可完成 Mysql 到 Elasticsearch 的匯聚任務,大大提升數據接入效率。
- 生產實踐
StreamX 在海博主要用于運行實時 Flink SQL任務: 讀取 Kafka 上的數據,進行處理輸出至 Clickhouse 或者 Elasticsearch 中。
從2021年10月開始,公司逐漸將 Flink SQL 任務遷移至 StreamX 平臺來集中管理,承載我司實時物聯數據的匯聚、計算、預警。
截至目前,StreamX 已在多個政府、公安生產環(huán)境進行部署,匯聚處理城市實時物聯數據、人車抓拍數據。以下是在某市專網部署的 StreamX 平臺截圖 :

03. 應用場景
- 實時物聯感知數據匯聚
匯聚實時的物聯感知數據,我們直接使用 StreamX 開發(fā) Flink SQL 任務,針對 Flink SQL 未提供的方法,StreamX 也支持 Udf 相關功能,用戶通過 StreamX 上傳 Udf 包,即可在 SQL 中調用相關 Udf,實現更多復雜的邏輯操作。
“SQL+UDF” 的方式,能夠滿足我們絕大部分的數據匯聚場景,如果后期業(yè)務變動,也只需要在 StreamX 中修改 SQL 語句,即可完成業(yè)務變更與上線。

- Flink CDC數據庫同步
為了實現各類數據庫與數據倉庫之前的同步,我們使用 StreamX 開發(fā) Flink CDC SQL 任務。借助于 Flink CDC 的能力,實現了 Oracle 與 Oracle 之間的數據同步, Mysql/Postgresql 與 Clickhouse 之間的數據同步。

- 數據分析模型管理
針對無法使用 Flink SQL 需要開發(fā) Flink 代碼的任務,例如: 實時布控模型、離線數據分析模型,StreamX 提供了 Custom code 的方式, 允許用戶上傳可執(zhí)行的 Flink Jar 包并運行。
目前,我們已經將人員,車輛等 20 余類分析模型上傳至 StreamX,交由 StreamX 管理運行。

綜上: 無論是 Flink SQL 任務還是 Custome code 任務,StreamX 均提供了很好的支持,滿足各種不同的業(yè)務場景。 但是 StreamX 缺少任務調度的能力,如果你需要定期調度任務, StreamX 目前無法滿足。社區(qū)成員正在努力開發(fā)調度相關的模塊,在即將發(fā)布的 1.2.3 中 會支持任務調度功能,敬請期待。
04. 功能擴展
Datahub 是 Linkedin 開發(fā)的一個元數據管理平臺,提供了數據源管理、數據血緣、數據質量檢查等功能。海博科技基于 StreamX 和 Datahub 進行了二次開發(fā),實現了數據表級/字段級的血緣功能。通過數據血緣功能,幫助用戶檢查 Flink SQL 的字段血緣關系。并將血緣關系保存至Linkedin/Datahub 元數據管理平臺。
05. 未來期待
目前,StreamX 社區(qū)的 Roadmap 顯示 StreamX 1.3.0將迎來全新的 Workbench 體驗、統(tǒng)一的資源管理中心 (JAR / UDF / Connectors 統(tǒng)一管理)、批量任務調度等功能。這也是我們非常期待的幾個全新功能。
Workbench 將使用全新的工作臺式的 SQL 開發(fā)風格,選擇數據源即可生成 SQL,進一步提升 Flink 任務開發(fā)效率。統(tǒng)一的 UDF 資源中心將解決當前每個任務都要上傳依賴包的問題。批量任務調度功能將解決當前 StreamX 無法調度任務的遺憾。
下圖是 StreamX 開發(fā)者設計的原型圖,敬請期待。



