在公司做BI, 前一阵弄了一阵可视化, 被业务折磨得死去活来的, 业务可不管你的专业分工是什么, 整个页面上的东西都要改来改去, 天天调html、css、js, 倒是学了不少东西。
做可视化用的百度的Echarts, 极大的减小了绘制图标的工作量, 但是有一个问题是, 把数据和展示结合得太紧, 使得后台数据的分析者想要展示自己的数据, 还得掌握一定的js。特别是我们的业务要求很多图有乱七八糟的联动关系, 而这些联动又必须自己去用代码实现的时候。
之后一直再想,有没有什么办法可以将数据和展示分开, 像cognos那样, 通过几个配置文件, 就能完成一个或几个相关联的的图表。
从数据到图表, 从现在各种数据库,以及图表库的工作方式来看, 主流的还是关系型的, 这种数据从本质上来说都是一组 <key,value>的值, 当然key和value可以都是组合,同样的,图表的状态也可以定义成<key,value>的方式, 每一个图表都可以根据key来决定其展示的数据,通过这种方式我们可以将多个图表以及多种不同图表库的不同图形统一的结合在一起。
具体的实现方式可以参考cognos, 通过一个总的配置文件来控制整个图表(可能包含多个关系的图形), 每个文件又有一个单独的配置文件来定义列, key,dimension,measure,类似于Framework。 这样数据分析者只需要将数据 转化成关系型的表达, 并完成几个配置文件, 其余的事可以又前端JS人员去开发。
这种方式的关键在于接口,也就是配置文件的定义。详细的实现中, 可能会有一些其他的问题, 但是感觉这种方式是可行的, 接下来打算下班之余完成这个想法的框架
ftp217902.host555.zhujiwu.cn