ETL全称为 Extraction Transformation Loading。
ETL的基础概念是将业务系统的数据经过抽取(Extraction)、转换(Transformation)、加载(Loading)到数据仓库的过程。
因为有面试需要了解ETL分层建设方法,大致看了些视频。
总结如下:
(1)抽取:抽取指将数据从一个数据源或多个数据源抽取过来的一个动作
数据源有可能是关系型的数据库、表。也可能是文本文件,或者是一个程序的API接口。
(2)转换:在商业智能(BI)里指数据的清洗,合并拆分加工,数据逻辑计算处理的一个过程,通常会按照一定的业务逻辑规则进行计算,最后转换成符合业务模型,分析模型的一个规范性的数据。
简单来说,不管是大数据、小数据都是将不规范的、不可分析的数据转换为规范的、可分析的数据的一个过程。
(3)加载:加载将转换的结果按照分析模型所需要的格式,将数据写入到目标表中,那这些目标表本身就是业务自助分析的数据来源,通常是按照一定的建模方式来组织的,那不管是星型模型,还是雪花型分析模型,那么都是在BI种,我们通常定义的ETL的处理过程。
另外一种ETL(纯数据的处理)
比如说数据库里的数据迁移,多数据源的数据迁移,那么这些是纯数据的开发,也不一定面向BI,可能是业务系统直接的数据转换处理。
ETL基本上都是通过SQL语句实现。
处理分为五大模块:数据抽取、数据清洗、库内转换、规则检查、数据加载。
①数据抽取:确定数据源、定义数据接口、确定数据抽取的方法。
②数据清洗与转换:
1.清洗:主要将不完整的、错误的、重复的数据处理
2.转换:空值处理、数据标准、数据拆分、数据验证、数据替换、数据关联
③数据加载:
1.全量:LOAD
2.增量:根据业务规则MERGE
还有ELT架构。
ETL模式介绍:触发器模式、增量字段、全量同步、日志比对。
①增量抽取机制
②捕获变化数据
③全表删除插入方式
④通过数据库层面的日志来捕获变化数据