Overview
eKuiper 1.6.0 provides graph API as an alternative way to create rule in addition to SQL. It is friendly as the backend for a drag and drop UI and also more expressive then SQL. Beside this, we also highlight on enhancing SQL by adding more expressions and functions; on enhancing external connection by supporting protobuf format and enhancing various source/sink.
New Features
- [Schema registry for protobuf](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/rules/codecs.md#schema) by ngjaying (https://github.com/lf-edge/ekuiper/pull/1271)
- [Support protobuf as source/sink data format](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/rules/codecs.md#format) by ngjaying (https://github.com/lf-edge/ekuiper/pull/1274)
- [Config file upload REST api](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/operation/restapi/uploads.md) by ngjaying (https://github.com/lf-edge/ekuiper/pull/1302)
- Support SQL [in expression](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/sqls/query_language_elements.md#where) by ngjaying (https://github.com/lf-edge/ekuiper/pull/1303)
- [Rule graph API](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/rules/graph_rule.md) by ngjaying (https://github.com/lf-edge/ekuiper/pull/1317)
- [Lag function](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/sqls/built-in_functions.md#other-functions) by SuperRxan (https://github.com/lf-edge/ekuiper/pull/1321)
- SQL [between expression](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/sqls/query_language_elements.md#where) by ngjaying (https://github.com/lf-edge/ekuiper/pull/1327)
- SQL [like expression](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/sqls/query_language_elements.md#where) by ngjaying (https://github.com/lf-edge/ekuiper/pull/1327)
- [SQL sink](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/rules/sinks/plugin/sql.md) and [TDEngine sink](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/rules/sinks/plugin/tdengine.md) to support writing array data by SuperRxan (https://github.com/lf-edge/ekuiper/pull/1331)
Improvements
- [Helm chart](https://github.com/lf-edge/ekuiper/tree/1.6.0/deploy/chart/ekuiper): change ekuiper deployment type from stateful set to deployment by brianbinbin (https://github.com/lf-edge/ekuiper/pull/1318)
- Rework [sink cache and resend mechanism](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/rules/sinks/overview.md#caching) by ngjaying (https://github.com/lf-edge/ekuiper/pull/1304)
- [Time window](https://github.com/lf-edge/ekuiper/blob/1.6.0/docs/en_US/sqls/windows.md#time-units) align to nature time by ngjaying (https://github.com/lf-edge/ekuiper/pull/1323)
- Unify rule status response to alwasy return JSON by SuperRxan (https://github.com/lf-edge/ekuiper/pull/1335)
- Upgrade Go vesion to 1.18 by ngjaying (https://github.com/lf-edge/ekuiper/pull/1337)
- Fix order by alias bug by SuperRxan (https://github.com/lf-edge/ekuiper/pull/1299)
- Validate the native plugin in register time by SuperRxan (https://github.com/lf-edge/ekuiper/pull/1301)
- EdgeX and MQTT source: do not exit the rule when disconnected by SuperRxan (https://github.com/lf-edge/ekuiper/pull/1334)
Fixes
- Fix memory leak problem when starting rules multiple times by ngjaying (https://github.com/lf-edge/ekuiper/pull/1309)
- Fix default array properties is null in the meta APIs by SuperRxan (https://github.com/lf-edge/ekuiper/pull/1311)
- Filter must not apply on table before join align in planner by ngjaying (https://github.com/lf-edge/ekuiper/pull/1316)
Docs
- Add Rule grap API description
- Add protobuf scheme upload description
- Add sink cache mechanism description
- Add SQL lag function description
- Add SQL IN/BETWEEN/LIKE clause description
Incompatible changes
During rework of sink cache mechanism, we delete some properties from `etc/kuiper.yaml` and sink properties. Please update your rules which are dependant of these properties and try to migrate to the [new properties](https://ekuiper.org/docs/en/latest/rules/sinks/overview.html#configuration).
Remove from `etc/kuiper.yaml`: cacheThreshold, cacheTriggerCount, disableCache
Remove from sink properties: retryInterval, retryCount, cacheLength, cacheSaveInterval
New Contributors
* brianbinbin made their first contribution in https://github.com/lf-edge/ekuiper/pull/1318
**Full Changelog**: https://github.com/lf-edge/ekuiper/compare/1.5.1...1.6.0