文 / STEM Career 编辑部
SQL会写连接和聚合以后,下一步可以继续做业务分析,也可以向数据工程或分析工程发展。但三个方向都可能写SQL,真正的区别不在于查询写得多复杂,而在于你负责哪一段数据工作,以及交付怎样被别人使用。
数据工程更多关注数据进入和运行的可靠性,分析工程更多关注可复用的模型与口径,数据分析则更直接解释业务问题。真实岗位会交叉,本篇用一个订单场景让任务差异变得可观察,帮助你安排项目和申请。
从数据使用链条理解分工
设想业务团队每天需要一份订单结果。原始记录先从系统进入数据环境,经过清理与组织,形成可靠表格,再用于分析。不同任务可能由不同人员负责,也可能在小团队里合并到同一岗位。
IBM的数据工程介绍从数据系统的汇集、存储和使用解释这一领域;dbt的分析工程介绍强调为使用者提供经过转换、测试和说明的数据集。它们帮助理解工作,不代表所有公司的岗位边界完全相同。
读JD时,标出最常出现的动作:接入、运行、建模、测试、解释还是可视化。工具名称可记录在下一栏,但不要先凭看到Python或dbt就决定自己适合哪个方向。
数据工程要让数据持续可用
数据工程任务可能包含来源接入、存储、调度、处理与运行问题。一次读入文件成功只是开始,还要考虑重复、缺失、格式变化、迟到记录和失败后怎样恢复。
对学生作品,可以先用小规模文件模拟每天新增数据,设计可以重复运行的处理。重点是结果能否稳定,出错时是否留下清楚信息;不必为了显得专业,先搭一个远超练习需要的复杂平台。
如果职位要求云平台、分布式处理或特定系统,则需要补相应证据。小脚本可以证明部分基础,却不能替代明确要求的生产经验或技术能力。项目范围与岗位要求应分别描述。
分析工程要让模型可以被信任
分析工程可能把原始数据整理成复用表,定义字段和关系,建立质量检查并说明指标逻辑。使用者应能理解一行代表什么、某个金额包括哪些状态、变更会影响哪些下游结果。
这类任务不只是把SQL放进一个工具。查询能跑,不代表口径正确;输出没有空值,也不代表业务含义可靠。你需要把技术检查与业务定义联系起来,再说明不同人员如何共同维护。
学生可以展示模型图、字段说明、质量规则和一次变更记录。是否使用dbt或其他工具,根据目标岗位与练习需要决定。不要将工具认证自动解释为已经具备全部分析工程能力。
数据分析要把可靠数据用于判断
分析人员可能解释变化、比较群体、提出行动建议并讨论不确定性。它与分析工程可以共享建模能力,但交付通常更靠近某个业务问题,而非主要维护所有人复用的数据基础。
比如“本月取消增加是为什么”需要先确认数据,再比较时间、商品或用户群体,最后说明证据支持什么。一个显著差异不自动代表因果,也不能把报表上的变化全部归因于某次活动。
已有数据与商业分析面试指南讨论指标与业务判断。本篇将重点放在这些分析之前的数据任务,帮助你理解相邻方向,而非重复练一组聚合题。
三类工作对应不同交付
| 方向 | 主要交付 | 常见追问 | 适合起步的作品 |
|---|---|---|---|
| 数据工程 | 可持续运行的处理流程 | 失败后怎样恢复 | 文件接入与重复运行 |
| 分析工程 | 可复用模型和口径 | 一行代表什么 | 订单模型及质量规则 |
| 数据分析 | 有依据的业务解释 | 结论怎样支持行动 | 一页问题分析 |
表中的名称只是教学分类。真实职位可能将报表、接入和分析合并,你应统计主要职责与责任范围,再判断自己最需要展示哪一类证据。
订单事件案例从粒度开始
以下为原创练习。建立六条模拟事件:订单甲创建、付款、退款;订单乙创建、付款;订单丙创建。一张事件表里,一个订单有多条记录。如果直接把事件行数叫作订单数,就会把六条事件误认为六个订单。
先写粒度:“每行是某订单在某时间的一次状态事件。”再定义订单表如何得到,每个订单应该有怎样的标识和状态。需要报告某日订单时,还要决定按创建日、付款日还是其他日期统计。
数据工程路线关注事件如何完整进入;分析工程路线关注怎样形成不会重复计数的订单模型;分析路线关注退款或付款表现意味着什么。三条路线的差异从同一个基础错误就能看出来。
接入练习检查重复与迟到
把六条事件分成两天文件,第二天重复出现第一天的一条记录,另有一条日期属于第一天却晚到。先定义稳定事件标识,再决定重复如何处理,不能按整行相同就假定所有重复都容易识别。
同一个文件再次运行后,结果应符合你设定的规则,而非把记录再加一遍。迟到记录是否更新过去日期的汇总,也需要说明。这里的目标是检查流程行为,不是保证适用于所有真实数据系统。
给练习保存一份运行记录:输入文件、接收数量、重复数量、被拒绝原因和最终输出。结果异常时,能够追溯来源,比只留一张成功截图更有价值。
建模练习说明状态与金额
订单甲已经付款又退款,订单乙付款,订单丙未付款。报告“付款订单数”时,需要定义历史上曾付款,还是当前有效付款;报告金额时,需要区分原始付款、退款与净额。两种口径可能都可用,但必须命名清楚。
用小表分别展示事件、订单和汇总。每一层写明主键、粒度与转换规则,不把不同层级字段随意连接。需要关联用户或商品时,先判断一对一还是一对多,否则可能在连接后重复金额。
这份建模说明应能让另一个同学按规则重新得到结果。若他必须不断问你“这个字段到底什么意思”,先修文档,而不是继续增加更多图表。
质量规则要对应真实风险
主键不重复、必要字段非空、状态值在允许范围,都是可以开始的检查。但规则需要联系任务:事件标识重复会影响接入,订单标识在订单表重复会影响计数,退款金额与原始记录关系则要按模拟规则核对。
不要给所有数值都设为必须大于零。退款可能在某种模型中单列为正金额,也可能在另一种设计中带符号;缺失字段也可能在某些状态下合理。先说明设计,再设置检查,避免测试把正确数据当错误。
为每条规则写一个正常样本和一个错误样本。检查没有报错,只说明这些规则未发现问题,不代表数据不存在其他缺陷。可以把尚未覆盖的风险列到作品限制里。
变更练习考察影响范围
给练习加入部分退款,原来“退款就取消整个订单”的简化规则可能不再适用。你需要更新模型、测试和说明,并检查哪些汇总会发生变化。只改一个SQL文件,文档仍保留旧定义,会让使用者理解错误。
变更前后各保存一组结果,说明差异来自业务规则还是代码问题。分析工程的价值在于让口径变化被理解,而不是隐藏变化以保持报表数字稳定。
数据工程路线则可把输入字段改名或添加缺失列,检查接入是否明确报错。不同任务的变更练习不相同,作品里应该讲清你重点处理了哪一层。
一个选择方向的学生案例
小杜读统计相关硕士,有SQL课程与报表项目,这是虚构教学人物。她完成订单练习后发现,对解释指标差异有兴趣,也愿意维护口径和模型;但接入流程的调度与运行问题目前掌握较少。
她可以优先筛选分析工程和分析岗位,继续补版本管理、质量检查和模型说明。若她更喜欢定位文件失败、处理重复运行,也可以将数据工程作为探索重点,但要补基础系统能力。
方向选择不是终身标签。近期申请按已能展示的任务推进,学习按下一层缺口安排。不要为了热门名称把原有强项全部放弃,也不要把愿意学习写成已经有生产经验。
数据字典要说明怎样正确使用
给订单模型制作一页字典,写字段、类型、含义、允许为空的条件与例子。单写“status是状态”没有解决使用问题,应说明它是当前状态、某次事件状态,还是经过规则转换的报告状态。
再写一条使用提醒:统计创建订单按哪个日期,净额需要哪些记录,哪些表不能直接按订单标识连接。如果使用者忽略说明,会出现什么错误?字典应帮助避免这些错误,而不是重复列名。
请同学只看字典做一个小查询,检查他能否得到与你一致的结果。若不一致,先定位口径和关系,再修说明。这个交接过程可以展示分析工程如何支持使用者,也能帮助数据工程理解下游需要。
对重复运行做一次具体验收
把第一天文件导入两次,按设定的事件标识规则,第二次不应把相同记录再次加入最终结果。随后加入一条更正记录,说明它是新增事件、更新已有事件还是应拒绝输入。不同方案都可能合理,关键是规则明确且结果一致。
记录第一次、第二次与更正后的数量,并解释变化。不能只说使用了去重,所以结果可靠;去重依据选择错误,可能删掉本应保留的事件。检查需要包含一条真正重复和一条内容相似但标识不同的记录。
最后模拟某文件缺少关键字段,确认流程会明确报告问题,不用默认值悄悄制造看似完整的结果。错误信息应帮助定位输入与原因,而非只显示处理失败。验收的范围仍是小练习,真实数据系统还需要按其运行要求扩展。
展示数据链条时,再补一张责任图:谁提供原始记录,谁维护接入,谁定义模型,谁使用指标。学生项目可以由自己完成全部练习,但应知道真实团队可能拆分责任。遇到结果不一致时,先定位是哪一层的定义或输入变化,再找到相应记录,不把所有错误都归因于SQL写得不好。
项目交付后可以请同学尝试增加一个新的业务问题。如果需要你逐步解释才能使用现有数据,就检查模型与文档是否清楚;如果确实超出原范围,则说明需要什么新资料和变更。可复用不是任何问题都能直接回答,而是已定义的用途可以可靠使用。
四周准备与作品展示
第一周完成数据粒度和小样本;第二周实现接入或模型的主要流程;第三周专门加入异常与变化;第四周整理一页说明和面试讲解。每周只扩展一项关键任务,避免变成不断更换工具的练习。
作品展示可以从一个失败开始:重复事件导致订单数增加,我如何发现并修正。随后说明规则、验证和限制。这比只展示“用了哪些技术栈”更能让招聘方理解你的判断。
结合求职作品集指南整理文件、运行方法和本人贡献。若需要比较数据工程与分析工程岗位,可以把JD、模型说明和缺口表发给蒸汽教育,先确认准备路线,再决定课程与申请投入。
常见问题(FAQ)
Analytics Engineer就是会SQL的数据分析师吗
不宜这样简化。分析工程通常更关注可复用的数据模型、测试和文档,具体岗位可能与分析职责交叉,仍需读完整JD。
学会dbt就能直接申请吗
工具使用只是部分证据。还应能解释数据粒度、口径、质量检查与变更影响,并符合职位的其他必要条件。
数据工程一定要做大数据集群吗
不一定。不同岗位的平台与规模不同,先理解接入、存储、处理、运行与可靠性任务,再按目标职位补相关技术。
先了解目标市场的服务内容,也可以添加顾问微信咨询求职准备。
