【发布时间】:2020-05-29 02:48:30
【问题描述】:
我在一个管理人力资源的系统中工作,它有一个 BI(商业智能)部分来收集和处理来自主系统的数据,然后将处理后的数据可视化为图表、表格、..
例如,我们希望查看人员年龄 [在 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
目前的处理步骤如下:
- 搜索axis1:搜索组织A中所有年龄范围为[18-38]的人
- 搜索axis2:搜索组织A中的所有人
- 合并轴 1 和轴 2 的结果
- 计算每个条件的人数,例如 Age_18
- 转换为 json 响应
因为要处理的案例很多,逻辑维护起来也变得复杂。所有步骤都像上面一样手动处理。
所以我只是想知道这是否是一个常见问题,是否应该有一个通用的方法来处理,例如设计模式、算法、库 (Java) 或特定概念来处理我以前不知道的此类事情。
目标: - 使代码更简单、可读和可维护 - 易于扩展,即添加新案例
我将要尝试的内容: - 应用责任链+战略模式 - 只是想知道 Apache Kafka 是否是正确的方法
注意:以上只是一个非常简单的例子,它可能在一个轴上包含多个项目,还有一些附加条件
【问题讨论】:
-
如果你只是想通过过滤和排序来处理数据,你可以使用 jquery
datatable之类的东西。它们提供过滤、排序、分组等功能,还可以将数据导出到 PDF 和 Excel。 -
无需重新发明轮子 - 只需为此目的选择合适的 BI 解决方案,您就可以像这样配置数据透视表报告,而无需编写和维护 Java 代码。
-
但实际上这是一个遗留的 BI 系统,我的工作是改进和维护它
-
“最佳实践”是不这样做 :-) 但实际上,satisfice.com/blog/archives/5164
标签: java design-patterns business-intelligence data-processing