1.1 何为数据工程师
数据工程师无疑是大数据时代最热的名词之一。只要是从事数据相关工作的人员,都可以划分到该范畴。笔者认为“数据分析”与“数据工程”这两项能力,是数据工程师的核心能力。
“数据分析”能力,从实践的角度来看,就是工程师能根据数据给出分析建模的策略,解决业务中遇到的问题的能力。制定有效的建模策略,要求数据工程师必须至少具备以下三类知识储备:统计分析、数据挖掘以及深度学习。本书的第4~6章分别讲述了这三个领域的相关知识。
“数据工程”能力,就是灵活运用数据处理组件及相关技术,实现数据分析中拟定策略的能力。数据处理的工程实施包含了“数据搜集”“数据传输”“数据存储”“数据计算”四个部分。这一系列流程的完成,要求数据工程师必须具备以下工程知识:消息队列、数据库技术、数据仓库、分布式文件系统和分布式计算平台等。在本书的最后一章,会对此做详细的介绍。
“数据分析”以及“数据工程”两项能力是数据工程师的硬实力。相比之下,对业务的理解则是与硬实力相辅相成的软实力。现实的工作中,一切技术手段最终都是为了业务的发展,理解这一点对数据工程师尤为重要。从初级数据工程师晋级为高级数据工程师,也是一个从被动实现到主动创新的过程。通常情况下,当面对上级或者同事提出的具体数据需求时,初级数据工程师一般处于被动实现的境地,这在初级阶段是无可厚非的;但是,对于高级数据工程师而言,则不能满足于被动地去实现需求,而要更进一步做到以下两点:①应该主动去理解战略目标、产品方向和营销意图,围绕产品发展的各个阶段,综合当前业界已有的方法和思路,建立一套完善的数据支持体系;②善于从数据的角度思考问题,保持数据敏感度。“啤酒-尿布”的故事正说明只有对数据敏感的人,才有可能从这种角度来发现数据间的关联。总之,一名优秀的数据工程师,不但要专心锤炼技术,更要着眼于现实的业务。
实践中,数据工程师不但要专注能力图谱(如图1.1所示)中的某几个点,还要在各个领域都有所涉猎。比如,合理地评估对海量数据集实施建模策略的可行性,就要求数据工程师不仅要了解模型构建,还必须具有工程实施的经验。所以,只有具备广而深的知识体系,才能掌控全局,更有效地提炼数据价值。
不可否认,数据工程师是一个更加需要经验的岗位。随着业务的深入发展,数据诉求会时刻发生变化;同时,不同业务之间的数据诉求也是天差地别的。笔者认为,拥有完善的分析体系和工程实施策略,并能针对具体场景给出完整解决方案的工程师,才能称为顶级数据工程师。
图1.1 数据工程师能力图谱