大数据-ETL

2026-8-24 diaba

ETL = Extract‑Transform‑Load,抽取 (Extract)、转换 (Transform)、加载 (Load),是数据仓库、大数据领域最基础的数据处理流程。

拆解含义

  1. Extract 抽取 从各个源系统把数据读出来。

源可以:业务 MySQL 库、日志文件、接口、Hive 表、第三方数据源。 例:把信贷业务库的借款表、还款流水同步抽取出来。

  1. Transform 转换(最核心) 对原始数据做清洗、加工、计算、归一化。 常见处理:
  • 清洗:去重、过滤脏数据、处理 null、异常值
  • 格式转换:时间格式统一、编码转换
  • 计算:衍生指标、统计聚合、WOE 计算、风控特征加工
  • 脱敏:手机号、身份证脱敏
  • 关联多表 join,生成宽表
  1. Load 加载 把加工完成的数据写入目标存储。

目标:Hive 数仓、ClickHouse、业务库、报表库。

传统 ETL 顺序:先抽取 → 转换 → 加载。

ELT 和 ETL 的区别

  • ETL:Transform 在中间,转换发生在数据进入目标库之前 数据先拿出来,在外部引擎完成清洗转换,再写入数仓。早期数仓、传统数据工具多用 ETL。
  • ELT:Extract‑Load‑Transform,抽取‑加载‑转换 先把原始数据原样全部加载进目标存储(Hive / 对象存储),转换计算放到目标库内部做。 Hive 大数据数仓主流就是 ELT:原始数据导入 Hive,之后用 HiveQL 做转换加工。

简单记: ETL:转换之后再入库; ELT:先进库,再在库里面做转换。

信贷行业实际例子(ETL 完整链路)

  1. Extract:从业务 MySQL 抽取借款订单、还款流水、用户信息。
  2. Load:原样导入 Hive ods 层(原始数据层)。
  3. Transform:使用 HiveQL 做清洗、去重、关联,计算:用户多头、额度使用率、历史逾期次数等风控特征。
  4. Load:加工结果写入 dws 特征宽表层,供风控模型、报表使用。

这一套属于 ELT 模式,大数据数仓最常见。

ETL 常见工具

  • 传统 ETL:Kettle (Data‑Integration)、DataStage
  • 大数据 ELT:Hive、Spark‑SQL、Flink、DataX、Airflow 调度

ETL 的分层概念(数仓分层 ODS / DWD / DWS / ADS)

  1. ODS 原始数据层:几乎原样保留源数据,不做过多加工(Extract+Load)
  2. DWD 明细层:清洗、过滤脏数据,明细粒度数据(Transform)
  3. DWS 汇总 / 宽表层:按用户、业务维度聚合,生成宽表(Transform)
  4. ADS 应用层:报表、指标、模型特征,直接给业务使用(Load 输出)

常见坑点

  1. ETL 时间窗口:信贷系统大量日切后跑 T+1 ETL 任务;任务依赖、超时、数据延迟会导致报表、特征不准。
  2. 数据一致性:源库更新,ETL 同步是否丢失变更;增量同步 vs 全量同步。
  3. 脏数据:源系统存在 null、异常字符串,ETL 阶段没有清洗,后续模型、报表出错。
  4. 调度依赖:任务 A 没跑完,任务 B 就启动,产出错误数据。

一句话速记

ETL 是抽取、转换、加载的数据处理流程; ETL 转换在入库前,ELT 先入库再做转换;Hive 数仓大多是 ELT 模式;信贷场景用来同步业务数据,加工风控特征、报表指标。

标签: 大数据

发表评论:

Powered by emlog 京ICP备15045175号-1 Copyright © 2022