EMQ X 规则引擎使用出现 select_and_transform_error 错误
EMQ X v3.4.0 升级后使用规则引擎出现 select_and_transform_error
错误,原因是官方移除了 JSON Payload 自动解码。
以后必须强制 json_decode(payload) as payload
这种写法,不能直接 payload.msg
这样了:
之前:
SELECT |
v 3.4.0 之后
SELECT |
json_decode 就是一个 SQL 函数,推测是为了兼顾性能再没法保证用户的 payload 一定是 JSON 时,每次 try catch 自动解码浪费性能,所以移除了直接的 payload.x
语法。
不过更多原因,笔者猜测这个功能也是为了兼容消息编解码(Schema Registy)。
https://docs.emqx.io/tutorial/v3/cn/rule_engine/schema_register.html