Mike Xu, Looker 的数据架构师:“弄明白你想要哪款数据工程师?”
Mike 的职责之一是倾听开发者的心声:哪些事情让他们开心?哪些让他们不爽?最多的抱怨是什么呢?嗯,不同的数据工程角色间是有细微差别的,但很多公司却不懂行。
在 Mike 看来,数据工程师主要有 4 种角色——这也是招聘者应该弄明白的事情:
数据仓库:专注于为分析来优化数据仓库,主要是负责数据的读写和管理。
工具:总能在一系列数据工具箱里,极其擅长一、两样特定的工具(编者按:类似于 Hive, Hbase,ElasticSearch等)。
架构:才华通透、“端到端” 的思考者,无论是数据收集,还是收集后帮助团队使用数据,他们需要考虑的事情多而杂,贯穿业务的很多环节。
运维(Ops):主要把时间花在建立数据库等事项,还要管理权限、操心数据安全。
8、数据工程师的技能如何随着公司规模的变化而改变
作为数据工程师,同样需要认真应对公司和业务的规模化所带来的挑战——业务更多,数据集 (Dataset)的规模也更大,所需求的数据能力和工作方式也要随之演化。
姑且做个猜测:规模越大的公司,对规模化相关的技能越加看重。是否真的如此?我们先查看查看下面的图表。
【图表:不同公司的数据工程师之间的差别】
▲纵轴表示技能,横轴则表示相对偏差(Relative Difference:某一次测量的绝对偏差占平均值的百分比)。深蓝色、天蓝色、橘色分别代表三种公司规模:1-200人、200-1000人、1000人以上。越接近图表顶部,该技能越应用于较小的公司,反之,位于底部的技能更普遍地出现在 1000 人及以上的公司里。
看完表,我们可以用数据回答先前的猜测:NO。
真实情况是,在规模更大的公司,数据工程师更在意 “企业级” 相关的技能,比如 ETL(Extract-Transform-Load)、BI(Business Intelligence:商业智能)、数据仓库等,而在较小的公司,数据工程师更多的把心力花在 Python、Java 等编程语言上(编者按:Python 和 Java 作为普通的编程语言,可以用来构建产品,这对于小公司来说属于核心业务。)
专家洞见
Will Smith,MIT 的主数据工程师 / 架构师:“数据工程 @大公司 VS. 初创公司”
Will 曾为 Nokia、Warner Bros Games 这种大公司打造过数据技术。在他看来,数据工程师所仰赖的技术,不那么取决于公司规模本身,而更应该从这么一种角度出发:你所负责的数据是“写时模式”(schema-on-write)还是“读时模式”(schema-on-read)?
他认为,大公司往往在处理数据工程的 BI 方面有所积累,Informatica、Oracle、SAP 都会接触和使用。这类公司往往在“写时模式”的环境里工作。