摘要:本文「 StreamX 一站式計算利器在海博科技的生產實踐,助力智慧城市建設 」作者是海博科技大數據架構師王慶煥殊鞭,主要內容為:
- 選擇 StreamX
- 快速上手
- 應用場景
- 功能擴展
- 未來期待
海博科技是一家行業(yè)領先的人工智能物聯(lián)網產品和解決方案公司。目前在公共安全权薯、智慧城市嗓化、智慧制造領域,為全國客戶提供包括算法搅方、軟件和硬件產品在內的全棧式整體解決方案比吭。
01. 選擇 StreamX
海博科技自 2020 年開始使用 Flink SQL 匯聚、處理各類實時物聯(lián)數據姨涡。隨著各地市智慧城市建設步伐的加快衩藤,需要匯聚的各類物聯(lián)數據的數據種類、數據量也不斷增加涛漂,導致線上維護的 Flink SQL 任務越來越多赏表,一個專門的能夠管理眾多 Flink SQL 任務的計算平臺成為了迫切的需求。
在體驗對比了 Apache Zeppelin 和 StreamX 之后匈仗,我們選擇了 StreamX 作為公司的實時計算平臺瓢剿。相比 Apache Zeppelin, StreamX 并不出名悠轩。但是在體驗了 StreamX 發(fā)行的初版间狂,閱讀其設計文檔后,我們發(fā)現其基于 一站式 設計的思想火架,能夠覆蓋 Flink 任務開發(fā)的全生命周期鉴象,使得配置忙菠、開發(fā)、部署纺弊、運維全部在一個平臺即可完成牛欢。我們的開發(fā)、運維淆游、測試的同學可以使用 StreamX 協(xié)同工作傍睹,低代碼 + 一站式 的設計思想堅定了我們使用 StreamX 的信心。
02. 落地實踐
- 快速上手
使用 StreamX 完成一個實時匯聚任務就像把大象放進冰箱一樣簡單稽犁,僅需三步即可完成:
-
編輯 SQL
-
上傳依賴包
-
部署運行
僅需上述三步焰望,即可完成 Mysql 到 Elasticsearch 的匯聚任務,大大提升數據接入效率已亥。
- 生產實踐
StreamX 在海博主要用于運行實時 Flink SQL任務: 讀取 Kafka 上的數據熊赖,進行處理輸出至 Clickhouse 或者 Elasticsearch 中。
從2021年10月開始虑椎,公司逐漸將 Flink SQL 任務遷移至 StreamX 平臺來集中管理震鹉,承載我司實時物聯(lián)數據的匯聚、計算捆姜、預警传趾。
截至目前,StreamX 已在多個政府泥技、公安生產環(huán)境進行部署浆兰,匯聚處理城市實時物聯(lián)數據、人車抓拍數據珊豹。以下是在某市專網部署的 StreamX 平臺截圖 :
03. 應用場景
- 實時物聯(lián)感知數據匯聚
匯聚實時的物聯(lián)感知數據簸呈,我們直接使用 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ā)者設計的原型圖,敬請期待劫拢。