У нас есть два разных требования: -
Система, которая регистрирует 21 тип событий, инициированных пользователем, и ищет их в течение 7 лет данных (около 4 ТБ) с помощью суб-второе быстродействие.
Система, которая регистрирует 3500 различных видов событий пользователем и ищет их в данных за 2 года (опять около 4 ТБ), но производительность может превышать секунду.
Мы решили использовать прослушиватель Kafka для прослушивания двух этих событий и публикации их в двух разных источниках данных (в настоящее время мы используем базу данных SQL) на основе двух разных требований.
Однако мы пытаемся найти возможность, если мы сможем использовать какую-то технологию для этого с одним источником данных, поскольку 21 событие является подмножеством событий 3500.
Присоединение кдва требования вместе это становится: -
Система, которая регистрирует 3500 различных видов пользовательских событий, инициированных пользователем, и ищет их в течение 7 лет данных (около 15 ТБ) с точностью до секунды.
Пример строки в таблице: -
+------------+--------------+---------------+--------------------------+
| Account No | Time Created | Action/Event | Action Data |
+------------+--------------+---------------+--------------------------+
| 12345678 | 1527605672 | Account Login | User logged into account |
+------------+--------------+---------------+--------------------------+
Запрос, который требует выполнения менее чем за секунду: -
select * from table, где Account Number = 12345678 ANDДАТА МЕЖДУ «х» и «у».x и y будут любым диапазоном в течение последних двух лет.