前言
刚刚结束一段时长一年的工作,去年七月份入职一个世界五百强公司,为客户提供互联网技术服务。单从企业的资历来说,历史悠久,分公司林立,但是不同位置的分公司各分其职。我的公司算是其中提供基础技术支持的分公司,从详细设计做到结合测试,偶尔会涉及本番测试。从技术上讲就是传统认识当中的外包公司,但是公司本身规模较大,技术方向也非常多,同样也面对很多问题,比如没有核心产品,没有TOP-V设计,对NEW-IT的转型缓慢。我相信这些问题如果在公司上层的决策中会有一个相对完美的解决方案。
从职工的角度来讲,外企带来的是稳定的工作机会,相对平等的薪资待遇,没有严重剥削劳动力的现象,没有996高强度的消耗,需要的就是外语能力绝对的过关。
公司文化非常open和多元,能容纳不同的思维和个性的人,注重个人品质,正直,诚实,相互尊重。
我在这样的公司中的一个项目组中担任ETL相关的工作,这接近一年时间的工作,有一些技术上和工作中的经验和感受想记录一下,分享一下。
ETL浅谈
之前写过一篇文章介绍过一些唾手可得的ETL介绍,大家可以先简单了解一下。
实际上ETL技术是一项很好入门的技术,相对来说门槛并不高,要求你对SQL熟练掌握,数据库清晰的了解。具体的工作要求可以参看各大公司的招聘要求,基本就是ETL开发过程中需要的基本技能。
上面的是华为招聘的BI工程师岗位,面向的是拥有五年以上经验的BI工程师。至于刚进入工作岗位的小白来说,技能要求相对会降低。
基础的数据库能力是必不可少的,SQL结构化查询语言是必会不可的基础中的基础。关于常用的ETL软件与工具,在进入工作岗位中,会在日常实践中快速学会,普遍来讲3到4个月,刚毕业的毕业生就可以着手ETL的开发。
ETL工程师是典型的“越老越值钱”,真正能设计出好的ETL工作流的工程师,对整个业务数据有非常好的了解,能够综合考虑当前的数据和最终终端呈现出报表的结果,做出一个最良好的设计。这一点是非常难以做到的,需要长期的项目经验积累。
这一点zhihu有位答友写的很好。
ETL绝对是越老越牛逼的一个领域,但是你要做到四点:
1、至少有比较强的业务学习能力,对所在的领域及其数据有所了解。这是这个领域重要的护城河。
2、熟悉ETL的方法论,这个方法论基本我没有找到过很好的书,但是ETL大师曾经的几次交流,已经足以应付很多项目,如果还有自己更多的总结,那么绝对也能成为大师。这是另一个重要的护城河。
3、ETL是可以创造“人月神话”的,也就是只要你的技术逻辑思维好,了解了ETL本质的精髓,一个毕业生团队半年就可以成为很强的战斗力。他们能否超越你,取决于前两点,但是如果你规则定好,他们大部分人永远都知其然不知其所以然。
4、用ETL的思维可以创造神奇,让他们程序员们要干上1个月才能解决的问题,在你这里1天就可以有结果。同时还能彻底改变你对数据处理这个领域的观点。
作者:決題達零(瑞理)
链接:https://www.zhihu.com/question/316809572/answer/629615456
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
从我个人经历来看,短时间的ETL工作只能是非常浅层的理解,最多算作一个熟练工,BI架构师之路异常的漫长。如果能够对设计模式有深入的了解,将是进一步提升的基础,但是近些年面临的问题是,大型且完整的ETL项目变得逐渐减少,未来可能走向精细化,小型化的道路。
当大部分公司完成了ETL的基础建设,将是漫长的维护过程。想做好ETL必须对数据有很好的sense,同时精通各种数据清洗方法,数据流的分析,同样也离不开对实际问题的建模,不然ETL将无疑于数据库,单纯变成了一个取数据的系统。
我认为实际工作中需要特别注意的有几点内容:
- 明确数据从哪里来,经过几层,要流到哪里去,最终要呈现一个什么样的图表和数据表现。
- 明确日常使用的工具的基本特性和使用方法。
- 什么是事实表,什么是维度表,什么是attribute什么是metric。
- 如何设计工作流,理解数据表如何结合,如何取到想要的数据。
ETL是个很传统的技术了,相对已经非常成熟,需要长时间积累才能提升到较高的水平。
笔者仅仅一年的经验而已,经验未免有失偏颇,希望读者可以辩证看待,多多交流。