EdgeX規則引擎eKuiper

EdgeX 規則引擎eKuiper

一、架構設計

LF Edge eKuiper 是物聯網數據分析和流式計算引擎。它是一個通用的邊緣計算服務或中間件,為資源有限的邊緣網關或設備而設計。

eKuiper 采用 Go 語言編寫,其架構如下圖所示:

eKuiper 是 Golang 實現的輕量級物聯網邊緣分析、流式處理開源軟件,可以運行在各類資源受限的邊緣設備上。eKuiper 基于源 (Source)SQL (業務邏輯處理) 目標 (Sink) 的方式來支持流式數據處理。

  • 源(Source):流式數據的數據源,例如來自于 MQTT 服務器的數據。在 EdgeX 的場景下,數據源就是 EdgeX 消息總線(EdgeX message bus),可以是來自于 ZeroMQ 或者 MQTT 服務器;
  • SQL:SQL 是你流式數據處理指定業務邏輯的地方,eKuiper 提供了 SQL 語句可以對數據進行抽取、過濾和轉換;
  • 目標(Sink):目標用于將分析結果發送到特定的目標。例如,將分析結果發送到另外的 MQTT 服務器,或者一個 HTTP Rest 地址;

使用 eKuiper,一般需要完成以下三個步驟。

  • 創建流,就是你定義數據源的地方
  • 寫規則為數據分析寫 SQL
    • 指定一個保存分析結果的目標
  • 部署,并且運行規則

二、EdgeX集成eKuiper

在不同的微服務之間,EdgeX 使用消息總線進行數據交換。它包含了一個抽象的消息總線接口,并分別實現了 ZeroMQ 與 MQTT,在不同的微服務之間信息交互的支持。eKuiper 和 EdgeX 的集成工作包含了以下三部分,

  • 擴展了一個 EdgeX 消息總線源,支持從 EdgeX 消息總線中接收數據
  • 為了可以分析數據,eKuiper 需知道傳入的數據流的格式。一般來說,用戶最好在創建流的時候指定被分析的流數據的格式。

如下所示,一個 demo 流包含了一個名為 temperature 的字段。這與在關系型數據庫中創建表格定義的時候非常像。在創建了流定義以后,eKuiper 可以在編譯或者運行時對進入的數據進行類型檢查,相應錯誤也會報告給用戶。

CREATE STREAM demo (temperature bigint) WITH (FORMAT="JSON"...)

然而在 EdgeX 中,數據類型定義在 EdgeX event/reading 中已經指定,為了提升使用體驗,用戶可以在創建流的時候不指定數據類型。當接收到來自于消息總線的數據的時候,會根規則轉換為相應的數據類型

  • 擴展支持 EdgeX 消息總線目標(sink),用于將處理結果寫回至 EdgeX 消息總線。用戶也可以選擇將分析結果發送到 eKuiper 之前已經支持的 RestAPI 接口等。

三、使用eKuiper規則引擎控制設備

該章節描述了如何在 EdgeX 中使用 eKuiper 規則引擎,根據分析結果來實現對設備的控制。為了便于理解,該文章使用 device-virtual 示例,它對 device-virtual 服務發送的數據進行分析,然后根據由 eKuiper 規則引擎生成的分析結果來控制設備。

在本文中,將創建并運行以下兩條規則。

  1. 監視 Random-UnsignedInteger-Device 設備的規則,如果 uint8 值大于 20,則向 Random-Boolean-Device 設備發送命令,并開啟布爾值的隨機生成。
  2. 監視 Random-Integer-Device 設備的規則,如果每20秒 int8 的平均值大于0,則向 Random-Boolean-Device

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65013.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65013.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65013.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【AIGC-ChatGPT進階提示詞指令】AI美食助手的設計與實現:Lisp風格系統提示詞分析

引言 在人工智能助手的應用領域中,美食烹飪是一個既專業又貼近生活的方向。本文將詳細分析一個基于Lisp風格編寫的美食助手系統提示詞,探討其結構設計、功能實現以及實際應用效果。 提出你的菜系,為你分析,并生成圖片卡片 提示詞…

智能工廠的設計軟件 應用場景的一個例子:為AI聊天工具添加一個知識系統 之9 重新開始 之2

本文要點 對程序設計而言:前者基于一個自上而下的 分類體系--(生物遺傳基因),后者者需要一個收集差異的自下而上的差異繼承路徑--(系統繼承源流) 就是 廣義和狹義 分類學。 共性對齊 和 差異收集 正是兩者…

MCA:用于圖像識別的深度卷積神經網絡中的多維協同注意力

摘要 大量先前的研究已經表明,注意力機制在提高深度卷積神經網絡(CNNs)性能方面具有巨大潛力。然而,現有的大多數方法要么忽略了在通道和空間維度上同時建模注意力,要么引入了更高的模型復雜度和更重的計算負擔。為了緩解這一困境,本文提出了一種輕量級且高效的多維協同…

halcon中圖像處理及圖像濾波

圖像濾波簡介 圖像濾波的方法主要分為兩大類:空間域方法和頻域方法。 空間域方法是以對圖像的像素直接進行處理為基礎,包括均值濾波、中值濾波、高斯濾波等;頻域方法則是以修改圖像在傅里葉變換空間的值為基礎的,包括高通濾波、低通濾波、同態濾波等。 1.空間域圖像濾波 圖…

【從零開始入門unity游戲開發之——C#篇42】C#補充知識——隨機數(Random)、多種方法實現string字符串拼接、語句的簡寫

文章目錄 一、隨機數1、Random.Next()生成隨機整數示例:生成一個隨機整數生成指定范圍內的隨機整數 2、Random.NextSingle生成隨機浮點數示例:生成隨機浮點數 3、 生成隨機字母或字符示例:生成隨機字母示例:生成隨機小寫字母 二、…

吐卡機開發——指令合集—未來之窗行業應用跨平臺架構

序號指令10A 09 02 01 01 0D DE20A 09 02 02 01 FD DE30A 09 02 03 01 6D DF40A 09 02 04 01 5D DD50A 09 02 05 01 CD DC60A 09 02 06 01 3D DC70A 09 02 07 01 AD DD80A 09 02 08 01 5D D890A 09 02 09 01 CD D9100A 09 02 10 01 5D D2110A 09 02 11 01 CD D3120A 09 02 12 0…

fpga系列 HDL:verilog 常見錯誤與注意事項 位寬不匹配+case 語句中沒有覆蓋所有情況

位寬不匹配問題 信號或操作數的位寬不匹配,可能導致仿真或綜合錯誤。 module top (input wire [3:0] a,output wire [7:0] b );assign b a; endmodulecase 語句中沒有覆蓋所有情況 module top (input wire [1:0] sel,input wire [7:0] a,input wire [7:0] b,in…

Linux中操作中的無痕命令history技巧

當我們需要查看Linux下的操作記錄時,就可以用history命令來查看歷史記錄 1、關閉history記錄功能,如果不想讓別人看到自己在Linux上的操作命令,可以用這個命令 set o history 2、打開history記錄功能 set -o history3、清空記錄 histor…

計算機網絡練習題

學習這么多啦,那就簡單寫幾個選擇題鞏固一下吧! 1. 在IPv4分組各字段中,以下最適合攜帶隱藏信息的是(D) A、源IP地址 B、版本 C、TTL D、標識 2. OSI 參考模型中,數據鏈路層的主要功能是(…

優化租賃小程序提升服務效率與用戶體驗的策略與實踐

內容概要 在這個快速發展的商業環境中,租賃小程序成為了提升服務效率和用戶體驗的重要工具。通過對用戶需求的深入挖掘,我們發現他們對于功能的便捷性、響應速度和界面的友好性有著極高的期待。因此,針對這些需求,完善租賃小程序…

【數據結構】樹鏈刨分

1 u v k,修改路徑上節點權值,將節點 uu 和節點 vv 之間路徑上的所有節點(包括這兩個節點)的權值增加 kk。2 u k,修改子樹上節點權值,將以節點 uu 為根的子樹上的所有節點的權值增加 kk。3 u v,詢…

pandas.Grouper() 在實際項目中非常有用,尤其是在處理時間序列數據、財務數據或多級索引數據時

pandas.Grouper() 在實際項目中非常有用,尤其是在處理時間序列數據、財務數據或多級索引數據時。以下是幾個實際場景的例子,展示了如何使用 pandas.Grouper() 進行數據分組,并用數值示例說明。 1. 按月分組進行銷售數據匯總 場景&#xff1…

private static final Logger log = LoggerFactory.getLogger()和@Slf4j的區別

一、代碼方面 - private static final Logger log LoggerFactory.getLogger()方式 詳細解釋 這是一種傳統的獲取日志記錄器(Logger)的方式。LoggerFactory是日志框架(如 Log4j、Logback 等)提供的工廠類,用于創建Lo…

醫療數倉Hive安裝部署

Hive安裝部署 Hive安裝部署 1)把hive-3.1.3.tar.gz上傳到linux的/opt/software目錄下 2)解壓hive-3.1.3.tar.gz到/opt/module/目錄下面 [atguiguhadoop102 software]$ tar -zxvf /opt/software/hive-3.1.3.tar.gz -C /opt/module/3)修改hive…

通俗易懂的講一下Vue的雙向綁定和React的單向綁定

1.Vue 的雙向綁定&#xff1a; <template><!-- 輸入框和數據自動綁定&#xff0c;就像連體嬰兒&#xff0c;一個動另一個也動 --><input v-model"message"><p>{{ message }}</p><!-- 完整表單示例 --><form><!-- 所有…

使用setup.py打包 HuggingFace PEFT 項目詳解:pip install peft的幕后流程

使用 setup.py 打包 HuggingFace PEFT 項目詳解 Source: https://github.com/huggingface/peft/blob/main/setup.py 1. 項目簡介 HuggingFace 的 PEFT&#xff08;Parameter-Efficient Fine-Tuning&#xff09;庫是一個用于高效參數微調的 Python 工具包&#xff0c;支持多種…

BP神經網絡的反向傳播算法

BP神經網絡&#xff08;Backpropagation Neural Network&#xff09;是一種常用的多層前饋神經網絡&#xff0c;通過反向傳播算法進行訓練。反向傳播算法的核心思想是通過計算損失函數對每個權重的偏導數&#xff0c;從而調整權重&#xff0c;使得網絡的預測輸出與真實輸出之間…

線程池的創建規范

第1章&#xff1a;引言——為什么使用線程池&#xff1f; 1.1 線程池的概念 線程池是一個容器&#xff0c;用來管理多個工作線程&#xff0c;它通過對線程的管理、復用來提高系統性能。線程池的核心理念是將線程的創建、銷毀、復用等操作交給線程池來管理&#xff0c;避免了頻…

【藍橋杯比賽-C++組-經典題目匯總】

1. 最短路 題目描述&#xff1a; 如下圖所示&#xff0c;G是一個無向圖&#xff0c;其中藍色邊的長度是1、橘色邊的長度是2、綠色邊的長度是3。 則從 A 到 S 的最短距離是多少&#xff1f; #include <iostream> #include <cstring> using namespace std; const i…

活動預告 | Microsoft 安全在線技術公開課:通過擴展檢測和響應抵御威脅

課程介紹 通過 Microsoft Learn 免費參加 Microsoft 安全在線技術公開課&#xff0c;掌握創造新機遇所需的技能&#xff0c;加快對 Microsoft Cloud 技術的了解。參加我們舉辦的“通過擴展檢測和響應抵御威脅”技術公開課活動&#xff0c;了解如何更好地在 Microsoft 365 Defen…