6.1.2.1 离线任务分类
一、按「处理阶段」分类(数据链路维度)
对应数据仓库分层架构(ODS→DWD→DWS→ADS),任务按数据加工链路的先后顺序划分,体现数据从 "原始" 到 "可用" 的流转过程。
|-----------|------------------------------------|----------------------------------------------------|----------------------------------------------------------|
| 任务类型 | 核心目标 | 关键操作 | 典型输出物 |
| 1. 数据接入任务 | 将外部系统数据(业务库、日志、文件等)同步至数据仓库,保留原始形态。 | 全量 / 增量量同步、格式转换(如 JSON 转格式→表结构)、存储映射(文件→Hive 表)。 | ODS 层表(如ods_${_login_log、ods_order_info)、HDFS 原始文件。 |
| 2. 数据清洗任务 | 对原始数据进行标准化处理,解决质量问题(脏数据、缺失值、重复值)。 | 过滤(无效数据)、去重(唯一键去重)、补全(缺失字段默认值)、格式统一(日期 / 数值标准化)。 | DWD 层明细数据(如dwd_user_login_detail、dwd_order_clean)。 |
| 3. 数据整合任务 | 按业务主题聚合明细数据,生成宽表 / 汇总表,供下游复用。 | 多表关联(如用户行为 + 订单数据)、轻度聚合(按日 / 用户汇总)、维度补充(关联维表)。 | DWS 层主题表(如dws_user_daily_behavior、dws_goods_sales_week)。 |
| 4. 数据应用任务 | 面向具体业务需求,生成直接可用的结果数据(指标、报表)。 | 指标计算(如销售额、转化率)、多维聚合(按区域 / 品类拆分)、结果输出(同步至业务库 / BI)。 | ADS 层结果表(如ads_sales_summary、ads_user_active_stats)、报表文件。 |
点击图片可查看完整电子表格
二、按「业务场景」分类(价值目标维度)
基于任务服务的业务需求,体现离线任务的实际业务价值,不同场景的任务设计重点差异显著。
|-------------|-----------------------------------------|------------------------------------------------|-----------------------------------------------------|
| 任务类型 | 业务目标 | 设计重点 | 典型示例 |
| 1. 业务指标计算任务 | 计算核心业务指标(如销量、营收、用户活跃度),支撑业务监控与决策。 | 指标口径标准化、计算逻辑可追溯、结果可校验。 | - 每日计算 "平台 GMV、订单量、客单价" - 每周统计 "各区域用户留存率、转化率" |
| 2. 数据治理任务 | 保障数据质量(校验、清洗、修复),管理数据生命周期(归档、删除)。 | 质量规则定义(非空 / 唯一性校验)、生命周期自动化策略(如 30 天前数据归档)。 | - 每日校验订单表主键非空性,输出异常数据报表 - 每月归档 1 年前的日志数据至低成本存储 |
| 3. 特征工程任务 | 为机器学习模型提供训练数据(如用户画像、风控特征)。 | 特征提取(如用户消费频次)、特征转换(归一化、编码)、格式适配(模型输入格式)。 | - 构建 "用户信用特征表"(含还款记录、逾期次数等) - 生成 "商品推荐特征"(点击量、收藏率等) |
| 4. 报表生成任务 | 生成固定格式的业务报表(日报 / 周报 / 月报),供运营 / 管理团队查看。 | 结果格式标准化(如 Excel/SQL 表)、自动化推送(邮件 / BI 平台)、历史归档。 | - 每日生成 "电商运营日报" 并邮件推送 - 每月生成 "财务报表" 同步至 BI 系统 |
点击图片可查看完整电子表格
三、按「调度频率」分类(执行周期维度)
基于任务的执行周期,决定调度策略(如 Cron 表达式),与业务对数据时效性的要求直接相关。
|-----------|-------------------------|-----------------------------------|----------------------------------------|
| 任务类型 | 调度周期 | 核心特点 | 适用场景 |
| 1. 全量任务 | 长周期 / 不定期(如每月 1 次、初始化时) | 处理历史全量数据,计算成本高、耗时久,适合数据量小或低频更新场景。 | - 年度数据全量归档 - 数据仓库初始化时同步历史订单(10 年数据) |
| 2. 每日增量任务 | 每日 1 次(如凌晨 2 点) | 仅处理当日新增数据,计算效率高,占离线任务的 70% 以上。 | - 每日同步新增订单并计算当日销售额 - 每日更新用户行为明细 |
| 3. 高频增量任务 | 每小时 / 每 6 小时 | 接近准实时,通过高频调度提升数据新鲜度,适合日内监控场景。 | - 每小时更新近 1 小时商品点击量 - 每 6 小时统计日内各渠道新用户数 |
| 4. 周期性任务 | 每周 / 每月 1 次 | 按业务周期(周 / 月)聚合数据,适合周期性总结场景。 | - 每周计算周活用户数、周销售额 - 每月生成月度财务报表 |
点击图片可查看完整电子表格
四、按「技术实现」分类(工具选型维度)
基于任务的技术栈和实现方式,反映任务的技术复杂度和工具依赖。
|------------|------------------------------------------------|-----------------------------------------|---------------------------------------------------------|
| 任务类型 | 核心技术 / 工具 | 技术特点 | 典型任务示例 |
| 1. SQL 类任务 | Hive SQL、Spark SQL、Presto | 结构化数据处理,开发效率高(SQL 编写),适合 80% 以上的常规计算场景。 | - 用 Hive SQL 清洗订单数据 - 用 Spark SQL 关联用户表与商品表生成宽表 |
| 2. 编程类任务 | Spark Core(Scala/Python)、MapReduce、Flink Batch | 需代码开发,适合复杂逻辑(如自定义算法、多轮迭代)、非结构化数据处理。 | - 用 Spark Python 实现用户行为路径分析 - 用 MapReduce 处理文本分词 |
| 3. 同步类任务 | DataX、Sqoop、Flink CDC、Canal、Hadoop DistCp | 无复杂计算,仅做数据传输 / 迁移,是数据链路的基础支撑。 | - 用 DataX 将 Hive 结果同步至 MySQL - 用 DistCp 迁移 HDFS 数据至备份集群 |
| 4. 脚本类任务 | Shell、Python 脚本(辅助操作) | 用于任务调度、日志处理、结果校验等辅助工作,常与其他任务配合。 | - Shell 脚本调用 Spark SQL 并检查执行结果 - Python 脚本生成数据质量校验报告 |
点击图片可查看完整电子表格
总结
四个维度的分类并非孤立,一个任务可同时属于多个类别(如 "每日订单 DWD 清洗任务":处理阶段属数据清洗、业务场景属数据治理、调度频率属每日增量、技术实现属 SQL 类)
. 通过多维度分类,可帮助团队:
- 明确任务定位:快速判断任务在数据链路中的角色和业务价值;
- 优化技术选型:如高频增量任务优先选 Spark SQL(效率高),复杂逻辑任务用编程类实现;
- 精细化调度:根据频率制定调度策略(如每日任务凌晨执行,高频任务避开业务高峰)。