我使用siddhi v4.1.10来创建长时间运行的java独立应用程序,该应用程序将处理来自多个文件的数据,聚合数据并将结果发送到message broker。大约有
每天90 GB的文件
拥有1.3亿条记录(每分钟多达10万个事件)。从文件recod创建的每个事件大约有30个字段。
例如:
定义流文件流(time-double、user\u-ip-string、status-string、bytes-int、http\u-method-string、url-string、duration-int等);
应用程序应该能够运行
数百个查询
根据日志文件中的时间,将数据聚合为1min、5min、10min批次。
例如:
从FileStream#窗口。externalTimeBatch(时间,60秒)
选择时间、account\u id、status\u code、sum(bytes)AS bytes、count(requests)AS requests GROUP BY account\u id、status\u code、time insert into rabbtmqstream
问题是批处理窗口会将事件保留在内存中,直到时间结束。但我需要一个系统,它可以在一段时间内聚合事件,而不在内存中保留任何事件。siddhi有可能吗?
我考虑过OutputTaleLimiter,但不可能扩展它。
请告知。