在Java中实现给定数据的多个规则

问题描述 投票:-1回答:1

我需要对我每天收到的数据实施大量规则。

数据将包含有关用户操作的信息,例如某人点击广告。我们希望忽略一些基于规则的点击

- anyone clicking the same ad more than 4 times in a minute --> ignore all clicks 4th onwards
- anyone clicking the same ad more than 4 times in an hour --> ignore all clicks 4th onwards
- anyone clicking different ads more than 10 times in a minute --> ignore all clicks for that user

每次点击都会有数据。例:

User_ID AD_ID  CLICK_TIME
User1   ad1    2018-09-11 11:10:00
User1   ad1    2018-09-11 11:10:01
User1   ad1    2018-09-11 11:10:02
User1   ad1    2018-09-11 11:10:03
User1   ad1    2018-09-11 11:10:04
User1   ad1    2018-09-11 11:10:05

由于数据量很大,每条规则都需要数据聚合,然后检查计数。数据将以文件形式提供。

我可以知道在Java中实现这些规则的最佳方法是什么?我们可以使用任何操作源吗?

谢谢

java spring rules rule-engine
1个回答
0
投票

它取决于流入的数据的速度和What is Big Data?中描述的其他因素

由于你最多需要最后几个小时的内存数据,我建议你看看Apache Spark。如果数据更大并且计算不需要实时,您还可以查看Hadoop。 Spark和Hadoop都可以很好地处理文件。

您还可以流式传输数据并使用Kafka Streams执行所有这些操作。

阅读有关大数据的更多信息,您觉得您的数据不是那么“大”,您也可以使用数据库,我建议您保持简单并从数据库中读取最后'x'小时数据并进行计算。

对于点击验证的Java设计模式,您可以查看Chain of Responsibility模式。

PS: - 我不是建筑师,你可能想看看其他答案。这个答案只是为您提供有关哪些技术可用的指导。

© www.soinside.com 2019 - 2024. All rights reserved.