需求
将 {租户ID}/{data,resp,ack,cmd, reply}/clientId(雪花Long,19位数字)/一级分类/二级分类 这样的主题转发到 kafka,过滤掉 L2 不符合 data,resp,ack,cmd, reply 这5个值和 payload.messageId 不为 UUID 格式的。
我目前的 SQL 语句如下:
SELECT
timestamp as clientSendAt, username, payload, topic, qos, publish_received_at as brokerReceiveAt, payload.messageId as messageId
FROM
"+/data/+/+/+", "+/resp/+/+/+", "+/ack/+/+/+", "+/cmd/+/+/+", "+/reply/+/+/+"
WHERE
regex_match(payload.messageId, '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$')
问题1: 这个 FROM 是否有更好的写法
问题2: payload 我希望将它处理成标准 json 再发送,但是 QA 说给 payload 起别名会非常影响性能,不知道有没有更好的处理方式?