源 Sources

源(source)用于从外部系统中读取数据。数据源既可以是无界的流式数据,即流;也可以是有界的批量数据,即表。在规则中使用时,至少有一个源必须为流。

源定义了如何连接到外部资源,然后采用流式方式获取数据。获取数据后,通常源还会根据定义的数据模型进行数据解码和转换。

定义和运行

在 eKuiper 中,定义数据源的流或者表之后,系统实际上只是创建了一个数据源的逻辑定义而非真正物理运行的数据输入。此逻辑定义可在多个规则的 SQL 的 from 子句中使用。只有当使用了该定义的规则启动之后,数据流才会真正运行。

默认情况下,多个规则使用同一个源的情况下,每个规则会启动一个独立的源的运行时,与其他规则中的同名源完全隔离。若多个规则需要使用完全相同的输入数据或者提高性能,源可定义为共享源,从而在多个规则中共享同一个实例。

解码

用户可以在创建源时通过指定 format 属性来定义解码方式。当前只支持 jsonbinary 两种格式。若需要支持其他编码格式,用户需要开发自定义源插件。

数据结构

用户可以像定义关系数据库表结构一样定义数据源的结构。在 eKuiper 的运行时中,数据会根据定义的结构进行验证和类型转换。若输入数据为预处理过的干净数据或者数据结构未知或不固定,用户可不定义数据结构,从而也可以避免数据转换的开销。

流和表

源定义了与外部系统的连接方式。在规则中,根据数据使用逻辑,数据源可作为流或者表使用。 详细信息请参见

更多信息