Overview
Kuiper 0.9.0 is a major version that includes the stream state management, KubeEdge device model adoption, EdgeX array type support and TDengine database sink support.
Features & fixes
- [State management function is supported](https://github.com/emqx/kuiper/blob/develop/docs/zh_CN/rules/state_and_fault_tolerance.md). This feature enables Kuiper to implement stream with state:
- Fault tolerant processing is supported. If an unexpected interruption occurs during stream processing, it can be resumed after the rule is restarted;
- Checkpointing is supported, which allows users to implement QoS settings during stream processing, including At-most-once(0), At-least-once(1) and Exactly-once(2);
- By consuming data from the specified offset, users can extend the relevant interface to realize the data source that can re-consume the data, so that it can be recovered offline or when there is an error in stream processing;
- Configurable state persistent storage. The system stores the state in the file system by default, and also supports storing state data in a third-party system, such as Redis;
- The user is supported to call the API provided by Kuiper to realize the storage of custom state data when extending the source, sink and function;
- Access support for [KubeEdge data model](https://github.com/emqx/kuiper/blob/develop/docs/en_US/rules/sources/mqtt.md#kubeedgeversion) is provided, with a tool for automatically issuing configuration files through Kubernetes configmap. Users can use Kuiper to directly support the analysis of device data from KubeEdge;
- [TDengine plug-in](https://github.com/emqx/kuiper/blob/master/docs/en_US/plugins/sinks/taos.md) is added, which can support saving analysis results to TDengine time series database;
- All Chinese documents are translated and synchronized;
- The execution process of FVT in Github Action is optimized, and some unnecessary test processes are deleted;
- `filter` in the window with [support for filtering data](https://github.com/emqx/kuiper/blob/cfbdf6503e7e63e0680d038cb06aece0415f91a0/docs/en_US/sqls/windows.md#filter-window-inputs) can realize the data filtering and window grouping; this function is more important for counting windows: the result of filtering through the WHERE statement and then window grouping will be different;
Thanks
- [chensheng0](https://github.com/emqx/kuiper/commits?author=chensheng0) provides a fix for Kubernetes configmap, which can be integrated with [Baidu Baetyl](https://github.com/baetyl/baetyl) framework.
- [GZJ](https://github.com/emqx/kuiper/commits?author=GZJ) provides a fix that cleans up the site when Kuiper exits.
- [smart33690](https://github.com/smart33690) provided a fix for the [Influxdb sink sample plug-in](https://github.com/emqx/kuiper/blob/master/docs/zh_CN/plugins/sinks/influxdb.md).