嗨,我创建了一个流,其中包含主题中的以下值,
“id varchar,src\u ip varchar,message varchar”
现在我需要查看失败的登录是否在给定时间内重复超过3次,然后发出警报。所以我创建了一个如下表,
CREATE TABLE 231_console_failure AS \
SELECT src_ip, count(*) \
FROM console_failure \
WINDOW TUMBLING (SIZE 30 SECONDS) \
WHERE message = 'failed_login' \
GROUP BY src_ip \
HAVING count(*) > 3;
现在,当我使用python脚本作为'231\u console\u failure'从主题中使用时,如果没有匹配项,则会连续得到一个none
当有一个匹配,即在30秒内超过3,则给出该值。但是假设30秒内有10次尝试,那么消费者将获取7条消息,每条消息的计数从4到10不等。
我知道我可以在脚本中通过避免“无”来处理这个问题,并且在给定的时间内只进行更高的计数。但是有没有办法从上面的表中创建一个流,它在ksql中只有与groupby匹配的消息?
1条答案
按热度按时间jgwigjjp1#
这在ksql中目前是不可能的,但是如果您想升级/跟踪它,会打开一个增强请求:https://github.com/confluentinc/ksql/issues/1030
现在,根据相同的票,你可以尝试
cache.max.bytes.buffering
以及commit.interval.ms
改变聚合的频率。