就像软件工程师一样,数据工程师应该不断的寻找使他们工作自动化的方式,构建能让他们爬上更复杂阶梯的抽象概念。虽然由于环境不同,可自动化的工作流程性质不尽相同,却都有着自动化的需求。 所需技能 ▼ 精通SQL: 如果英语是业务的交流工具,那么SQL就是数据的交流工具。一个不会流利的英语的业务人员能有多大的成就?不管任何技术时代的产生和更替,atv,SQL一直是数据的通用语。数据工程师应该有能用SQL表达任何‘相关子查询’和窗口函数复杂度的技术能力。对数据工程师来说初始SQL/DML/DDL简单到根本没有难度。即使是没有接触过SQL的人,他也能读懂并明白数据库的执行计划,了解所有步骤,知道程序怎么被调用,连接算法的不同和执行计划内的分布式维度。 数据模型技能: 作为一个数据工程师,有对实体-关系模型的认知反射,规范化的清晰认识,权衡反规范化的敏锐直觉。数据工程师应该熟悉维度建模及相关概念与术语。 ETL设计: 能够写出有效率、有弹性的、“可发展”的ETL任务是一个关键。我计划在下一博客中深入这个话题。 架构项目: 就如任何一个领域的专家的专业技能一样,数据工程师需要一个较高层次的综括,对大多数的工具,平台,库,和其他供他支配的资源的了解。认识到不同类型的数据库、计算引擎、流处理器、消息队列、工作流协调器、序列化格式及其他相关技术的属性、用例、微妙之处。在设计解决方案的时候,他应该有能力选择即将要使用的技术,并有一个构想去协调怎么使他们一起更好地工作。 总体来说 ▼ 过去在硅谷Airbnb,脸书和雅虎工作的五年里,跟来自谷歌、Netflix、亚马逊,优步、Lyft等几十个不同规模大小,不同类型的公司的数据团队交谈过。我观察到越来越多的人对数据工程师的职责范围是什么达成共识,觉得有必要分享我的感悟。 我希望这篇文章能够成为类似数据工程师的一个宣言,我也希望抛砖引玉,使在这个相关领域中,从事这类工作的人之间能产生更多的火花。 (责任编辑:本港台直播) |