Skip to content

数据源 (Source) ​

数据源(Source)用于从外部系统中读取数据。EMQX Neuron 支持将数据源加载为三种模式:流(Stream)、扫描表(Scan Table)、查询表(Lookup Table)。

一般的数据源都可以选择加载为流(Stream),表(包括扫描表和查询表)是保留大量的数据状态的方法,一般用来和流(Stream)结合使用,以应对复杂的处理场景。

提示

在使用规则(Rule)时,至少有一个源必须为流(Stream)。

数据源类型 ​

目前 EMQX Neuron 内置以下数据源类型,以及它们支持的加载模式:

名称描述流扫描表查询表
Neuron从EMQX Neuron的数采模块读取数据✅✅❌
MQTT从 MQTT 主题读取数据✅✅❌
HTTP pull从 HTTP 服务器中拉取数据✅✅❌
HTTP push通过 HTTP 推送数据到 EMQX Neuron✅✅❌
内存从 EMQX Neuron 内存主题读取数据以形成规则流水线✅✅✅
SQL从数据库中查询数据✅✅✅
文件从文件中读取数据✅✅❌
Video从视频流中查询数据✅✅❌
Simulator生成模拟数据供测试✅✅❌
Redis从 Redis 读取数据❌❌✅
CAN从 CAN 总线读取数据✅✅❌
Kafka从 Kafka 读取数据✅❌❌
WebSocket从 WebSocket 读取数据✅✅❌

定义和运行 ​

在 EMQX Neuron 中,在源管理页面创建了流或者表之后,实际上只是创建了一个数据源的逻辑定义而非真正物理运行的数据输入。只有当使用了该数据源的规则启动之后,数据流才会真正运行。

提示

在源管理页面创建的流或者表,可在多个规则的 SQL 的 from 子句中使用。

用户可以在创建 数据源(Source) 时通过指定共享(SHARED)字段来定义是否共享数据源。

数据源解码 ​

用户可以在创建 数据源(Source) 时通过指定流格式字段来定义解码方式。当前支持 json、 binary、protobuf、delimited,如希望使用自定义格式,也可以选择 custom。

提示

数据源进入规则处理前,会先进行解码,解码后的数据会作为规则的输入。

数据结构 ​

EMQX Neuron 支持带结构/无结构的流,默认为无结构。即在 源管理 -> 创建流 时,是否为带结构的流选项不打勾。详见流参数配置。