数据仓库|数据分析和数据开发的区别

数据仓库|数据分析和数据开发的区别

文章图片


数据分析(DA)和数据开发/数据仓库工程师(DE)究竟有什么区别 , 工作职责和工作内容上的差异是什么?


一般都知道 , 数开偏开发 , 主要是技术层面的工作 , 负责ETL、数仓、分布式计算、大数据运维等 。 数分偏业务 , 通过分析数据、建模、搭建指标体系 , 找出规律 , 给业务赋能 。
数开通常负责一个业务整个数据体系的构建 , 也就是传说中的“数据仓库” , 这个仓库中既有最底层的明细数据表 , 也有一层一层做过计算和组合的聚合数据表 。
数据分析师在日常工作中 , 经常会使用各种聚合表做一些简单的可视化或更复杂的分析 , 来监控业务的核心指标或者获取一些结论来支持决策 。 而这些日常被使用的数据表其实都是由数仓工程师建设好的 , 它们是非常规整的行列数据 , 在相应的可视化工具中 , 使用者只需要通过简单的拖、拉、拽就可以实现快速地分析 。
但这些被使用的数据表就像海平面露出的冰山一角一样 , 分析师通常情况下只需要关注海面之上的部分 , 在海平面之下是冰山的基础 , 就是我们所说的数仓体系 , 这一部分由数据开发同学帮忙构建并维护 。
就拿短视频app的数据分析举例 , 如果你想监控每天用户的点赞行为 , 从最底层的数据表中 , 获取到全部的某人在某个时间对某个视频做了某个动作”这样的记录肯定可以实现你的目的 , 但是更合理的做法是:

(1)数据开发工程师会先从底层数据(底层数据通常是由服务器记录的非结构性数据)同步出一个最明细表 , 包括谁在什么时间对哪个视频以何种方式进行了点赞;
(2)再进一步直接聚合出一张新的表 , 记录谁在哪一天点赞了多少次;
(3)最后抽象出一张指标表 , 某一天总共有多少点赞次数;
到这里 , 把最后一张表交付给数据分析师 , 分析师去做后续的分析 。
当然实际工作中肯定没有这么简单 , 如果只是做每日点赞数的可视化 , 那其实完全不需要数据分析师 , 数仓同学做完这些表自己也能操作可视化软件画图并直接交付 , 没必要中间过一道分析师 。
所以实际上 , 分析师和数仓的合作模式是 , 分析师会根据自己指标监控或者专题分析的需求 , 构思自己需要的数据或指标 , 这些数据或指标肯定不只是简单的点赞数 , 可能会是不同画像的用户对不同类型视频的点赞行为 , 这种行为可能反映出不同种类的用户对不同种类视频的偏好;随后 , 分析师将自己想要获取的数据或指标提需求给数仓同学 , 数仓同学负责后续的数据收集、整理、清洗、聚合这一整个过程 。 很多情况下 , 在拥有非常完整的数据仓库后 , 分析师想要的数据基本上由数仓同学从仓库中随时抽取、组合在一起 , 就能快速支持相应的分析 。 因此这样看下来 , 数据分析师和数据仓库工程师非常像是相爱相杀的产品经理和研发 。 前者负责提需求 , 后者负责承接需求并送上一个白眼 。
数据开发(包括数仓开发)建立采集、存储、计算、应用的系统 , 根据数据分析师的需求为业务构建一套完整的数据支撑体系 , 需要各类大数据组件的开发、调优 , ETL脚本的编写、数仓搭建的知识 。

【数据仓库|数据分析和数据开发的区别】而数据分析更注重对数据的使用 , 依据数据开发构建的数据集市 , 结合实际业务 , 获取一些可落地的结论 。 需要数理统计和业务方面的知识 。
二者一起合力成为一个业务的驱动轮--数据驱动 。