前言
一直以來,對于邊緣流式計算的需求就沒有停止過,但是受限于邊緣節(jié)點的計算能力,邊緣流式計算一直面臨內(nèi)存壓力、磁盤壓力、作業(yè)管理壓力等諸多挑戰(zhàn)。
2019年11月29日,在Flink Forward Asia 2019大會上,百度正式對外發(fā)布了“基于Apache Flink的邊緣流式計算Creek”。creek很好的解決資源受限的問題,它可以將流式作業(yè)內(nèi)存消耗降低到10M左右,比傳統(tǒng)的流式作業(yè)下降了2個數(shù)量級的資源消耗,使得邊緣設備也可以輕松跑流式作業(yè)。這樣,在不增加邊緣節(jié)點成本的前提下,邊緣節(jié)點增加流式計算的能力,使得邊緣節(jié)點能夠支撐更多、更復雜的業(yè)務場景。
百度智能邊緣BIE也同步實現(xiàn)了與Creek的產(chǎn)品化集成,Creek通過與BIE的集成,能夠?qū)崿F(xiàn)流式計算任務”云端統(tǒng)一定義,統(tǒng)一下發(fā)“,讓流式計算能力真正延伸至各個邊緣節(jié)點。
邊緣流式計算典型應用場景
下面羅列在BIE當中使用邊緣流式計算的兩個典型場景:
數(shù)據(jù)分析師的取數(shù)場景
在數(shù)據(jù)分析場景下,數(shù)據(jù)分析師經(jīng)常使用「10分鐘平均值」或「15分鐘平均值」作為樣本數(shù)據(jù)進行分析,而不會直接使用原始采集數(shù)據(jù)。如果云平臺當中只有原始采集數(shù)據(jù),數(shù)據(jù)分析師通常使用以下幾種方式獲取「10分鐘平均值」:
導出原始數(shù)據(jù),通過數(shù)據(jù)預處理工具獲取10分鐘平均值
云平臺增加流式計算任務,計算10分鐘平均值并實時保存在數(shù)據(jù)庫
通過大數(shù)據(jù)平臺對歷史數(shù)據(jù)執(zhí)行離線任務,計算歷史數(shù)據(jù)的10分鐘平均值并保存在數(shù)據(jù)庫
上述的幾種方案能夠讓數(shù)據(jù)分析師拿到10分鐘平均值,但是成本都很高,也不方便。通過邊緣流式計算可以很好的解決上述問題,邊緣節(jié)點在邊緣側(cè)通過流式計算得到10分鐘平均值,然后上報至云端iothub,經(jīng)由規(guī)則引擎將10min數(shù)據(jù)轉(zhuǎn)存到數(shù)據(jù)庫,可以降低數(shù)據(jù)分析師的取數(shù)難度。
運維人員的實時監(jiān)控場景
在物聯(lián)網(wǎng)場景下,設備測量數(shù)據(jù)因為各種因素(網(wǎng)絡因素、設備自身精度因素)經(jīng)常會出現(xiàn)抖動情況,如果對設備的實時采集值配置閾值告警,經(jīng)常會出現(xiàn)誤告警,導致用戶需要處理大量無用告警,逐漸用戶對告警的準確性失去信心,閾值告警形同虛設。
針對這種場景,用戶可以借助流式計算的能力來降低數(shù)據(jù)抖動帶來的偏差,常見的方案有:
按平均值告警:通過流式計算獲取10分鐘平均值、10分鐘最大值、10分鐘最小值、10分鐘計算樣本數(shù),然后設定閾值規(guī)則,比如“10分鐘平均值>閾值 且 10分鐘計算樣本數(shù)>100”
按持續(xù)時間告警:通過流式計算找出實時采集值一直大于指定閾值且持續(xù)時間很長的設備,比如”設備溫度>100℃ 且 持續(xù)時長>5分鐘”
在網(wǎng)絡不穩(wěn)定的場景下,上述兩種方案如果通過云端流式計算來實現(xiàn),最終得到的計算值準確度不高,比如當設備出現(xiàn)5分鐘無連接的時候,云端再去計算10分鐘平均值,計算的結(jié)果并不準確。而邊緣側(cè)是內(nèi)網(wǎng)環(huán)境,網(wǎng)絡異常的概率大大降低。在邊緣側(cè)將統(tǒng)計值計算好后再上報云端,可以提升流式計算統(tǒng)計結(jié)果的準確性。
邊緣流式計算為客戶帶來的價值
降低成本,包括流量成本、存儲成本、云端流式計算資源成本。
在弱網(wǎng)絡環(huán)境下,提升流式計算結(jié)果的準確性。
嘗試此項功能
如果要嘗試在邊緣節(jié)點上部署流式計算任務,可以登錄百度智能云控制臺,具體操作指南參考:https://cloud.baidu.com/doc/BIE/s/Ok43i486z
BIE與Creek集成的效果
以實時監(jiān)控場景為例,需要通過流式計算獲得temperature的統(tǒng)計值,包括:10分鐘平均值、10分鐘最大值、10分鐘最小值、10分鐘計算樣本數(shù)。我們可以搭建以下模擬實驗場景來進行驗證:
使用模擬器以每秒1條數(shù)據(jù)的頻率,不間斷往邊緣hub發(fā)送模擬數(shù)據(jù)
模擬數(shù)據(jù)的格式為:{“humidity”:6.3426914,”temperature”:11.457714,”timestamp”:1576207523}
云端配置邊緣流式計算任務,計算temperature的統(tǒng)計值,包括:
10分鐘平均值
10分鐘最大值
10分鐘最小值
10分鐘計算樣本數(shù)
下發(fā)邊緣流式計算任務至邊緣核心設備
在邊緣側(cè)驗證流式計算結(jié)果
前面1~4不可以參考操作指南(點擊原文查看)執(zhí)行,現(xiàn)在我們一起來看一下邊緣側(cè)運行流式計算的效果。
啟動mqtt數(shù)據(jù)訂閱工具MQTTBox,訂閱testtopic/update和testtopic/streamdata這兩個topic:
如下圖所示:

testtopic/update:左側(cè)部分數(shù)據(jù),為數(shù)據(jù)模擬器產(chǎn)生的模擬數(shù)據(jù),1秒1條記錄
testtopic/streamdata:右側(cè)部分數(shù)據(jù),為流式計算結(jié)果,包含最大值、最小值、平均值、計算樣本數(shù)。因為是1分鐘統(tǒng)計結(jié)果,所以計算樣本數(shù)剛好是60,與實際相符。
可以在BIE云管套件查看流式計算任務的資源使用情況,發(fā)現(xiàn)內(nèi)存占用在12M左右,相比邊緣流式計算帶來的價值,這點資源使用率上升,是完全值得的。

感興趣的朋友可以在邊緣計算框架baetyl上部署一個flink,然后執(zhí)行相同的作業(yè)任務,查看flink與creek的資源消耗對比。
點擊閱讀原文,查看詳細的使用教程。教程url:https://cloud.baidu.com/doc/BIE/s/Ok43i486z
==============關于BIE ===================
百度智能邊緣(Baidu IntelliEdge)旨在將云計算能力拓展至用戶現(xiàn)場,提供可以臨時離線、低延時的計算服務,包括設備接入、數(shù)據(jù)處理、數(shù)據(jù)上報、流式計算、函數(shù)計算、AI 推斷等功能。
BIE整體包括邊緣本地運行包和云端管理套件兩部分:
本地運行包:本地運行包包含百度開放邊緣框架baetyl,以及基于baetyl框架開放的邊緣應用,實現(xiàn)將云計算能力延伸至邊緣,提供離線自治、低延時的計算服務。
云端管理套件:主要負責邊緣設備節(jié)點的管理,包含設備節(jié)點的監(jiān)控、注冊管理、應用的編排與升級等功能。除此之外,云端套件還負責與百度智能云的其他服務進行集成對接,包括函數(shù)計算CFC,流式計算BSC,端側(cè)模型生成框架EasyEdge等。實現(xiàn)”云管理、邊運行、邊云一體“的整體解決方案。
特別提醒:本網(wǎng)內(nèi)容轉(zhuǎn)載自其他媒體,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,并請自行核實相關內(nèi)容。本站不承擔此類作品侵權行為的直接責任及連帶責任。如若本網(wǎng)有任何內(nèi)容侵犯您的權益,請及時聯(lián)系我們,本站將會在24小時內(nèi)處理完畢。