StreamX 一站式計算利器在海博科技的生產實踐,助力智慧城市建設

摘要:本文「 StreamX 一站式計算利器在海博科技的生產實踐,助力智慧城市建設 」作者是海博科技大數據架構師王慶煥,主要內容為:

  1. 選擇 StreamX
  2. 快速上手
  3. 應用場景
  4. 功能擴展
  5. 未來期待

海博科技是一家行業(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. 落地實踐

  1. 快速上手

使用 StreamX 完成一個實時匯聚任務就像把大象放進冰箱一樣簡單,僅需三步即可完成:

  • 編輯 SQL


    image.png
  • 上傳依賴包


    image.png
  • 部署運行


    image.png

    僅需上述三步,即可完成 Mysql 到 Elasticsearch 的匯聚任務,大大提升數據接入效率。

  1. 生產實踐

StreamX 在海博主要用于運行實時 Flink SQL任務: 讀取 Kafka 上的數據,進行處理輸出至 Clickhouse 或者 Elasticsearch 中。
從2021年10月開始,公司逐漸將 Flink SQL 任務遷移至 StreamX 平臺來集中管理,承載我司實時物聯數據的匯聚、計算、預警。

截至目前,StreamX 已在多個政府、公安生產環(huán)境進行部署,匯聚處理城市實時物聯數據、人車抓拍數據。以下是在某市專網部署的 StreamX 平臺截圖 :


某市專網部署的 StreamX

03. 應用場景

  1. 實時物聯感知數據匯聚

匯聚實時的物聯感知數據,我們直接使用 StreamX 開發(fā) Flink SQL 任務,針對 Flink SQL 未提供的方法,StreamX 也支持 Udf 相關功能,用戶通過 StreamX 上傳 Udf 包,即可在 SQL 中調用相關 Udf,實現更多復雜的邏輯操作。

“SQL+UDF” 的方式,能夠滿足我們絕大部分的數據匯聚場景,如果后期業(yè)務變動,也只需要在 StreamX 中修改 SQL 語句,即可完成業(yè)務變更與上線。


使用 StreamX + Flink SQL 完成的感知數據匯聚
  1. Flink CDC數據庫同步

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


基于StreamX + Flink CDC 實現數據同步
  1. 數據分析模型管理

針對無法使用 Flink SQL 需要開發(fā) Flink 代碼的任務,例如: 實時布控模型、離線數據分析模型,StreamX 提供了 Custom code 的方式, 允許用戶上傳可執(zhí)行的 Flink Jar 包并運行。

目前,我們已經將人員,車輛等 20 余類分析模型上傳至 StreamX,交由 StreamX 管理運行。


基于 StreamX 管理的各類 Flink 數據分析模型

綜上: 無論是 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ā)者設計的原型圖,敬請期待。

image.png
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容