Реализация нескольких правил для данных в Java - PullRequest
0 голосов
/ 11 сентября 2018

Мне нужно реализовать множество правил для данных, которые я получаю ежедневно.

Данные будут содержать информацию о действиях пользователя, например, кто-то нажимает на рекламу.Мы хотим игнорировать некоторые клики в соответствии с правилами, такими как

- 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?Есть ли какой-нибудь источник ope, который мы можем использовать?

Спасибо

1 Ответ

0 голосов
/ 11 сентября 2018

Это зависит от скорости поступления данных и других факторов, описанных в Что такое большие данные?

Поскольку данные о последних часах хранятся в памяти не болееЯ бы посоветовал вам взглянуть на Apache Spark .Если данные намного больше и вычисления не должны выполняться в реальном времени, вы также можете посмотреть на Hadoop .И Spark, и Hadoop хорошо работают с файлами.

Вы также можете передавать данные и использовать Kafka Streams для выполнения всех этих манипуляций.

Узнайте больше о больших данных и васчувствую, что ваши данные не такие «большие», и вы также можете использовать базу данных, я бы посоветовал вам упростить задачу, прочитать данные за последние «х» часов из базы данных и выполнить вычисления.

Что касается шаблона проектирования Java для проверки ваших кликов, вы можете посмотреть шаблон Chain of Responsibility .

PS: - Я не архитектор, вы можете посмотреть другие ответы.Этот ответ просто для того, чтобы дать вам некоторые рекомендации о том, какие технологии доступны.

...