分析门户

序言

数据工程师( DE )和数据产品经理(DPM)日常的一部分工作是和运营、PM对接,根据需求产出APP层数据和可视化报表。 DE分别通过Tableau和数易来产出报表,但这两个产品都有局限性:

  • Tableau价格昂贵,使用人数有限制
  • 数易的可视化图表类型过少,不能满足需求
  • 且DE有个性化的需求,Tableau和数易均不能给出及时的响应

然后,数据分析门户就应运而生了。

产品介绍

用户

从序言的背景中了解到,使用分析门户的用户主要DE、DPM、PM、运营。由于报表中会包含各个业务线的重要指标,所以各个业务线的负责人也会通过分析门户来查看他们关注的指标。

从用户职责的角度来划分用户的话,可以将用户划分为以下几层:

  1. DE负责产出APP层数据,诉求为:
    • 产出的数据能方便的接入到分析系统中
  2. DPM负责制作报表,主要有以下两个诉求:
    • 丰富的图表类型,并且能支持图表的个性化开发
    • 各种粒度的权限控制(表权限、行级权限)
  3. PM、运营、业务线负责人会经常查看各种关键指标,他们的主要诉求如下:
    • 图表类型丰富、配色适当,能够方便快速的理解指标代表的含义(柱状图、折线图、热力图)
    • 响应速度快,通过网页打开一个报表,如果速度太慢,会严重降低用户体验

这几层用户和我们系统相互之间的关系,可以用下图来表示。

从上图可以看出当前制作报表的简要流程为:

  1. 报表需求方提需求给DPM
  2. DPM制作好报表给到需求方
  3. 如果报表需求方对报表有细微的改动,或者需要做一些简单的分析,还需要再重复步骤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架构,现在简要的介绍几个目录功能:

  1. assets 是前端代码目录
  2. models 负责与数据库的交互,执行从各个数据源查数的逻辑
  3. views 控制器,负责接收请求
  4. templates 前端html模板
  5. viz.py 负责前端各种图表数据格式的转换
  6. __init__.py superset在启动时首先执行这个脚本,用于做一些初始化工作
  7. custom 对引入的一些python package打一些补丁,修复bug;扩展viz.py图标类型;

评论