提示:数仓降本增效的一些方法
一、计算成本
1. 下线任务或服务
- 无用的任务及时下线;
- 重复功能的任务下线;
- 无用的服务及时停掉(Thrift JDBC/ODBC Server)
2. 任务资源利用率
- 小任务大资源(使用默认资源/开启了动态资源分配),大部分时间浪费在申请和释放资源上;
- driver资源过剩: driver内存、核数过多;
- executor资源过剩: executor内存申请过多、核数过多;
- 任务的并行度少于总核数, 建议并行度是总核数的2-4倍;
- 任务资源过少, oom或缩容导致节点回收(运行时间长碰上的几率大);
- 数据倾斜
3. 集群资源
- 任务定时分散部署,避免集中运行;
- 重点任务先运行,不重要的可以低峰期运行;
- 合理的扩缩容策略;
- 合理的默认资源配置;
- 降配资源(master/rds的CPU、内存、磁盘);
- 非重要集群中应用spot节点, 比如adhoc查询;
- adhoc集群可非高可用模式, 非工作时段资源降到最低;
4. 数据质量校验
重点的表任务完成后立即进行质量校验,不通过时阻断向下执行,避免下游无意义的跑任务;
5. 模型优化
6. 运行模式
client、local模式会占用调度节点的资源, 可能导致调度节点拥堵,造成集群有资源而要等待调度,生产环境最好用cluster模式运行
7. 任务诊断
借助工具对任务进行诊断, 发掘有问题的任务, 并给出优化意见.
二、存储成本
三、环境优化
配置合理:
过高,浪费资源
过低,出现木桶效应