这个五月,eKuiper 处在 1.6.0 版本新性能开发晚期阶段,产品性能开发次要包含 protobuf 编解码反对。针对用户屡次提出的用拖拽形式编写数据处理规定需要,咱们也在进行原型验证。v1.5.1 的 bug 修复也在进行中,预计于 6 月初公布。

此外,作为边缘流式数据处理软件,eKuiper 还参加了中国信通院发动的《边缘流式数据处理技术能力要求》规范评估,通过后 eKuiper 将成为首个通过此规范认定的产品。

protobuf 编解码反对

目前 source 和 sink 对于编解码的配置属性 format 默认值为 JSON,用户能够通过新增的 protobuf 的选项选用 protobuf 的编解码能力。相比于 JSON,protobuf 编码的数据量更小,有利于节俭云边之间传输的带宽。该性能目前曾经开发实现但尚未公布,用户能够通过边缘源码的 v1.6.0 分支进行试用。

相比于无模式(schema)的 JSON 格局,protobuf 须要定义 proto 文件作为编解码的 schema。在应用 protobuf 格局之前,用户须要先注册 schema,并通过新增的 schemaId 属性,指定编解码选用的 schema。

Schema 治理

应用 REST API 注册,schema 内容可通过文件门路或者文本提供。

// POST /schemas{  "id":"fileName",  "file":"http://myhost/files/abc.proto"}

或者通过文本内容配置:

// POST /schemas{  "id":"schemaName",  "content":"message Person {    required string name = 1;    required int32 id = 2;    optional string email = 3;  }"}

无论何种形式,内容会被存储于 etc/schemas/protobuf。

Sink 中应用 protobuf

  • format,用于指定应用的编码
  • schemaId, 用于指定应用的 schema
{  "mqtt":{    "server":"tcp://127.0.0.1:1883",    "topic": "result",    "format":"protobuf",    "schemaId":"schemaName.Person"    // protobuf的 ID分为两局部,后面为文件名,前面为message名  }}

Source 中应用 protobuf

FORMAT,反对 protobuf

SCHEMA_ID ,用于指定应用的 schema

CREATE STREAM demo() WITH (TYPE="NEURON", FORMAT="protobuf", SCHEMA_ID="schemaName.Person")

可视化拖拽编辑能力

之前 eKuiper 针对流式数据仅反对 SQL 模式编写数据处理规定,有肯定门槛,不不便业务人员直接参与规定编写。为了进一步升高应用门槛,eKuiper 筹备反对以可视化形式拖拽数据处理单元并进行简略编辑配置,最终将多个数据处理单元连接起来主动造成数据处理规定,不便更多人间接应用 eKuiper 进行业务解决。目前这个计划正在原型设计阶段。

行将到来

下个月咱们将欠缺可视化拖拽编辑,并合并到主分支中。另外,eKuiper 将优化 sink 出错之后的缓存机制,实现内存 + 磁盘的离线存储,并在谬误复原后程序重发,以反对网络断开状况下更强的恢复能力,缓存更长时间的数据。

版权申明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/ekuiper-newsletter-202205