数据分析(DA)和数据开发/数据仓库工程师(DE)究竟有什么区别,工作职责和工作内容上的差异是什么?
一般都知道,数开偏开发,主要是技术层面的工作,负责ETL、数仓、分布式计算、大数据运维等。数分偏业务,通过分析数据、建模、搭建指标体系,找出规律,给业务赋能。
数开通常负责一个业务整个数据体系的构建,也就是传说中的“数据仓库”,这个仓库中既有最底层的明细数据表,也有一层一层做过计算和组合的聚合数据表。
数据分析师在日常工作中,经常会使用各种聚合表做一些简单的可视化或更复杂的分析,来监控业务的核心指标或者获取一些结论来支持决策。而这些日常被使用的数据表其实都是由数仓工程师建设好的,它们是非常规整的行列数据,在相应的可视化工具中,使用者只需要通过简单的拖、拉、拽就可以实现快速地分析。
但这些被使用的数据表就像海平面露出的冰山一角一样,分析师通常情况下只需要关注海面之上的部分,在海平面之下是冰山的基础,就是我们所说的数仓体系,这一部分由数据开发同学帮忙构建并维护。
就拿短视频app的数据分析举例,如果你想监控每天用户的点赞行为,从最底层的数据表中,获取到全部的某人在某个时间对某个视频做了某个动作”这样的记录肯定可以实现你的目的,但是更合理的做法是:
(1)数据开发工程师会先从底层数据(底层数据通常是由服务器记录的非结构性数据)同步出一个最明细表,包括谁在什么时间对哪个视频以何种方式进行了点赞;
(2)再进一步直接聚合出一张新的表,记录谁在哪一天点赞了多少次;
(3)最后抽象出一张指标表,某一天总共有多少点赞次数;
到这里,把最后一张表交付给数据分析师,分析师去做后续的分析。
当然实际工作中肯定没有这么简单,如果只是做每日点赞数的可视化,那其实完全不需要数据分析师,数仓同学做完这些表自己也能操作可视化软件画图并直接交付,没必要中间过一道分析师。
所以实际上,分析师和数仓的合作模式是,分析师会根据自己指标监控或者专题分析的需求,构思自己需要的数据或指标,这些数据或指标肯定不只是简单的点赞数,可能会是不同画像的用户对不同类型视频的点赞行为,这种行为可能反映出不同种类的用户对不同种类视频的偏好;随后,分析师将自己想要获取的数据或指标提需求给数仓同学,数仓同学负责后续的数据收集、整理、清洗、聚合这一整个过程。很多情况下,在拥有非常完整的数据仓库后,分析师想要的数据基本上由数仓同学从仓库中随时抽取、组合在一起,就能快速支持相应的分析。因此这样看下来,数据分析师和数据仓库工程师非常像是相爱相杀的产品经理和研发。前者负责提需求,后者负责承接需求并送上一个白眼。
数据开发(包括数仓开发)建立采集、存储、计算、应用的系统,根据数据分析师的需求为业务构建一套完整的数据支撑体系,需要各类大数据组件的开发、调优,ETL脚本的编写、数仓搭建的知识。
而数据分析更注重对数据的使用,依据数据开发构建的数据集市,结合实际业务,获取一些可落地的结论。需要数理统计和业务方面的知识。
二者一起合力成为一个业务的驱动轮–数据驱动。