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

发布于: 2020 年 07 月 14 日
那些年,我在阿里当数据开发

写在前面的话

之前,我在阿里的数据部门做过5年的数据开发,后来也接触了很多外部的数据项目,在阿里的时候,经常会和一些生态伙伴公司做一些交付项目。

在这些合作伙伴的数据开发中,不管是新人还是老人,都能看到我曾经的一些影子,所以我想借助这篇文章,讲述一下我在阿里当数据开发的一些经历 ,希望在个人发展上对他们有一点帮助。

我的阿里数据开发之路

我在进阿里前,是做银行的数据仓库建设,用的是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的方法,以及针对不同的分析场景需要采用什么样的数据存储,是MYADB。

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

开始了数据产品之路

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

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

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

发布于: 2020 年 07 月 14 日 阅读数: 30
用户头像

DeeperMan

关注

还未添加个人签名 2020.05.20 加入

20年互联网从业者大数据产品经验,最早的数据中台项目亲历者 目前兴趣点数据中台、智能数据体系构建,也会关注新生代数智化营销及分析类工具

评论

发布
暂无评论
那些年,我在阿里当数据开发