來源:中國電商物流網 發布時間:2020-1-7 9:40
前言
一直以來,對于邊緣流式計算的需求就沒有停止過,但是受限于邊緣節點的計算能力,邊緣流式計算一直面臨內存壓力、磁盤壓力、作業管理壓力等諸多挑戰。
2019年11月29日,在Flink Forward Asia 2019大會上,百度正式對外發布了“基于Apache Flink的邊緣流式計算Creek”。creek很好的解決資源受限的問題,它可以將流式作業內存消耗降低到10M左右,比傳統的流式作業下降了2個數量級的資源消耗,使得邊緣設備也可以輕松跑流式作業。這樣,在不增加邊緣節點成本的前提下,邊緣節點增加流式計算的能力,使得邊緣節點能夠支撐更多、更復雜的業務場景。
百度智能邊緣BIE也同步實現了與Creek的產品化集成,Creek通過與BIE的集成,能夠實現流式計算任務”云端統一定義,統一下發“,讓流式計算能力真正延伸至各個邊緣節點。
邊緣流式計算典型應用場景
下面羅列在BIE當中使用邊緣流式計算的兩個典型場景:
數據分析師的取數場景
在數據分析場景下,數據分析師經常使用「10分鐘平均值」或「15分鐘平均值」作為樣本數據進行分析,而不會直接使用原始采集數據。如果云平臺當中只有原始采集數據,數據分析師通常使用以下幾種方式獲取「10分鐘平均值」:
導出原始數據,通過數據預處理工具獲取10分鐘平均值
云平臺增加流式計算任務,計算10分鐘平均值并實時保存在數據庫
通過大數據平臺對歷史數據執行離線任務,計算歷史數據的10分鐘平均值并保存在數據庫
上述的幾種方案能夠讓數據分析師拿到10分鐘平均值,但是成本都很高,也不方便。通過邊緣流式計算可以很好的解決上述問題,邊緣節點在邊緣側通過流式計算得到10分鐘平均值,然后上報至云端iothub,經由規則引擎將10min數據轉存到數據庫,可以降低數據分析師的取數難度。
運維人員的實時監控場景
在物聯網場景下,設備測量數據因為各種因素(網絡因素、設備自身精度因素)經常會出現抖動情況,如果對設備的實時采集值配置閾值告警,經常會出現誤告警,導致用戶需要處理大量無用告警,逐漸用戶對告警的準確性失去信心,閾值告警形同虛設。
針對這種場景,用戶可以借助流式計算的能力來降低數據抖動帶來的偏差,常見的方案有:
按平均值告警:通過流式計算獲取10分鐘平均值、10分鐘最大值、10分鐘最小值、10分鐘計算樣本數,然后設定閾值規則,比如“10分鐘平均值>閾值 且 10分鐘計算樣本數>100”
按持續時間告警:通過流式計算找出實時采集值一直大于指定閾值且持續時間很長的設備,比如"設備溫度>100℃ 且 持續時長>5分鐘"
在網絡不穩定的場景下,上述兩種方案如果通過云端流式計算來實現,最終得到的計算值準確度不高,比如當設備出現5分鐘無連接的時候,云端再去計算10分鐘平均值,計算的結果并不準確。而邊緣側是內網環境,網絡異常的概率大大降低。在邊緣側將統計值計算好后再上報云端,可以提升流式計算統計結果的準確性。
邊緣流式計算為客戶帶來的價值
降低成本,包括流量成本、存儲成本、云端流式計算資源成本。
在弱網絡環境下,提升流式計算結果的準確性。
嘗試此項功能
如果要嘗試在邊緣節點上部署流式計算任務,可以登錄百度智能云控制臺,具體操作指南參考:https://cloud.baidu.com/doc/BIE/s/Ok43i486z
BIE與Creek集成的效果
以實時監控場景為例,需要通過流式計算獲得temperature的統計值,包括:10分鐘平均值、10分鐘最大值、10分鐘最小值、10分鐘計算樣本數。我們可以搭建以下模擬實驗場景來進行驗證:
使用模擬器以每秒1條數據的頻率,不間斷往邊緣hub發送模擬數據
模擬數據的格式為:{"humidity":6.3426914,"temperature":11.457714,"timestamp":1576207523}
云端配置邊緣流式計算任務,計算temperature的統計值,包括:
10分鐘平均值
10分鐘最大值
10分鐘最小值
10分鐘計算樣本數
下發邊緣流式計算任務至邊緣核心設備
在邊緣側驗證流式計算結果
前面1~4不可以參考操作指南(點擊原文查看)執行,現在我們一起來看一下邊緣側運行流式計算的效果。
啟動mqtt數據訂閱工具MQTTBox,訂閱testtopic/update和testtopic/streamdata這兩個topic:
如下圖所示:
testtopic/update:左側部分數據,為數據模擬器產生的模擬數據,1秒1條記錄
testtopic/streamdata:右側部分數據,為流式計算結果,包含最大值、最小值、平均值、計算樣本數。因為是1分鐘統計結果,所以計算樣本數剛好是60,與實際相符。
可以在BIE云管套件查看流式計算任務的資源使用情況,發現內存占用在12M左右,相比邊緣流式計算帶來的價值,這點資源使用率上升,是完全值得的。
感興趣的朋友可以在邊緣計算框架baetyl上部署一個flink,然后執行相同的作業任務,查看flink與creek的資源消耗對比。
點擊閱讀原文,查看詳細的使用教程。教程url:https://cloud.baidu.com/doc/BIE/s/Ok43i486z
==============關于BIE ===================
百度智能邊緣(Baidu IntelliEdge)旨在將云計算能力拓展至用戶現場,提供可以臨時離線、低延時的計算服務,包括設備接入、數據處理、數據上報、流式計算、函數計算、AI 推斷等功能。
BIE整體包括邊緣本地運行包和云端管理套件兩部分:
本地運行包:本地運行包包含百度開放邊緣框架baetyl,以及基于baetyl框架開放的邊緣應用,實現將云計算能力延伸至邊緣,提供離線自治、低延時的計算服務。
云端管理套件:主要負責邊緣設備節點的管理,包含設備節點的監控、注冊管理、應用的編排與升級等功能。除此之外,云端套件還負責與百度智能云的其他服務進行集成對接,包括函數計算CFC,流式計算BSC,端側模型生成框架EasyEdge等。實現”云管理、邊運行、邊云一體“的整體解決方案。
特別提醒:本網內容轉載自其他媒體,目的在于傳遞更多信息,并不代表本網贊同其觀點。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,并請自行核實相關內容。本站不承擔此類作品侵權行為的直接責任及連帶責任。如若本網有任何內容侵犯您的權益,請及時聯系我們,本站將會在24小時內處理完畢。