Я работаю в системе, которая управляет человеческими ресурсами, и в ней есть часть BI (Business Intelligent) для сбора и обработки данных из основной системы, а затем визуализации обработанных данных в диаграммах, таблицах и т. Д.
Например, мы хотим увидеть связь между возрастом человека [в диапазоне 18–38] (на оси 1) и их ежемесячной заработной платой (на оси 2) [в полном диапазоне заработной платы]. Сумма агрегации подсчитывается лично. Существует также дополнительный шаг под названием Фильтр для фильтрации результата только в организации A.
Ожидаемый результат выглядит следующим образом:
Age_18<28 Age_28<38 Age_38<48
Salary_<1000 12 25 45
Salary_1000<5000 12 10 2
Salary_>5000 1 1 2
Текущие шаги обработки следующие:
- Поиск по оси 1: поиск всех людей с возрастным диапазоном [18–38] в организации A
- Поиск по оси 2: поиск всех людей в организации A
- Объединить результаты для оси 1 и оси 2
- Подсчет людей для каждого условия, например, количество людей с возрастом_18 <28 И зарплатой_ <1000 равно 12 и т. д. </li>
- Преобразовать в json response
Поскольку приходится обрабатывать множество случаев, logi c становится сложно поддерживать. Все шаги выполняются вручную, как указано выше.
Поэтому мне просто интересно, является ли это распространенной проблемой и должен ли быть общий способ решения, например шаблон проектирования, или алгоритм, или библиотека (Java) или конкретная c концепция для обработки таких вещей, о которых я никогда раньше не знал.
Цель: - сделать код более простым, читаемым и поддерживаемым - легко расширить, т.е. добавить новые случаи
Что я я собираюсь попробовать: - Применить цепочку ответственности + шаблоны стратегии - Просто интересно, будет ли Apache Kafka правильным путем
Примечание: приведенное выше - это очень простой случай, он может содержать несколько элементов в 1 ось, с некоторыми дополнительными условиями