一、项目背景
在大数据时代,企业对数据的需求日益增长。如何高效地管理和分析海量数据,成为企业提升竞争力的重要手段。数据平台应运而生,旨在为企业提供一套全面的数据管理和分析解决方案,通过集成多种数据源管理、接口配置、项目和任务管理、规则与流程控制、用户权限管理以及数据分析和服务监测功能,帮助企业实现数据驱动的决策支持和业务流程自动化。
二、项目介绍
E: Extract,数据抽取 => 抽取的是其他数据源中的数据
T: Transform,数据转换 => 将数据转换为统一的格式,消除异常值,缺失值,对于错误的逻辑进行修改
L: Load,数据加载 => 将不同数据源的数据处理后加载到数仓或者输出到指定位置
原理图
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败
ETL项目的意义
- 数据的集成和集中管理
- 数据质量的提升
- 支持决策和业务需求
- 提高工作效率
- 支持实时性数据分析需求
项目重难点
- 如何整合各类的源端
多种数据源的集成 比如
关系型数据库 MySQL、PostgreSQL、Oracle、SQL Server,
非关系数据库 MongoDB、Redis 、Elasticsearch
FTP上传、下载和管理文件
- 如何提升同步的性能,以及保证数据的一致性
对标数据确保数据的完整性
底层核心 任务调度,各类JDBC的执行
ETL的实现有多种方法,常用的有三种。
1.一种是借助ETL工具(如Oracle的OWB、SQL Server 2000的DTS、SQL Server2005的SSIS服务、Informatic等)实现。
2.一种是SQL方式实现
3.另外一种是ETL工具和SQL相结合。
区别
前两种方法各有各的优缺点,借助工具可以快速的建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。SQL的方法优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。第三种是综合了前面二种的优点,会极大地提高ETL的开发速度和效率
三、核心功能模块
数据抽取
- 确定数据源,需要确定从哪些源系统进行数据抽取
- 定义数据接口,对每个源文件及系统的每个字段进行详细说明
- 确定数据抽取的方法:是主动抽取还是由源系统推送?是增量抽取还是全量抽取?是按照每日抽取还是按照每月抽取?
流程图
时序图
数据清洗与转换
- 数据清洗 主要将不完整数据、错误数据、重复数据进行处理
- 数据转换
- 空值处理:可捕获字段空值,进行加载或替换为其他含义数据,或数据分流问题库
- 数据标准:统一元数据、统一标准字段、统一字段类型定义
- 数据拆分:依据业务需求做数据拆分,如身份证号,拆分区划、出生日期、性别等
- 数据验证:时间规则、业务规则、自定义规则
- 数据替换:对于因业务因素,可实现无效数据、缺失数据的替换
- 数据关联:关联其他数据或数学,保障数据完整性
流程图
数据清洗
转换
数据加载
- 将数据缓冲区的数据直接加载到数据库对应表中,如果是全量方式则采用LOAD方式,如果是增量则根据业务规则MERGE进数据库
流程图