查看原文
其他

那些年,我在阿里当数据开发

本文来源公众号:阿里云云栖号,ID:yunqiinsight


正文开始


我是阿里数据部门的一名数据技术专家,现在主要在对外部客户的一些数据中台项目中,做技术以及产品的支持。


我原来在阿里内部其实做了5年的数据开发,现在在做一些外部项目的时候,经常会和一些生态合作伙伴公司一起去交付项目,在这些合作伙伴的数据开发中,不管是新人还是老人,都能看到我曾经的一些影子,所以我想借助这篇文章,讲述一下我在阿里当数据开发的一些经历 ,希望在个人发展上对他们有一点帮助。


我是13年加入阿里的,在进阿里前,原来是做银行的数据仓库建设,用的是TERADATA的LSDM那套3NF建模的方法,技术也主要围绕TERADATA和后来的GREENPLUM为主,所以进到阿里后,会有一个在业务和技术上适应的过程。


首先是技术上,我进到阿里后,那时候阿里正处于底层的数据处理平台更换的阶段,从GREENPLUM替换到HADOOP平台,因此我进入部门后,首先对HADOOP大数据平台并不是很熟悉,因为那时候银行里面都还没有开始用HADOOP平台,所以一开始对HADOOP这套计算架构就非常的不适应,比如为什么跑个SQL这么慢,执行个SQL还要打开网页运行(因为我们原来用的是在云端),这是一个慢慢熟悉和适应的过程。


另外一方面是业务方面的适应,需要从原来熟悉的银行业务,过度到互联网业务。业务变了,对应的数据也都发生了很大的变化,我到了ICBU后,被分配到负责流量和广告相关的业务,会接触到大量的日志数据,比如页面浏览,点击,曝光,还有P4P点击广告相关的日志,面对这么多非结构化的日志数据,我一开始都不清楚为什么需要这些日志的数据, 但是通过后面不断对互联网业务的熟悉,才知道流量分析对网站的重要性,这个阶段我也熟悉了很多流量相关的业务知识,比如SEM,PPC,SEO,联盟等等。


这个阶段除了提高新的技术和业务能力外,主要的工作就是不断的接需求做报表。团队里面有专门的数据PD,他们的职责就是"接活",每天接业务方的需求,然后通过需求沟通和分析,每个月排定我们数据开发的资源,所以时间长了以后你就会觉得你就仅仅是一个资源,个人价值无法得到体现。


所以后来我们进行了改革,就是让数据开发自己到前面,接业务的需求,然后自己沟通和分析,数据PD就都去做PD应该做的数据产品设计。说实话,这是一个很好的让开发成长的措施,因为做数据的,要想真正了解数据,你首先要了解对应的业务,不然你开发出来的数据,就只是那几张硬生生的报表。也正因为这个阶段,我学会了一些如何和业务“谈”需求的方法,比如WBRD,问需求方十个问题,像需求基于什么样的业务背景,业务的痛点是什么,指标中的模糊词汇如何定义,等等,将这些都问题清楚,你才能知道你为了什么而开发这个需求,而且你才能知道哪些需求该重点优先去排自己的时间做,这就是去做正确的事情。


另外这阶段也学到了一些数据分析的方法,因为我做出来的报表需要直接面向我的最终用户的,原来是开发好后,就丢给数据PD,所以现在业务方会直接来找我说,某某,你这个数据不对啊,这个时候,我才知道业务原来是这样分析数据的,因为我所在的是流量线,我也知道了原来流量是如何做相应的数据监控,才能及时的发现问题,排查问题,定位原因以及解决和预防问题。


所以,这是一个“往前迈一步”的阶段,这个阶段让我学会了需求分析和数据分析的一些方法,让我觉得个人的价值还是有一定的体现的,有时候被业务方点赞和认可,自己心里还是很暗爽的~~~


后来,阿里进行了登月项目,这个大家很多人都知道,就是将阿里所有部门的数据平台都迁移到ODPS,然后统一使用ONEDATA建模方法论去进行建模工作。但是我后面的工作重心并不是在ONEDATA建模上,而是在ODPS资源优化上。因为自从登月以后,ODPS的计算和存储是使用量不断提高,出于降本增效的目的,当时的CTO就成立了专门的数据管理委员会,并且基于统一的数据资产管理平台,进行全集团的数据治理。参加过我们培训的人应该知道,主要的治理也是包括计算和存储两方面,对应的有计算健康分和存储健康分,如果达不到一定分数的人到时候就不能使用ODPS,所以那时候,我接到的副业就是,做为接口人,帮助整个B2B的同学一起进行优化。



所以,这一阶段,我的工作就是组织全BU的人,学习ODPS的优化方法,包括一些后端和算法部门会使用到ODPS的同学,将一个个有问题,比如消耗资源TOP的几个SQL,抓出来教他们进行优化,但是你要教他们首先你得会一套有体系的优化方法,这个首先还得依赖我们阿里强大的产品能力,一些优化的方法论其实都体现在产品上,通过对数据管理平台中优化方法的学习和沉淀,那段时间我几乎每天都在和这些问题SQL打交道。而且后来我还接了整个数据开发部门慢报表的治理的工作,就是看部门哪个报表慢,哪个报表30天没人访问了,该下的下,该优化的优化。所以也正因为这个阶段的刻意训练吧,我熟悉了ODPS的底层的一些原理,以及处理MYSQL,ADB一些慢SQL的方法,以及针对不同的分析场景需要采用什么样的数据存储,是MYSQL还是ADB。


所以,假如你是一名合格的数据开发人员,你开发出来的报表查询时间不能低于3秒,开发的ODPS任务不能出现像数据倾斜,或者分区裁剪失效等问题,而且你要知道具体优化的方法。


接着后来做完这些工作后,我又往前走了一步,就是和团队的产品PD,一起搞了一些数据产品,比如一些应用计算的组件平台,还有核心指标库,以及一些业务的数据门户。因为你做到后来你会发现,正在能带来价值的还是产品,而且一方面你可以将你的一些方法论沉淀在产品上。这个阶段也从产品PD那里学了一些产品设计的方法,至少用AXURE画个产品的DEMO应该没问题吧。


另外这个阶段我也懂得了一个方法,就是你要学习一个技术,或者一个事情吧,你可以先从它对应的产品学起,因为产品往往是业界对应的方法论的沉淀,你可以通过产品,很快地掌握这件事情的方法,就比如我们的DATAPHIN产品,如果你要学习数据中台相应的方法论,你可以通过DATAPHIN产品学,包括数据建模,数据资产,数据质量等等方法论,都会在产品中体现。



至于后来为什么我开始支持对外的项目,是因为我看到了更多的社会价值,通过阿里云,我们输出原来阿里沉淀的一些数据中台建设的方法论,可以帮助外部的企业进行数字化转型,我觉得我更倾向于选择支持外部。

写在最后,我觉得大家都是在将自己的能力最大化,价值最大化的过程中前进,所以有时候“往前迈一步”,可能会有更好的风景。


—————— / END / ——————

分析最新的数据思想,与百万数据从业者一起成长


从事数据工作十年,谈谈我曾经面临的一次职场危机!

我在字节跳动产品团队的收获与总结

数据岗位以后再也没有数据分析师!

如何提升业务对数据团队的满意度?

数据团队要用数据驱动业务,首先得学会用数据驱动自己!

数据团队更需要一个“外交部长”

数据团队演进的五个层级,你处于哪一级?

数据团队的构成

我们有多少机会将数据、信息、知识转化为智慧?

主动性的四个层级,你处在哪一级?

作为大数据技术面试官,我喜欢什么样的应届毕业生?


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存