在和国内外顶尖公司交流的过程中,我发现他们多数都很骄傲有一支极其专业的数据团队。这些公司花了大量的时间和精力把数据工程这件事情做到了极致,有不小规模的工程师团队,开源了大量数据技术。Linkedin 有 kafka、samza, Facebook 有 hive、presto,Airbnb有airflow、superset,我所熟悉的 Yelp 也有 mrjob…… 这些公司在数据领域的精益求精,为后来的大步前进奠定了基石。 今天推荐的这篇文章《美国数据工程现状》,从多个维度阐释了数据工程和数据工程师在美国的发展状况。或许你和我一样,都会有一些意想不到的发现。 我常觉得数据工程之于企业的意义,就好像马斯洛需求理论之于人的意义,从低到高进阶满足,企业对于数据工程的应用应该遵循这个三角原则。
这些更高级的更贴近金字塔尖,也是现在创业的风口。我偶尔也会被风吹的精神抖擞,但吹完风,静下来想想,一个企业没有好的数据工程、数据基础架构逻辑、没有构建数据流的能力,这些金塔尖上的需求是非常难被满足的,很难取得好的结果,也无法实现真正的价值。 是的,我又被风打下来了,开始站在地上思考问题了。 当然,对于创业公司来说,打造完整的数据工程、严密数据架构、高效的数据流是件 “正确但不容易的事情”。不好做、效果不直观,但很重要。 最后,我想引用 Kafka 技术的缔造者 (Kafka,被誉为 LinkedIn 的 “中枢神经系统”)、现 Confluent 的 CEO Jay Kreps 的一句话:
正文如下: 目前,LinkedIn 上有 6500 人称自己是数据工程师。而仅在旧金山,就有 6600 个这样的工作机会虚位以待。去年,数据工程师的数量翻了一倍,但工程主管们却仍觉得人才匮乏。 数据人才的旺盛需求源自一个根本性的变化:科技公司现如今都成了数据公司。 像 Uber、Airbnb、Spotify 这些公司都在大力发展数据产品,结果便造成数据系统开发和维护人才的激烈争夺。 Josh Wills 是 Slack 的数据工程师,在 2016 数据工程大会(DataEngConf 2016)上半开玩笑地说:“我的数据工程师都在会场了,请你们别挖墙角。” 即使 Slack 这样当红的硅谷企业,也在担忧如何留住这些宝贵人才。 我们的研究着重于说明以下几个方面:
从 Stripe、MIT、Looker 的工程主管对数据人才的发现、留任和对数据工程师团队项目的开发等一系列策略的分享中,我们找到了这些问题的答案,使得这份报告清晰地呈现出数据工程的现状。 关键指标:
分析方法: 本报告基于 Linkedin 上的用户资料,包括所有公开可见的个人及公司档案、技能与工作经验,数据以 2016 年 3 月份的统计为准。 我们根据档案上的职业标题和头衔识别出数据工程师,这里只纳入了那些可确认公司的数据工程师档案。 图表:LinkedIn 个人档案总结 截止 2016 年 3 月 1 日,Linkedin 上的个人档案大约 4.3 亿,此次参考了 2.6 亿例档案,其中列有至少一项经历的近 1.9 亿, 有一项已认证经历的超过 1 亿,当前经历已认证的近 8000 多万。 在这些数据工程师中,我们分析了:
分析工具:
一、数据工程师有多少? “数据工程师”(所有以某种方式与数据打交道的软件工程师)的定义仍有很大的模糊性,目前并没有一个完美答案,我们觉得由这些从业者自己来解读是最好的方式。 我们发现在 Linkedin 上有 6500 人称自己是“数据工程师”。 6500,这个数目并不大。 实际上,我们有些惊讶“数据工程师”竟如此之少。而在写这篇报道的时候,Indeed 上有 6600 个 数据工程师的招聘启事,这还仅仅是在旧金山和湾区。 薪酬数据也证实了数据工程师很受欢迎。据说,在 Facebook、Amazon 和 Google 这样的巨头公司工作的顶级数据工程师工资超 50 万美金。Indeed 的数据分布更保守一些,尽管如此,薪资也达到了 6 位数。 图表: 旧金山地区数据工程师的数量和薪酬比 从上图可以看出,薪酬在 10 万美元以上的职位超过 80%, 其中 110k-120k, 120k-130k 和 130k+ 的职位都很多,均超过了 20%。数据工程师成为当下的黄金职业!
二、数据工程师的数量随时间的变化 LinkedIn 的简历显示了一个人声明的自己的职业发展历史,包括了在各个时间段内的职务。这些数据让我可以构建出某个职务的不断演变。 下图就展示了”数据工程师“这个职务的飞速发展: 【图表】累计数据工程师的数量(单位:千) 数据工程师的数量从 2013 年到 2015 年增长超过了一倍。而且基于上文中相关岗位需求的数据,该增长趋势并不会减慢。 相比之下,数据科学家的数量大约是数据工程师的两倍(大约 11,400 人),但是数据工程师的增长速度却要更高:在同一时期,数据科学家数量“仅”增长了 50%。 三、数据工程师从哪里来? 数据工程师的疯狂增长让人产生了一个疑问:这些人从哪里来?他们之前是什么职业? 我们通过观察数据,调查了数据工程师这一职业的 DNA —— 他们之前的职业。 在我们的调查前有以下几个猜测:
结果显示,我们的猜测部分是正确的,有一点是非常明确的:数据工程师的 DNA 和软件工程师最接近 。 图表 :TOP 10 数据工程师的来源 数据工程师前职调查,最多依次为软件工程师、分析师、咨询师、商业分析师、数据架构师、数据分析师、数据库管理员、数据科学家、实习生、研究助理等。 四、数据工程师都在哪儿? 50% 的数据工程师在美国。这并不奇怪,因为数据科学家这个称谓的本身和很多基础技术都是来自于美国的科技公司和大学。 图表:数据科学家全球化 大部分的数据科技或是来自于一小部分大学——特别是伯克利大学 AMP 实验室,或者是来自于全球最大的网络公司软件工程团队。 谷歌、脸书、领英和亚马逊在领先该产业其他对手很久,就已经开始挑战大数据,并投入了大量资源。他们不仅创造了很多的数据科技,他们成为了数据人才的培育基地。 然而,这张图有些误导。 美国至今有着最多的数据工程师,也同样在全球有着最多的数据工程师档案:接近4倍多于排名第二的印度。 为了标准化数据,我们图中排名前十的国家展开详细,看他们各自数据工程师人数与在领英(LinkedIn)档案数的对比,以及与总人口的对比。 图表:TOP 10 数据工程师最多的国家 这张统计中没有以色列,以色列是我们此前的参考标准,它曾经在每百万人中的数据科学家占比排名中排名最高。上文提及,以色列长期被认为是数据科学的起源国度,在以色列“硅溪”有着强劲科技展现。但意外的是,这却没能转化为高密度的数据工程师人才。 五、哪个行业聘用的数据工程师最多? 在扩大存储、传输和处理数据方面遇到挑战的公司对数据工程人才需求最甚。这些挑战多在科技公司出现,但是像电信、生物科技和保险这些行业呢?难道这些行业不需要数据扩张方面的帮助吗? 当我们考察数据工程师的工作领域时,我们发现一系列的行业都需要数据人才。 图表:TOP 20 数据工程师的行业分布 与预期一致,电信和金融服务接近顶端,但是在生物科技中 DNA 的拍字节(Petabytes)的排序却没有朝排名靠前的位置发展。 从该表格中,我们不应该认为这些行业之外的领域就不需要或者不聘用担任数据工程师功能的人才。相反,尽管“数据工程师”在某一个领域内已经流行开来,互联网科技公司—— 这个特定职位的用法仍处于初始阶段。这个领域内的技术、流程和思维方式正在开始延伸到其它的行业。 六、哪些公司聘用的数据工程师最多? 当我们看到聘用了数据工程师的具体公司时,他们在科技领域的受欢迎程度就更加明显了。在前十的公司里,只有两家公司不是专门从事技术或数据的:一家电信公司(Verizon)和一家金融机构(Capital One)。 图表:TOP 50 聘用数据工程师的公司 经常在数据大会上分享经验的 Amazon、Facebook、Netflix、CapitalOne 等公司,都是业界数据应用的非常成功的公司,和其雇佣的数据工程师的人数呈正相关。 很有趣的是,一些公司聘用了不成比例的数据工程师。比如 Spotify(1600+ 雇员)比起必能宝(Pitney Bowes,16000 雇员)要小得多,但他们聘用的数据工程师数量相当。 这些数据清晰显示,现在的一些科技 “独角兽” 高度重视数据工程师一职。同时,考虑到三藩市目前有 6600 家公司在找数据工程师,这个趋势短期内似乎不会改变。 七、数据工程师的基础技能 数据工程师干的活大体分为两个部分:
总体而言,直接与数据相关的技能获得了越来越多的重视,另一方面,某些核心的软件技能也为数据工程师所青睐。 图表:TOP 20 数据工程师的基本技能 从图上可以看出用 SQL 来回答分析型的问题、写脚本来做数据集成、清洗这样的 ETL 任务和使用Hadoop生态的工具是数据工程师的主要工作。 No.1 SQL(Structured Query Language:结构化查询语言): 即便在数据技术领域,很多 NoSQL 倡导者 “欲除之而后快”,但 SQL 仍是数据工程师最普遍具备的技能。 No. 2 Java: Java 是最受数据工程师欢迎的编程语言。自从分布式系统基础架构 Hadoop 在 2000 年左右被开发出来后,JVM(Java Virtual Machine:Java 虚拟机)便处于数据处理的中心。 No.3 Python: 不仅被应用于数据工程,还能为分析任务服务——相较而言,总是和 Python 一同出现在新闻里的 R 语言,更专精于分析与统计,这应该也是 R 没有上榜的主要原因——在数据科学圈,数据工程和分析二者并重。
八、数据工程师的技能如何随着公司规模的变化而改变? 作为数据工程师,同样需要认真应对公司和业务的规模化所带来的挑战——业务更多,数据集(Dataset)的规模也更大,所需求的数据能力和工作方式也要随之演化。 姑且做个猜测:规模越大的公司,对规模化相关的技能越加看重。是否真的如此?我们先查看查看下面的图表。 图表:不同公司的数据工程师之间的差别 纵轴表示技能,横轴则表示相对偏差(Relative Difference:某一次测量的绝对偏差占平均值的百分比)。深蓝色、天蓝色、橘色分别代表三种公司规模:1-200人、200-1000人、1000人以上。越接近图表顶部,该技能越应用于较小的公司,反之,位于底部的技能更普遍地出现在 1000 人及以上的公司里。 看完表,我们可以用数据回答先前的猜测:NO。 真实情况是,在规模更大的公司,数据工程师更在意 “企业级” 相关的技能,比如 ETL(Extract-Transform-Load)、BI(Business Intelligence:商业智能)、数据仓库等,而在较小的公司,数据工程师更多的把心力花在 Python、Java 等编程语言上(编者按:Python 和 Java 作为普通的编程语言,可以用来构建产品,这对于小公司来说属于核心业务)。
九、数据工程师与数据科学家的技能差异是怎样的? 这个数据集体现了数据工程师与数据科学家之间的明显的技能差异,由此可以将数据工程师与数据科学家的技能构成看作一个频谱的两个对立面。 以下这张图表显示了一张数据技能频谱图,频谱图顶端的技能在数据工程师的简历中更为常见,,而频谱底端的技能更常出现在数据科学家的简历中。 图表:数据工程师与数据科学家的区别 从图表的技能构成可以看出,数据工程师更倾向于掌握 “战术层面” 的具体数据技能,专注于使数据可用并能够在生产环境中对数据进行处理,如具体的编程语言、操作系统与数据库等;而数据科学家更倾向于“战略层面”的数据技能,如数据分析、数据挖掘、统计分析、机器学习等。 十、数据工程师与软件工程师的技能差异是怎样的? 数据工程师与数据科学家之间的差异是十分明显的,那么数据工程师与软件工程师之间的技能差异又是怎样的呢?毕竟,正如我们之前所展示的那样,大部分的数据工程师都具有软件工程师的背景。 图表:数据工程师与软件工程师之间的区别 以数据工程师为中心的最多人选择的技能是 Hadoop,数据仓库和 BI——正如你所期望的那样。与之相反,在软件工程师端列出的所有技能几乎都与 web 前端开发相关。最大的两个例外是 C 语言和 C++ 语言,这是在现代大数据技术栈开发中不常用到的编程语言。 虽然许多数据工程师具有软件工程师背景,但他们并不是简单的为了博取加薪而转换一个新的工作头衔;他们不得不通过学习新的技能来适应新的角色。
|