大数据-ETL
2026-8-24 diaba
ETL = Extract‑Transform‑Load,抽取 (Extract)、转换 (Transform)、加载 (Load),是数据仓库、大数据领域最基础的数据处理流程。
拆解含义
- Extract 抽取 从各个源系统把数据读出来。
源可以:业务 MySQL 库、日志文件、接口、Hive 表、第三方数据源。 例:把信贷业务库的借款表、还款流水同步抽取出来。
- Transform 转换(最核心) 对原始数据做清洗、加工、计算、归一化。 常见处理:
- 清洗:去重、过滤脏数据、处理 null、异常值
- 格式转换:时间格式统一、编码转换
- 计算:衍生指标、统计聚合、WOE 计算、风控特征加工
- 脱敏:手机号、身份证脱敏
- 关联多表 join,生成宽表
- Load 加载 把加工完成的数据写入目标存储。
目标:Hive 数仓、ClickHouse、业务库、报表库。
传统 ETL 顺序:先抽取 → 转换 → 加载。
ELT 和 ETL 的区别
- ETL:Transform 在中间,转换发生在数据进入目标库之前 数据先拿出来,在外部引擎完成清洗转换,再写入数仓。早期数仓、传统数据工具多用 ETL。
- ELT:Extract‑Load‑Transform,抽取‑加载‑转换 先把原始数据原样全部加载进目标存储(Hive / 对象存储),转换计算放到目标库内部做。 Hive 大数据数仓主流就是 ELT:原始数据导入 Hive,之后用 HiveQL 做转换加工。
简单记: ETL:转换之后再入库; ELT:先进库,再在库里面做转换。
信贷行业实际例子(ETL 完整链路)
- Extract:从业务 MySQL 抽取借款订单、还款流水、用户信息。
- Load:原样导入 Hive ods 层(原始数据层)。
- Transform:使用 HiveQL 做清洗、去重、关联,计算:用户多头、额度使用率、历史逾期次数等风控特征。
- Load:加工结果写入 dws 特征宽表层,供风控模型、报表使用。
这一套属于 ELT 模式,大数据数仓最常见。
ETL 常见工具
- 传统 ETL:Kettle (Data‑Integration)、DataStage
- 大数据 ELT:Hive、Spark‑SQL、Flink、DataX、Airflow 调度
ETL 的分层概念(数仓分层 ODS / DWD / DWS / ADS)
- ODS 原始数据层:几乎原样保留源数据,不做过多加工(Extract+Load)
- DWD 明细层:清洗、过滤脏数据,明细粒度数据(Transform)
- DWS 汇总 / 宽表层:按用户、业务维度聚合,生成宽表(Transform)
- ADS 应用层:报表、指标、模型特征,直接给业务使用(Load 输出)
常见坑点
- ETL 时间窗口:信贷系统大量日切后跑 T+1 ETL 任务;任务依赖、超时、数据延迟会导致报表、特征不准。
- 数据一致性:源库更新,ETL 同步是否丢失变更;增量同步 vs 全量同步。
- 脏数据:源系统存在 null、异常字符串,ETL 阶段没有清洗,后续模型、报表出错。
- 调度依赖:任务 A 没跑完,任务 B 就启动,产出错误数据。
一句话速记
ETL 是抽取、转换、加载的数据处理流程; ETL 转换在入库前,ELT 先入库再做转换;Hive 数仓大多是 ELT 模式;信贷场景用来同步业务数据,加工风控特征、报表指标。
标签: 大数据
日历
个人资料
diaba 寻求合作请留言或联系mail: services@jiucaiyuan.net
链接
最新文章
存档
- 2026年8月(5)
- 2025年4月(17)
- 2025年3月(25)
- 2025年2月(20)
- 2025年1月(2)
- 2024年10月(1)
- 2024年8月(2)
- 2024年6月(4)
- 2024年5月(1)
- 2023年7月(1)
- 2022年10月(1)
- 2022年8月(1)
- 2022年6月(11)
- 2022年5月(6)
- 2022年4月(33)
- 2022年3月(26)
- 2021年3月(1)
- 2020年9月(2)
- 2018年8月(1)
- 2018年3月(1)
- 2017年3月(3)
- 2017年2月(6)
- 2016年12月(3)
- 2016年11月(2)
- 2016年10月(1)
- 2016年9月(3)
- 2016年8月(4)
- 2016年7月(3)
- 2016年6月(4)
- 2016年5月(7)
- 2016年4月(9)
- 2016年3月(4)
- 2016年2月(5)
- 2016年1月(17)
- 2015年12月(15)
- 2015年11月(11)
- 2015年10月(6)
- 2015年9月(11)
- 2015年8月(8)
分类
热门文章
- SpringMVC:Null ModelAndView returned to DispatcherServlet with name 'applicationContext': assuming HandlerAdapter completed request handling
- Mac-删除卸载GlobalProtect
- java.lang.SecurityException: JCE cannot authenticate the provider BC
- MyBatis-Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2=val2}
- Idea之支持lombok编译
标签
最新评论
- logisqykyk
Javassist分析、编辑和创建jav... - xxedgtb
Redis—常见参数配置 - 韭菜园 ... - wdgpjxydo
SpringMVC:Null Model... - rllzzwocp
Mysql存储引擎MyISAM和Inno... - dpkgmbfjh
SpringMVC:Null Model... - tzklbzpj
SpringMVC:Null Model... - bqwrhszmo
MyBatis-Improper inl... - 乐谱吧
good非常好 - diaba
@diaba:应该说是“时间的度量依据”... - diaba
如果速度增加接近光速、等于光速、甚至大于...
最新微语
- 用AI重构自己的工作方式。
2026-08-08 20:26
- 在每件事情上花费的东西,就是生命的一部分,而我们花费的这些东西要求立即得到回报,或者在一个长时间以后得到回报。
2025-01-23 15:46
- 诺曼·文森特说:“并不是你认为自己是什么样的人,你就是什么样的人。但是你的思想是什么样,你就是什么样的人。”
2025-01-23 15:44
- 从今天起,做一个幸福的人。喂马,砍柴,(思想)周游世界
2022-03-21 23:31
- 2022.03.02 23:37:59
2022-03-02 23:38

发表评论: