数据分析 | 数据可视化图表,BI工具构建逻辑 (3)

根据各种动态参数,解析查询条件,获取查询结果。

@Service public class DataSetServiceImpl implements DataSetService { @Resource private DataSetMapper dataSetMapper ; // 分析任务划分 @Override public Map<Integer, List<ChartParam>> analyData(List<ChartParam> chartParamList) { Map<Integer, List<ChartParam>> dataMap = chartParamList.stream() .collect(Collectors .groupingBy(ChartParam::getDataType)); for (Integer dataType:dataMap.keySet()){ switch (dataType){ case 1: // Count 风格数据 taskCount(dataMap.get(dataType)); break; case 2: // Sum 风格数据 taskSum(dataMap.get(dataType)); break; case 3: // Percent 风格数据 taskPercent(dataMap.get(dataType)); break; default: break; } } return dataMap ; } // Count 数据执行 private void taskCount (List<ChartParam> chartParamList){ for (ChartParam chartParam:chartParamList){ chartParam.setResultNum(dataSetMapper.taskCount(chartParam.getColumnName(), chartParam.getTableName())); } } // Sum 数据执行 private void taskSum (List<ChartParam> chartParamList){ for (ChartParam chartParam:chartParamList){ chartParam.setResultNum(dataSetMapper.taskSum(chartParam.getColumnName(), chartParam.getTableName())); } } // Percent 数据执行 private void taskPercent (List<ChartParam> chartParamList){ for (ChartParam chartParam:chartParamList){ chartParam.setResultNum(dataSetMapper.taskPercent(chartParam.getColumnName(), chartParam.getTableName(), chartParam.getProductId())); } } }

总结一句:数据可视化工具建设是个漫长过程,不仅仅可以分析自己公司的业务,也可以作为开放BI工具产生价值。

五、源代码地址 GitHub·地址 https://github.com/cicadasmile/data-manage-parent GitEE·地址 https://gitee.com/cicadasmile/data-manage-parent

数据分析 | 数据可视化图表,BI工具构建逻辑

推荐阅读:《架构设计系列》,萝卜青菜,各有所需

序号 标题
01   架构设计:单服务.集群.分布式,基本区别和联系  
02   架构设计:分布式业务系统中,全局ID生成策略  
03   架构设计:分布式系统调度,Zookeeper集群化管理  
04   架构设计:接口幂等性原则,防重复提交Token管理  
05   架构设计:缓存管理模式,监控和内存回收策略  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzzgf.html