Spark 数据任务接口,粒度和重跑范围要先写清
大数据任务的接口不只是几个参数,还包括输入表粒度、分区范围、产出表语义和失败后的重跑规则。省略这些信息,任务能跑也很难稳定协作。
输入契约描述数据而非路径
写明每行代表什么、主键或去重键是什么、分区字段如何解释,以及哪些列允许为空。物理表名可以通过配置映射,业务代码不要到处拼接环境前缀。
输出要区分空结果和失败
某个分区没有数据可能是合法空集,也可能是上游未到。任务状态应把两者分开,并携带可追踪的运行标识。Schema 变更采用版本化策略,新增列先保证旧消费者能够忽略。
重跑只覆盖必要范围
根据数据日期、任务版本和依赖状态计算重跑分区,避免整表覆盖。写入采用临时位置或事务能力,完成校验后再提交。测试至少覆盖重复执行、上游缺分区和中途失败。
接口定得好不好,看的是另一个人能否不靠口头说明完成一次重跑。把粒度、状态和提交边界写清,返工自然会少。



