在新年的这个时间呢,篱笆老师我想和大家聊一个我自己其实期待了很久非常想和大家分享的内容,也就是数据岗位最新的一个分支,分析工程师,Analytics Engineer(简称‘AE’) 到底是做什么的! 很多小伙伴可能不知道,我自己的全职工作呢是在airbnb做分析工程师,我自己呢在面试之前其实也是对这个岗位一头雾水,完全没有了解 网上的相关的讨论和资源尤其是中文的内容又少的可怜,所以今天就想毫无保留的和大家分享一下我入职airbnb一年多之后对这个岗位的了解和认识,希望能够对我们数据人中文的社区有些小小的贡献。如果你对这个话题感兴趣的话,希望大家能点赞收藏来支持一下!
今天的分享呢,我会分成四个部分来讨论:AE到底是什么,需要什么样的技能才能成为AE, 市场上对AE的需求。
首先AE这个岗位的名字最早是在2018年出现在一个叫Locally Optimistic community的社群里,最早是在这篇文章里被提到,大家如果感兴趣的话可以去看一下:https://locallyoptimistic.com/post/analytics-engineer/
当时社群里一群从事数据工作的人,意识到自己正身兼数职,并且自己做的工作既不是传统的data scientist的活,也不是传统数据工程师的活的时候,这个新的岗位名称就应运而生。
那么ae到底是什么呢?总结来说,analytics engineer是一个填补了数据工程和数据分析/数据科学之间空缺的人。这么说听起来是不是有些空泛,我来举个例子方便大家的理解。比如在一个做社交媒体产品的产品组,数据工程师负责搭建数据管道,采集上游的数据经过处理后产生一些表放到数据库,然后呢数据分析师或是数据科学家可能会通过sql去抓取数据用来分析。在真实的工作环境当中,由于在传统的data组里,建表的数据工程师不了解下游的分析师想要怎么使用这些数据,所以在设计表的架构的时候不会考虑到数据使用者的需求。 就导致数据科学家为了跑实验或是建模准备数据的时候,往往需要自己动手写一些复杂的sql或者数据管道来把需要的数据集合在一起,方便使用。但是数科学家们不了解数据工程的一些best practices,写出来的管道(pipeline)质量往往不高,产出来的表也很可能是又大又宽,且数据质量也没有保证,由于数据质量没有保证,有人下一次需要类似的数据的时候又会选择自己去重新搭建这些表。长此以往,可想而知数据库里就会堆积越来越多质量层次不齐的表,且很难被复用。
不知道大家听出来没有,数据工程师缺乏对数据内容的理解,数据科学家又缺乏对engienering best practices的了解,这个之间的gap就是需要AE这个职能去填补的。在这个例子里,AE就需要和数据科学家了解他们到底需要什么样的数据,日常会怎么使用他们,再和数据工程师讨论表的设计,通过数据建模(dimensional modeling)最终形成一些高质量的,可以被不同的组复用的表。
当然啦,这个例子也只是AE的职能之一,A E的日常工作还包括定和和develop metrics也就各种各样的指标,建dashboard,和software engineer合作在产品上游添加loggin等等,不同的组对AE的要求不太一样,但共通点就是AE需要结合自己对数据的理解和engineering best practices产出各种各样的数据产品,并且他们都需要高质量且可被复用。
从之前的例子里大家可能也听出来了,AE既然要作为桥梁,那必然是对两边的数据技能都要有所掌握。
软实力上,在我看来能够把AE和DA/DS最直接区分开来的地方就是AE需要对scalability(可扩展性),reusability(可复用性)以及数据质量有很高的热情和要求,我们作为AE需要能够看到data组里哪一些流程可以被更好的工具优化,哪一些数据质量需要提高;举个例子,如果我发现总是有人找我问一样的问题,我一定会主动提出来建一个dashboard让大家能够自取所需而不是孜孜不倦的去重复回答
硬实力上也就工具上,AE的技能要求其实和DA/DE有很大的共同性,需要会SQL,至少一门编程语言,可视化工具比如tableau或者looker,数据管道工具比如airflow或者dbt,并且对互联网公司来说需要对大数据工具比如spark,hive有一些基本了解。
最新评论 2
:666
: