关于ETL那些事情

关于ETL那些事情
www.zeeklog.com  - 关于ETL那些事情


ETL这个概念也很久了,但是真正的进入大家的视野估计还是由于大数据。由于从15年至今,其实整个大数据领域都处于做数据仓库,然后简单生成报表这个层面,ETL(ETL - Extract, Transform, Load),这个概念就必不可少了。由于,经常有人在群里问浪尖:什么是ETL?ETL做了什么事情?也经常有招聘信息里面包含ETL,那么今天在这里我就简单给大家聊聊ETL。

数据仓库中的ETL概述

企业中是需要定期的加载数据仓库,以达到促进业务分析的目的。为此,需要提取来自一个或多个操系统的数据并将其复制到数据仓库中。数据仓库环境面临的挑战是在许多系统上集成,重新排列和整合大量数据,从而为商业智能提供新的统一信息库。

从源系统中提取数据并将其引入数据仓库的过程通常称为ETL,即提取,转换和加载。请注意,ETL是指一个广泛的过程,而不是三个明确的步骤。首字母缩略词ETL可能太简单了,因为它省略了运输阶段,意味着该过程的每个其他阶段都是不同的。不过,整个过程被称为ETL。

ETL的方法和任务已为人所熟知多年,并不一定是数据仓库环境所独有的:各种各样的专有应用程序和数据库系统是任何企业的IT骨干。数据必须在应用程序或系统之间共享,试图整合它们,至少给两个应用程序有相同的数据视图。这种数据共享主要是通过类似于我们现在称之为ETL的机制来解决的。

数据仓库中的ETL基础知识

在ETL过程中会发生什么?以下任务是该流程中的主要操作。

数据提取(Extract)

在提取过程中,从许多不同的来源识别及提取所需的数据,数据源包括数据库系统和应用程序。很多时候,不可能直接识别感兴趣的特定数据子集,因此需要提取更多的数据,而相关数据的识别将在后面的步骤中完成。在此提取过程中可能会根据源数据的一下功能特性,进行一些转换操作。提取数据的大小从几百千字节到千兆字节,取决于源系统和业务情况。两次提取数据操作之间的时间跨度可以在几天/几小时到几分钟之间变化甚至接近实时。例如Web服务器日志文件在短时间内就可以有上百兆,而浪尖收集处理的数据集,则基本上是每秒几个GB。

数据传输(Transportation)

数据提取后,必须将其物理运输到目标系统或中间系统进行进一步处理。根据所选的交通方式,也可以在这个过程中进行一些转换。例如,可以夸网络在目标机器上执行SQL语句实现连接两列作为SELECT语句的一部分。

数据转换(Transformation)

该步骤主要是将提取的数据转换为需要的格式,以便于存入另一数据仓库。转换的过程中将使用一定的规则(业务强相关)或者lookup表或者和其它数据整合,浪尖在这里列出来几个常见的转换操作供大家