从大道到简约的数据系统构建方法论
自上而下梳理数据指标体系
1.确定目标
这是你应该问自己的第一个问题。花大力气做数据分析的最终目的是什么?如果这个不清楚,那么数据系统肯定是无从下手的。
是想提高用户活跃度,增加用户,增加销量,还是其他什么目标?一想起来,好像都想要。每个人都希望没有问题,但这会让工作的边界无限扩大,会让事情无法推进。所以要从自己最关心的目标/KPI入手。
那么,我们最需要关心的目标是什么呢?
对于不同领域、不同阶段、不同角色的用户的公司,这个问题的答案是不一样的:对于很多公司老板来说,盈利是他们最关心的目标;对于不销售产品/服务的公司或政府来说,也许顾客满意是最关心的目标;对于交易平台公司或者早期的电子商务公司来说,盈利不是重点,交易量才是最关心的目标。
最关心的目标定了。下面我们想要的问题都能解决吗?不是这样的。大数据带来的最大误区就是数据和领域越多越好。然而,当我们真正解决具体的业务问题时,我们必须从完整的大数据集中切出一个相关的子集来使用。
对于单个人来说,无论是老板还是高管层,都不应该同时过多关注目标/KPI。同时看几十个KPI,想象一下会很晕很费时间。但是,对于企业来说,确实有很多KPI是非常重要的。我该怎么办?可以分解成很多人,也就是不同的角色一起工作,每个角色关注自己的目标,所有角色一起就是公司所有目标/KPI的完整集合。
假设老板最关注的目标是利润,利润=收入-成本,这个目标可以分解为销售总监关注收入,运营总监关注成本。当然,并不是说老板不能看收入,而是把常规重点锁定在可行的范围内。
2.分解指标
目标确定了,下一步就是分解相关指标。
需要什么指标来监测或分析目标?比如利润,相关指标是收入和成本。当然,这太粗糙了。应该考虑什么样的收入和成本。比如零售行业的销售额,可以分解为客流量、进店率、购买率、客单价、复购率。
因此,分解的方式有很多种,需要遵循MECE原则(穷举和独立)。
3.细化字段
对于指标的计算公式,涉及哪些字段,哪些表在哪些库中,是否需要进行数据清洗,清洗规则是什么等。
比如购买率是通过公式“购买人数/进店人数”计算的,购买人数是通过统计“客户ID”计算的。这些指标涉及的字段对应数据库中哪个表的哪个字段,需要整理出来,这部分需要IT人员或者数据库管理员的介入和配合。
4.非功能性需求
以上第三步完成后,我们其实已经整理好指标体系,可以落地了,但是为了让最终的数据系统更加完整、友好、可用,我们还需要整理一些非功能性的需求。
UI:你更喜欢什么样的显示风格似乎并不重要,但实际上,用户每天都会和数据系统打交道,一个漂亮的、有体验感的系统UI会让用户更喜欢。
页面流量:哪些相关指标放在同一个报表页面上,页面之间的层级关系是什么,用户如何在页面之间跳转。
权限:谁能看到哪些数据范围,哪些字段和指标需要统一的权限控制,避免数据安全问题。
ETL:数据源到分析系统的数据同步频率和规律是怎样的?
集成:是否需要在接口、预警消息等层面与其他系统集成。
性能:看不见,摸不着,但直接决定了系统可用性。如果在数据量较大的情况下,需要几分钟甚至几十分钟才能看到结果,相信没有人会愿意使用这个系统。
5.系统实现
以上四项完成后,我们形成了数据运营系统需求文档/实施计划,可以投入到数据运营系统中。然后根据报表页数和数据准备的复杂程度确定工作量和时间计划。
2.自下而上实现BI系统的落地
1.连接数据
根据需求文档/实施计划逐步构建系统。有的企业称这个系统为大数据平台,有的企业称之为BI系统。大数据平台的范围会更广,但是对于企业数据运营来说,BI一定是最核心的组成部分。
那么,无论是开发还是像永红科技这样基于第三方工具的快速实施,系统建设的第一步都是连接各种数据源,打通与之的通道。
在企业中,数据环境往往是异构的,数据源可能包括数据库、Hadoop平台、Excel文件、日志文件、NoSQL数据库、第三方接口等。每个数据源都需要有一个快速友好的对接方式。
最后,我们可以在系统中看到我们需要的所有数据源中的所有表和字段。
2.数据处理
数据源中的数据往往或多或少是不规范的,如重复记录、缺失空值、明显不合理的异常值(如2020年的成交订单),同一件事在系统中可能有多个名称。
如果对这些数据不进行处理或者称之为清洗,会对分析的准确性产生很大的影响,所以需要进行一些预处理。这个过程往往是最耗时最无聊的,但也是非常重要的。
作者提醒,这一环节的问题将在下一篇文章《论从大道到简的数据治理方法》中进一步讨论。
3.数据建模
数据处理好之后,下一步就是做数据建模。
说到建模,非技术背景的用户会被吓倒,觉得深奥难懂。模具实际造的是什么?简单地说,将多个表关联在一起就是一个数据模型。
比如某公司要做绩效分析,需要员工的工龄、学历、项目数、项目金额、项目利润率等指标,其中工龄、学历在个人信息表中,项目数、项目金额在项目表中,项目利润率在财务表中。这三个表有同一个字段“员工号”,这三个表通过这个字段关联,是一个数据模型,也是一个数据模型。
制作数据报告