March 23, 2016

实习结束了

上个周五做完最后一天工作,结束了持续五个多月的实习,回到学校。睡了两天,开始学R,努力进行毕业设计。

最后离开的时候给同事们买了一些礼物,向他们一一道谢,然后周五晚上留下来玩了最后一次杀人。结束实习是什么心情?我觉得那天给朋友发的微信挺贴切:“早上不去上班,中午不去杀人,下午不用看代码,晚上不用挤地铁,还真的挺幸福的…”确切的说,每天睡到自然醒,然后在图书馆呆着学点东西,还真的挺幸福的。总之珍惜所剩不多的大学生活吧!

下面尝试用问答的形式展开~

我的实习职位叫做BI Engineer,BI的全称是Business Intelligence。用我自己的理解,一个BI系统需要从各方收集数据,将这些数据清洗整合,进行分析,并形成报表帮助企业决策。如上只是个人理解,这里也可以看到一个比较详细准确的定义。

我所在的BI组大概有10个人,内部有三个小组,每个小组负责的内容不太一样。也就是说,即使都是BI做的事情也可能是完全不一样的。我所在的小组侧重可视化,用Tableau和sql比较多;其他小组大概是整合用户和市场数据提供给市场等部门做决策,有的也就偏data一些,甚至我觉得称不上BI了,他们会更多地倚重Pentaho,还会用到Hadoop之类的数据处理工具。

这就要先从AA的产品说起。AA的产品线主要分两大块,免费产品付费产品。AA向App开发者提供免费的Analytics工具的同时,也可以通过资源置换,获得市场上这一部分App的下载量/收益等数据,剩下没有直接得到的数据,主要由核心数据团队推算出来。

AA的付费产品叫AA Intelligence,提供App的各类估算数据——不但有每个App的排名、下载量和收益,还有更详细的信息:比如活跃用户数、市场渗透率等等,就不在此详细展开。其中Enterprise Intelligence是最贵的产品,对购买这类产品的客户,客户不仅可以看到网页上的所有数据,还可以获得API,csv报表,Tableau可视化报表等多种数据信息。(好像AA刚对付费产品名称/种类做了一些修改,现在的付费产品已经不叫AA Intelligence了,而叫Market Data,我也不是很清楚…)而我们小组的几个人的主要工作,就是每个月为这些大客户交付Tableau可视化报表——听起来并不算复杂。

具体的实施从每个月的某一天我们从Delivery Team得到上个月的数据开始。首先,我们需要跑一些Pentaho的流程:更新到最新的App配对;接着把Delivery给我们的几个csv文件导入数据库中并进行一系列的ETL处理;同时从Salesforce更新客户合同;然后,使用我们准备好的Tableau报表模板(包含几个有关App和发行商的可视化报表),跑一系列脚本,按每个客户合同上的不同需要,将数据库中的相应数据充到为这个客户定制的Tableau报表中;最后,将这些报表上传到客户的下载路径下,就可以完成交付了。当然这是最简单的描述,实际执行起来还有更多步骤和需要注意的地方。

这个流程大概会花费六七天,其中耗时最长的就是将数据充进Tableau的过程,也就是Tableau中extract状态下的refresh操作。在这一个月的剩余时间,我们会对Tableau的模板以及ETL的存储过程做一些修补。如果有一些新客户进来,需要为他们做一次单独的产品交付;如果市场或者销售有什么问题,也要做好解答。

讲一讲在这个过程中我觉得值得考虑的地方。首先是Tableau报表:我们需要交付的Tableau报表主要有两个,第一个包含市场上每个App的信息,第二个包含App市场的宏观信息。客户合同也即客户的报表数据会有差异,比如可能只买几个国家、几个App种类的数据,或者只买一段时间的数据。对于那些买了很多数据的客户,他们的第一个报表会相当大,甚至达到几个GB——比一个存储空间不大的U盘都要大。那些最大的报表,可能需要连续充近一天的数据,而因为数据很多、报表很大,问题就很多。首先,这么大的报表比较难下载不下来,有时还需要销售用U盘拷走送给客户;其次,打开的时候会非常慢,需要好几分钟都是很正常的;同时,熟悉Tableau的用户会知道Tableau上会有一些动态操作,这些操作的原理是执行sql,由于数据很大,进行这些展示也需要等待很久的时间,甚至有的时候在进行filter选项的时候软件会意外闪退,这对用户体验是无比糟糕的。

其次是销售和市场反映过来的问题,其中有一部分都是有关网页版的数据和Tableau报表的数据不一致,甚至相差较大。这类问题通常会有几个思路,比较容易的一点有关上文提到的App配对逻辑。我们的App配对是实时变动的,网页上,数据是动态的,App配对也是实时的;而Tableau报表的数据是以月为单位的,App配对也只能按照交付时的静态配对为准,因此App配对的变化会产生一些数据的差异。另外的思路就比较棘手了,也就是,Web组和我们组可能在一些数据上的逻辑会有不一致的地方,这不仅比较难调查,而且很难针对逻辑做修改。

就我的观察,似乎在网页上查看数据比在Tableau上查看数据好很多。首先,网页上的数据更全面,比如可以按日查看数据,还比如可以查看市场渗透率等信息,这在Tableau上都是没有展示的;其次,网页上查看会快很多,搜索一个应用并查看数据无需太长时间,但是Tableau上可能就需要等很久。这可能也就是一部分客户不会要Tableau报表的原因。当然,Tableau的优点就是,数据能够呈现地更加详细,有些数据在网页上根本查看不到,所以Tableau报表仍旧存在,很多很大的客户仍然在用。但总之我自己还是觉得数据可视化Web端是趋势吧。

收获感悟还是蛮多的。AA应该是我第一家正经实习的公司,之前虽然也有过实习,但是毕竟时间很短,而且大家都是实习生打打闹闹的,不算很正式。在AA实习,让我第一次体会到了有一份工作的感觉。什么感觉呢?首先,我弄明白了一个公司的商业运作模式:AA的商业模式是什么,它是怎么获利的,工程师、产品、销售、市场、行政各自的职能是什么,他们是怎样工作共同为公司创造价值的。(所以可能还是会先从自己专业的角度观察?)

其次,学到了很多东西,尤其是考虑到我一开始进组的时候连数据库长什么样子都不知道,离开的时候至少已经能很熟练的使用sql了。不仅是sql,我也学会了很多其他技术,至少算是迈出了宝贵的第一步。我也亲身感受工程师团队的日常开发状态,从每天早晨的Scrum组会开始,观察AA的工程是怎样迅速迭代,进行敏捷开发。我发现加入一家公司很重要,但更重要的是加入哪个组,组里的业务以及组内文化可能都有差异,比如我们组整体比较年轻,而我们对面的运维组都经验十分丰富,时时守着服务器工作压力也很大。

但是也的确,熟悉组里的整个工作流程以及熟悉AA产品线和产品逻辑,花费了比我想象中更长的时间。一方面,很多东西没有人系统教,需要一点点摸索;另一方面,我之前也没有相关经验,技术上接近一窍不通。所以有的时候我会觉得我实在太渣了,就会很伤心。记得年前有一次我给坤哥打电话,问他我熟悉产品和流程太慢怎么办,坤哥还给了我一些建议,虽然有些还没来得及用得上,但总之觉得自己工作中效率也不是很高,领悟能力也有限,有的时候也很沮丧和挫败,觉得许多东西原本可以接受的更快一些。不过后来我也意识到,公司对实习生的要求也没那么高。最后就是沟通很重要,这一点我觉得我做的还可以。总之希望有了这些感受,今后真的能好好读书,至少好好学习技术吧。

接着是一些感受,越来越觉得做自己感兴趣的工作很重要。每天的七八个小时都在工作,加上上班下班挤地铁,虽然不加班,其实留给自己的空闲时间也不算多,通常回到学校也就什么也不想做了=.=如果工作自己还不感兴趣,那真的会不开心。好在我觉得我在实习中,从始至终都是很开心的,学到了很多东西,学习的过程也很有意思。或许也像是一个围城?在学校的时候想出来实习,真正实习的时候其实还是更想念在学校的生活。实习也是一个很好的探索自己的过程。比如我想我应该不会再做BI了,虽然BI挺有意思,但是我觉得它过于传统,也不算公司的核心部门,总之还想做一些更有意思的工作。也接触了AA的pm,觉得AA的pm很神通广大,真的好厉害~

AA还是给我留下很好很好的印象的。我觉得首先就是它一直在很快地发展,从我进AA不久的一段时间,公司就完成了一次E轮融资一次收购。能看到它的市场份额一直在扩大,它的产品线一直在完善,是非常有前景的一家公司,我觉得对于一家公司来说,不断成长是最重要的。

其次就是公司文化很透明,会尊重每个人的价值,我和公司同事相处起来也会感到非常融洽。免费的早午饭由美餐网提供,都很好吃,厨房有很多零食饮料,搞活动的时候还可以蹭很多蛋糕。北京这边主要是工程师团队,也有市场、销售等部门,总部在旧金山,在全球的很多城市都有办公室,而且还在不断开拓。AA在评估任务的时候是以不加班为标准的,所以大家加班不是很多,周末也都会休息,应该还是挺难得的~最后就是至今AA仍然几乎不招应届生,实习生也非常少,一般都是招来senior级别有工作经验的人,所以做起事情来应该都很快很上手。

想更多了解AA可以查看这个介绍视频,还能看到办公室的样子~想到AA工作(或者实习),可以直接在这里查看以及投简历(或者也可以找我呀…)。AA的Recruiting团队应该是我所见到最友善和敬业的了,所以我也成打广告的了>_<    

尽管在介绍中努力保持描述的准确性,但由于我只是短暂打过酱油的实习生,加上AA的产品随着时间会有变化,还是不免有说的不对的地方。另外涉及不该说的内容,我应该都是不怎么知道的…即使知道微微的一小点,也应该没有写出来,希望不要有什么不该说的话出现。总之如果有,烦请直接留言,我能马上看到,并且一定会立即改正的~

Share with your friends: Twitter Facebook
comments powered by Disqus