ETL是将业务系统的原始数据进行抽取、转换、加载,而后进入数据仓库的过程。ETL可以认为是一种处理数据的解决方案。
ETL的本质目的是:提升数据质量,为数据入仓库做准备,为企业的分析决策提供依据。
E:抽取(Extract)
T:转换(Transform)
L:加载(Load)
以下是关于ETL的解释:
E-数据抽取指从源系统抽取到数据暂存区的过程。数据抽取可以的来源是多样化的。可以是数据库表、应用接口数据、日志文件、离线文件等。
T-数据转换在ETL工作整个过程中,“T”是最耗时、最复杂的过程,这个过程包括数据清洗、数据转换、拆分合并、聚合、排序等。
在执行“T”操作之前,往往需要与数据相关方进行大量沟通,以确保转换方案的可行性。以下对“T”过程涉及的具体知识面进行详细讲解:
(1) 去除重复值,保证唯一性。例如订单信息表中出现订单编号重复的记录,则需要剔除一条记录。
(2) 过滤垃圾数据,保证数据准确性。例如对于过时的数据、标记为逻辑删除的数据等,要结合实际业务情况对数据做过滤处理。
(3) 基于一定规则对缺失值进行填充,保证数据完备性。例如业务规定订单金额字段值不能为空。则需要基于业务规则,对订单金额为空的数据进行填充处理。
(4) 矫正错误数据,保证数据准确性。例如年龄字段值出现异常值“200”,如果此条数据不能被弃用,那就需要按既定方案对异常值做纠正。
(1) 语义转换。例如进行枚举值转换,将数据库代码转义为前端用户可理解的词语,增加数据可读性,满足数据分析需求。
(2) 格式转换。例如金额字段需要统一计数单位,比如“¥”和“$”。
(3) 对来自于不同系统的相同类型数据进行统一,保证数据一致性。例如:CRM系统产品A的编号是“PRO_001”,而OA系统产品A的编号“PRO_002”,针对这种不一致的情况,就需要对产品A的编号做统一处理。
(1) 拆分:分区、分表、分库。
(2) 合并:将多个分区、分表、分库进行合并。
对于不需要特别明细的数据,可以按照一定规则聚合,以减少数据存储量。
例如按照创建时间,由近即远排序等。
L-数据加载指将转换完的数据加载至目标系统,加载的方式有两种全量加载和增量加载。
全量加载最为耗时,全量加载适用于首次数据加载,或者历史数据不断动态更新的情况。增量加载一般适用于业务流水数据的加载,按时间戳做增量最为常见。
具体使用哪一种加载方式,要视情况而定。
05 常见的ETL的工具Kettle、DataX、Sqoop、Talend等。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved