10 年经验面试:公司要求大数据成本一年降 30%,你怎么做?
面试怎么回答
我会先把账算清楚:按计算、存储、网络拆,再通过资源队列和标签分摊到业务线、团队,甚至到任务和表,找出占大头的部分。措施先易后难:先清理浪费,根据血缘和访问记录下线没人用的任务和报表、冷数据降级和生命周期管理、合并重复计算的指标,这部分见效最快;再对成本最高的任务做调优,比如处理倾斜、回收过度分配的资源、全量改增量;然后在资源层面提升利用率,混部、错峰、弹性扩缩容、预留和 Spot 实例,引擎替换和存算分离这种大改单独立项评估。为了防止反弹,建立月度成本看板、新任务资源评估和审批,把成本纳入团队目标。推动上把 30% 拆到各项措施和各团队,每项有负责人和预估收益,先用清理浪费拿到快速成果;下线报表要和业务方用成本数据沟通;同时守住核心链路 SLA 和数据质量,每次调整都有回滚方案。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
降本增效是这几年数据负责人的必修课。普通开发回答这道题会讲「小文件合并、调参数」;负责人要讲的是:怎么把成本看清楚、怎么定目标、怎么推动几十个人和多个业务方一起降,并且不影响业务。
第一步:把账算清楚
不知道钱花在哪,就没法降:
- 按资源拆:计算(集群、Serverless、实时任务)、存储(HDFS、对象存储、OLAP 引擎)、网络和其他云服务各占多少;
- 按归属拆:成本分摊到业务线、团队、项目,甚至到单个任务和单张表,通过资源队列、标签、元数据实现;
- 找大头:通常 20% 的任务和表占了 80% 的成本。
第二步:分几类做,先易后难
- 清理浪费(见效最快):
- 下线没人用的任务和表:根据血缘和访问记录,找出几个月没人查询的报表和下游;
- 冷数据降级:老分区转到低频或归档存储,按生命周期自动删除临时表;
- 清理重复建设:多个团队各自算一遍的相同指标合并。
- 优化任务:
- 针对成本最高的几十个任务做调优:数据倾斜、过度分配的资源、不必要的全量计算改增量;
- 存储格式和压缩、小文件合并。
- 资源和架构层面:
- 提高集群利用率:离线和实时混部、错峰调度、弹性扩缩容;
- 云上用预留实例、Spot 实例;评估引擎替换、存算分离等方案,这类收益大但周期长、风险高,要单独立项。
- 机制层面(防止反弹):
- 成本看板每月公开到团队和业务线;
- 新任务上线要评估资源,大任务要审批;
- 把成本纳入团队目标。
第三步:推动和节奏
- 目标拆解:30% 拆到各类措施和各个团队,每一项有负责人和预计收益;
- 先拿快的成果:前两个月清理浪费通常就能拿到 10%–15%,建立信心;
- 业务方配合:下线报表、缩短数据保留期要和业务方确认,用「这张报表一年花 X 万,近三个月没人看」来沟通;
- 守住底线:核心链路 SLA 和数据质量不能因为降本而下降,每次调整做好回滚方案。