所以本质上我想按两列分组,如下所示:
CREATE TABLE foo AS
SELECT a, b, SUM(a)
FROM whatever
GROUP BY a, b
Run Code Online (Sandbox Code Playgroud)
whatever是Kafka格式的流。当我发出命令时,ksql 返回:
Key format does not support schema.
format: KAFKA
schema: Persistence{columns=[`a` STRING KEY, `b` STRING KEY], features=[]}
reason: The 'KAFKA' format only supports a single field. Got: [`a` STRING KEY, `b` STRING KEY]
Caused by: The 'KAFKA' format only supports a single field. Got: [`DEVICE`
a KEY, `b` STRING KEY]
Run Code Online (Sandbox Code Playgroud)
问题是Kafka格式不支持多列键。有没有办法解决这个问题,例如在此表中创建一个人工密钥?我没能做到这一点。
我看到有人发布了类似的问题,答案似乎有效。我认为这是因为格式的原因。/sf/answers/3513526761/
该文档提到多列聚合可能不起作用,但也说 ksql 做了一个后台解决方法以使其起作用。不幸的是 ksql 只返回给定的错误消息。https://www.confluence.de/blog/ksqldb-0-10-updates-key-columns/#multi-column-aggregations
有趣的是,省略第一行是CREATE TABLE foo …