对 Java 中的给定数据实施多个规则
Implementing multiple rules on given data in Java
我需要对每天收到的数据实施大量规则。
数据将包含有关用户操作的信息,例如有人点击广告。我们想忽略一些基于
等规则的点击
- 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 中实施此类规则的最佳方法是什么吗?有没有我们可以使用的开源软件?
谢谢
这取决于数据流入的速度和What is Big Data?
中描述的其他因素
因为你最多只需要内存中最近几个小时的数据,我建议你看看Apache Spark。如果数据比较大,不需要实时计算,也可以看看Hadoop。
Spark 和 Hadoop 都可以很好地处理文件。
您还可以流式传输数据并使用 Kafka Streams 执行所有这些操作。
多看大数据,感觉自己的数据不是那么好"big",也可以用数据库,建议大家简单点,看最后一篇'x'来自数据库的小时数据并进行计算。
至于点击验证的 Java 设计模式,您可以查看 Chain of Responsibility 模式。
PS:- 我不是架构师,你可能想看看其他答案。此答案只是为您提供一些可用技术的指导。
我需要对每天收到的数据实施大量规则。
数据将包含有关用户操作的信息,例如有人点击广告。我们想忽略一些基于
等规则的点击- 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 中实施此类规则的最佳方法是什么吗?有没有我们可以使用的开源软件?
谢谢
这取决于数据流入的速度和What is Big Data?
中描述的其他因素因为你最多只需要内存中最近几个小时的数据,我建议你看看Apache Spark。如果数据比较大,不需要实时计算,也可以看看Hadoop。 Spark 和 Hadoop 都可以很好地处理文件。
您还可以流式传输数据并使用 Kafka Streams 执行所有这些操作。
多看大数据,感觉自己的数据不是那么好"big",也可以用数据库,建议大家简单点,看最后一篇'x'来自数据库的小时数据并进行计算。
至于点击验证的 Java 设计模式,您可以查看 Chain of Responsibility 模式。
PS:- 我不是架构师,你可能想看看其他答案。此答案只是为您提供一些可用技术的指导。