分析门户
序言
数据工程师( DE )和数据产品经理(DPM)日常的一部分工作是和运营、PM对接,根据需求产出APP层数据和可视化报表。 DE分别通过Tableau和数易来产出报表,但这两个产品都有局限性:
- Tableau价格昂贵,使用人数有限制
- 数易的可视化图表类型过少,不能满足需求
- 且DE有个性化的需求,Tableau和数易均不能给出及时的响应
然后,数据分析门户就应运而生了。
产品介绍
用户
从序言的背景中了解到,使用分析门户的用户主要DE、DPM、PM、运营。由于报表中会包含各个业务线的重要指标,所以各个业务线的负责人也会通过分析门户来查看他们关注的指标。
从用户职责的角度来划分用户的话,可以将用户划分为以下几层:
- DE负责产出APP层数据,诉求为:
- 产出的数据能方便的接入到分析系统中
- DPM负责制作报表,主要有以下两个诉求:
- 丰富的图表类型,并且能支持图表的个性化开发
- 各种粒度的权限控制(表权限、行级权限)
- PM、运营、业务线负责人会经常查看各种关键指标,他们的主要诉求如下:
- 图表类型丰富、配色适当,能够方便快速的理解指标代表的含义(柱状图、折线图、热力图)
- 响应速度快,通过网页打开一个报表,如果速度太慢,会严重降低用户体验
这几层用户和我们系统相互之间的关系,可以用下图来表示。
从上图可以看出当前制作报表的简要流程为:
- 报表需求方提需求给DPM
- DPM制作好报表给到需求方
- 如果报表需求方对报表有细微的改动,或者需要做一些简单的分析,还需要再重复步骤1、2。这个过程不仅周期较长,而且还会耗费人力。
从上面的流程可以看出,DE、DPM负责数据和报表的产出,其它用户不做内容产出,仅仅浏览DPM产出的报表,和我们的系统交互较少,因此DE、DPM为我们当前系统的核心用户。如果我们能够解决步骤三的问题,降低使用门槛,让需求方自己也能非常方便的做一些简单的分析,而且能够产出报表。不仅能增加用户对系统的使用频次,也能扩大我们系统的用户群体。
功能介绍
分析门户当前是基于开源系统Superset,它中文翻译是快船,是一个自助式数据分析工具,它的主要目标是简化我们的数据探索分析操作。
当前分析门户主要分为两个部分:
前端门户:统一展示看板列表
后台配置系统:制作看板
当前门户支持的功能有:
- 用户可自主在权限系统上申请对应看板权限
- 集成sso登录
- 以可视化方式配置看板
- 支持接入多种数据库,mysql, kylin, clickhouse, presto, druid等等
superset系统的详细实用方式可以参考 文章
工程介绍
后端是基于Python的,用到的框架有:
- Gunicorn,在本地开发模式下不需要使用此框架
- Flask AppBuilder(鉴权、CRUD、规则)
- Pandas(分析)
- SqlAlchemy(数据库ORM)
前端自然是JS的天下,用到的框架有:
- npm、react、webpack
- d3 (数据可视化)
- nvd3.org(可重用图表)
- echart
整个系统是典型的MVC架构,现在简要的介绍几个目录功能:
assets
是前端代码目录models
负责与数据库的交互,执行从各个数据源查数的逻辑views
控制器,负责接收请求templates
前端html模板viz.py
负责前端各种图表数据格式的转换__init__.py
superset在启动时首先执行这个脚本,用于做一些初始化工作custom
对引入的一些python package打一些补丁,修复bug;扩展viz.py
图标类型;