溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

發(fā)布時(shí)間:2021-12-06 17:05:02 來(lái)源:億速云 閱讀:161 作者:柒染 欄目:云計(jì)算

本篇文章給大家分享的是有關(guān)KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

KubeEdge 是一個(gè)開(kāi)源的邊緣計(jì)算平臺(tái),它在Kubernetes原生的容器編排和調(diào)度能力之上,擴(kuò)展實(shí)現(xiàn)了 云邊協(xié)同、計(jì)算下沉、海量邊緣設(shè)備管理、邊緣自治等能力。KubeEdge還將通過(guò)插件的形式支持5G MEC、AI云邊協(xié)同等場(chǎng)景,目前在很多領(lǐng)域都已落地應(yīng)用。

在邊緣的流失處理產(chǎn)品Kuiper

Kuiper是從2019年初開(kāi)始做的,在2019年10月份,發(fā)布了第一個(gè)版本,一直持續(xù)迭代到現(xiàn)在,它的整個(gè)架構(gòu)是一個(gè)比較經(jīng)典的流式處理架構(gòu)。

產(chǎn)品設(shè)計(jì)目標(biāo):在云端運(yùn)行的流式處理,像Spark與Flink可以運(yùn)行在邊緣端

Kuiper架構(gòu)圖

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

整體架構(gòu)可分為3部分,左側(cè)為sources,代表數(shù)據(jù)來(lái)源的位置,數(shù)據(jù)來(lái)源可能是KubeEdge里面有個(gè)邊緣端的MQTT macOS broker,也可能是文件、窗口、數(shù)據(jù)庫(kù);

右側(cè)為Sinks,代表數(shù)據(jù)處理完成后所要存儲(chǔ)的位置,也就是目標(biāo)系統(tǒng),目標(biāo)可以是MQTT,可以將其存到文件、數(shù)據(jù)庫(kù)里面,也可以調(diào)用HTTP service;

中間部分分成了這幾層,最上層為數(shù)據(jù)業(yè)務(wù)邏輯處理,這個(gè)層面提供了SQL statement、Rule Parser,SQL processors進(jìn)行處理后并將其轉(zhuǎn)化成SQL plan;下面層為Streaming runtime和SQL runtime, 運(yùn)行最終執(zhí)行出來(lái)的 plan;最底層為storage,用來(lái)存儲(chǔ)有些消息流出。

Kuiper使用場(chǎng)景

流式處理:實(shí)現(xiàn)在邊緣端的實(shí)時(shí)流式處理

規(guī)則引擎:靈活定義規(guī)則引擎,實(shí)現(xiàn)告警和消息轉(zhuǎn)發(fā)

數(shù)據(jù)格式與協(xié)議轉(zhuǎn)換:實(shí)現(xiàn)邊緣與云端不同類(lèi)型的數(shù)據(jù)格式與異構(gòu)協(xié)議之間靈活轉(zhuǎn)換,實(shí)現(xiàn)IT&OT融合

KubeEdge與Kuiper集成

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

部分架構(gòu)圖

Kuiper是裝在 KubeEdge MQTT Broker后面,整個(gè)都運(yùn)行在邊緣端,底下為不同的Mapper,也就是接入各種各樣不同的協(xié)議。邊緣MQTT Broker用來(lái)交換消息。

數(shù)據(jù)處理的類(lèi)型:

從設(shè)備模型文件定義中獲取類(lèi)型定義

將數(shù)據(jù)轉(zhuǎn)換為Kuiper的數(shù)據(jù)類(lèi)型

創(chuàng)建流時(shí),可使用schema-less流定義

支持的數(shù)據(jù)類(lèi)型有int、string、bool、float

KubeEdge模型文件和配置

下圖為部分配置文件,包括設(shè)備的名稱(chēng)、屬性、name、data type、Description等。

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

部分配置文件

保存設(shè)備模型文件

在ect/mqtt_source.yaml中配置模型文件信息

  1. KubeEdgeVersion:目前未使用,為適配將來(lái)不同的版本模型文件預(yù)留

  2. KubeEdgeModelFile:模型文件路徑

通過(guò)config-map下發(fā)配置,保存到相關(guān)目錄下

Kuiper使用過(guò)程

1)定義流:類(lèi)似余數(shù)據(jù)庫(kù)中表格的定義

DATASOURCE=”$hw/events/device/+/twin/update”為KubeEdge里定義好的topic

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

2)定義并提交規(guī)則

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

用SQL實(shí)現(xiàn)業(yè)務(wù)邏輯,并將運(yùn)行結(jié)果發(fā)送到指定目標(biāo)

支持的SQL

SELECT/FROM/WHERE/ORDER

JOIN/GROUP/HAVING

4類(lèi)時(shí)間窗口+1個(gè)計(jì)數(shù)窗口

60+SQL函數(shù)

3)運(yùn)行

KubeEdge中部署Kuiper規(guī)則

1)運(yùn)用Kuiper-Kubernetes-tool

2)該程序?yàn)橐粋€(gè)工具類(lèi),單獨(dú)運(yùn)行在容器中,執(zhí)行通過(guò)config-map下發(fā)的命令配置文件

配置文件中用于指定kuiper服務(wù)所在的地址和端口等信息

命令文件所在的目錄

3)通過(guò)config-map下發(fā)命令執(zhí)行文件,該工具定期自動(dòng)掃描文件,然后執(zhí)行命令

Kuiper manager-云邊協(xié)同管理控制臺(tái)

另外一種方式是通過(guò)管理控制臺(tái)來(lái)管理很多Kuiper節(jié)點(diǎn),因?yàn)镵uiper可以運(yùn)行在很多節(jié)點(diǎn)上。

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

比如Kuiper可以運(yùn)行在車(chē)聯(lián)網(wǎng)的盒子里面,車(chē)聯(lián)網(wǎng)有很多車(chē),可以通過(guò)Kuiper-manager把所有的實(shí)例都接入進(jìn)來(lái),統(tǒng)一對(duì)其進(jìn)行規(guī)則更新。

第一步是安裝插件,我們提供了一些插件的知識(shí),比如要接入不同的源,如果我們這邊的源不支持,則可以自己寫(xiě)個(gè)插件,將插件進(jìn)行安裝,安裝上去之后我們提供安卓插件界面,就可以使用了。

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

接下來(lái)為創(chuàng)建流定義

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

下圖為數(shù)據(jù)存儲(chǔ)的位置,下圖所示為將數(shù)據(jù)保存到文件系統(tǒng),進(jìn)行路徑的指定。

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

下圖為可視化的編輯界面,可以進(jìn)行規(guī)則的編寫(xiě)。

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

應(yīng)用案例:國(guó)家工業(yè)互聯(lián)網(wǎng)大數(shù)據(jù)中心

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

該案例是一個(gè)非常典型的使用場(chǎng)景。K8s+CloudCore部署在云端,將規(guī)則通過(guò)管理通道下放到Kuiper,Kuiper的位置是放在MQTT broker,會(huì)將數(shù)據(jù)定義,實(shí)現(xiàn)數(shù)據(jù)的清洗。目前通道有兩條,第一條是將處理完的消息發(fā)往Cloud MQTT broker,第二條通道比如本地要做數(shù)據(jù)持久化,可將其存到Influxdb這個(gè)持續(xù)數(shù)據(jù)庫(kù),我們?cè)谶吘壈l(fā)生的一些第三方應(yīng)用可以直接去調(diào)Influxdb里面的數(shù)據(jù),做一些展示可視化等。底層是通過(guò)Mapper把不同的數(shù)據(jù)給接上來(lái)。

Kuiper里規(guī)則引擎的使用場(chǎng)景

LF EdgeX Foundry內(nèi)置規(guī)則引擎,于2020年4月Geneva版本中已經(jīng)正式發(fā)布。

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

應(yīng)用案例:異構(gòu)系統(tǒng)對(duì)接數(shù)據(jù)格式轉(zhuǎn)換

實(shí)現(xiàn)與ERP、MES等IT系統(tǒng)數(shù)據(jù)交換,我們提供了一個(gè)非常靈活的擴(kuò)展能力,包括異構(gòu)數(shù)據(jù)通過(guò)擴(kuò)展插件采集后,可以利用SQL內(nèi)置函數(shù)或者擴(kuò)展函數(shù)進(jìn)行快速、靈活處理;第二點(diǎn)是拿到數(shù)據(jù)處理結(jié)果后,通過(guò)sink的數(shù)據(jù)模板可以對(duì)分析結(jié)果進(jìn)行轉(zhuǎn)換,靈活適配各類(lèi)目標(biāo)系統(tǒng)所需的數(shù)據(jù)格式和協(xié)議,比如同樣一條溫度大于30度的規(guī)則,如果要去發(fā)送控制設(shè)備的指令,并且要發(fā)到微信上。這兩個(gè)不同的目標(biāo)系統(tǒng),它所需要的接口和數(shù)據(jù)是不一樣的,但對(duì)于這個(gè)規(guī)則是一樣的,那么可以在 data里面,根據(jù)同一條規(guī)則觸發(fā)兩個(gè)不同的操作,你可以指定不同的 topic,數(shù)據(jù)即可發(fā)送,不需再進(jìn)行復(fù)雜的編程;第三點(diǎn)是利用SAP NetWeaver RFC SDK,實(shí)現(xiàn)從SAP中讀取數(shù)據(jù),處理并轉(zhuǎn)換后發(fā)送到別的異構(gòu)系統(tǒng)。

性能數(shù)據(jù)

Kuiper 支持并發(fā)運(yùn)行數(shù)千條規(guī)則

8000規(guī)則*0.1消息/秒/規(guī)則,共計(jì)的TPS為800條/秒

規(guī)則定義

源:MQTT

SQL:select temperature from source where temperature>20(90%數(shù)據(jù)被過(guò)濾)

目標(biāo):日志

配置

AWS:2core*4GB

Ubuntu

資源使用

Memory:89%~72%;0.4MB/rule

GPU:25%

AWS t2.micro 配置10k+/s消息吞吐

KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的

以上就是KubeEdge和Kuiper解決邊緣流式數(shù)據(jù)處理是怎樣的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI