ETL到底是什么?

news/2024/12/1 18:56:40/

各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维+数据分析,通过数据讲故事。

在这里插入图片描述

前段时间和大家聊了一个话题,就是为什么要用构建数据仓库,而不是直连数据源的方式开发报表?通过这次的话题,大家知道了构建数据仓库就等于是打好坚实的地基,而BI大厦也才能越建越高!在构建数据仓库的过程需要用到一个工具,也就是ETL。今天就和大家聊一下,ETL到底是什么?

ETL到底是什么?

ETL是Extraction-Transformation-Loading的缩写,中文名称为数据提取、转换和加载。看字面意思不是很好理解,那ETL到底是什么?先讲一个故事吧。

小强和小丽结婚一年了,事业家庭都稳定了下来,准备要生BB了,父母听到这个消息,非常高兴,坚持要从另一个城市搬过来帮忙。但是,小强现在住的地方是一个一房一厅,有点小,所以,得搬一个大点的房子。于是,小强找到了一间新房子:三房两厅两卫,还有一个大阳台。

终于落实好,就要准备搬家了。一个周末,小夫妻两个人将旧住所中需要的东西打好包,而一些不再需要的东西就只有丢掉了,忙碌了整整一个上午。中午,搬家公司来了,将打包的东西运到新住所,接下来,两个人又开始忙碌,将打包的东西解开,重新整理,摆放。原来的洗衣机是挤在卫生间的,现在终于可以放到阳台上了…。

下午,父母的东西也运过来了。要将他们个人的东西放到另一个卧室,对了,他们还带了一个电饭煲,小强原来也有一个的,这个还得想办法处理一下…好了,好像还缺点什么,需要再去采购些物品…

经过周末两天的忙碌,终于,按照自己和父母的喜好,重新摆放好了,真舒适啊:一进客厅,黑白色调的沙发、茶几和电视显的素雅而高贵,特别是墙上的照片,从两个人认识、恋爱到结婚,讲述着一个迷人的爱情故事。餐桌上摆着父母带来的青花瓷茶具,泡出来的茶中溢着岁月的沉香;进到主卧,大大的梳妆台和衣柜是女主人的最爱,而床头的书架,则是男主人的地盘…进到客卧,深色的衣柜和床,有些复古的感觉,窗台上的白玉兰花沐浴着阳光,这是父母共同的爱好…

小强和小丽牵着手,看着这个温馨的家,脸上洋溢着幸福,窗外的阳光洒落进来,镜头拉远,定格,The End,故事讲完了。这个故事是在讲都市爱情故事呢?还是房地产公司精心策划的广告?

都不是,我们想用它来说说ETL是什么的。好吧,言归正传,我们重新来讲一遍故事。

小强(即已经使用的ERP)因为要生BB(即正要实施的MES)加上父母(即已经使用的HR)要过来,所以,需要换一套大的房子(即DW数据仓库)。大房子会根据实际的需求进行规划(三房两厅两卫,还有一个大阳台)。捋一下,就是将ERP/HR/MES的数据整合到数据仓库中去。

ETL其实就是数据搬家的过程。

搬家第一步,我们要将旧住所的东西打包;第二步,我们叫来搬家公司将打包的东西运输到新住所;第三步,我们在新住所将打包的东西解开,重新整理,摆放。

ETL就是数据搬家的过程,第一步,将有用的表和字段整理出来;第二步,将这些字段搬到另外一个数据库中,实现物理上的转移;第三步,再按新的分析需求,重新清洗整理这些数据。听到现在,你可能觉得好像是有些理解了。但具体是怎么实现ETL的过程呢,且听我慢慢道来。

第一步打包,到底怎么将有用的表和字段打包呢?

生活中的搬家,我们在打包的时候,大家通常是整理每个房间,看哪些物品是有用的,就放在一个箱子里,整理的时候,只会考虑这个物品是不是有用,至于这个物品搬到新家后放在哪里,是不会去过多的思考的。如果我们先想着哪些东西都是要放到新房子主卧的,再将这些东西全部放在一起打包。那一定是有强迫症了。

ETL过程中,有些朋友就会这样,习惯了原来写SQL或存贮过程开发报表的方式,在搬数据时,也是写视图或存贮过程,将结果搬到数据仓库中去。这种方式非常不好,为什么呢?首先,它仍然是老思路,只是原来是存贮在临时表中,现在改为存贮在物理表中。技术或工具的升级,其实首先是要升级思维方式;其次,一旦需求发生变化,就需要频繁修改视图或存贮过程,后端开发的工作量很大。

正确的做法是,只考虑分析需求中的数据,来自哪些表或字段,就把涉及到的表与字段原封不动的搬过去,至于搬过去后怎么用,等搬过去再说,先不着急。

不同的业务系统,会有许多相同的基础资料,如都有部门这个基础资料,但大家的编码或名称可能不一样,这就需要额外处理一下,就好像父母也带了一个电饭煲需要想办法处理一样。

构建数据仓库时,总会有一些数据可能并不存在于某个业务系统中,如电商平台的数据,或者手工维护的预算数据。要使用这些数据,就需要额外导进去,就好像还缺点什么,需要再去采购些物品一样。

小强小两口周末两天的忙碌是辛苦的,但也是值得的。ETL的意义或价值,就好像小强小两口的忙碌一样,是为了最后有一个舒适的新家。

数据仓库构建好后,才有可能基于数据仓库来构建分析模型并根据自己的喜好展现最终的结果。客厅里一目了然的就是管理驾驶舱,既有ERP的信息(小强的电视),也有HR的信息(父母的茶具),而进到主卧,则好像进入到某个具体的分析主题一样;而进到客卧,则相当于切换到另外一个分析主题。

ETL的质量决定了BI是否成功(小强从此过上了幸福的生活。)

总结

ETL就是数据搬家的过程,第一步,将有用的表和字段打包;第二步,将这些字段搬到数据仓库中,实现物理上的转移;第三步,再按新的分析需求,重新清洗整理这些数据。

老周道数据,和你一起,用常人思维+数据分析,通过数据讲故事,我们下一讲再见!


http://www.ppmy.cn/news/59833.html

相关文章

C++之编译链接

目录 线程基础静态链接静态链接装载与动态链接库与运行库 关于隔离: 物理地址是实在存在的虚拟地址是虚拟的,并不存在,每个进程都有自己独立的虚拟空间,而且每个进程只能访问自己的地址空间,这样就有效地做到了进程的…

二、Spring Cloud Alibaba环境搭建

一、依赖环境 SpringCloud Alibaba 依赖 Java 环境来运行。还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用。 64 bit JDK 1.8;Maven 3.2.x。 spring-cloud-alibaba相关网址: 地址:https://github.com/alibaba/spring-cloud-…

网络编程:UDP socket

文章目录 阅读前导 服务端定义日志框架成员属性服务端框架 初始化服务器创建套接字绑定 运行服务端读取数据参数解读 处理数据向客户端发送响应数据关闭文件描述符 客户端定义创建套接字绑定发送数据接收服务器的响应数据关闭文件描述符 测试1本地环回作用 本地测试netstat 指令…

万字长文详解linux内存管理,值得收藏

一、Linux内存管理概述 Linux内存管理是指对系统内存的分配、释放、映射、管理、交换、压缩等一系列操作的管理。在Linux中,内存被划分为多个区域,每个区域有不同的作用,包括内核空间、用户空间、缓存、交换分区等。Linux内存管理的目标是最…

腾讯云轻量应用服务器修改镜像系统有哪些限制?

腾讯云轻量应用服务器镜像可以更换或修改吗?可以!镜像可以修改,镜像是指轻量服务器的预装操作系统,轻量服务器创建成功后镜像也是可以更换的。 镜像是轻量服务器的预装操作系统,轻量应用服务器的镜像不仅包含操作系统&…

Redis之五大基本的数据类型:字符串String 散列hashes 列表 lists 集合sets 有序集合sorted sets 基础命令讲解

一:字符串 对字符串的操作 创建字符串,获取键值并判断字符串是否存在,查询键的长度,往指定字符串添加数据 127.0.0.1:6379> set name buxiangshuixiangdemeng //创建一个键,并赋值 OK 127.0.0.1:6379> get…

Filter 过滤器

Filter过滤器介绍 这里我们讲解Filter的执行流程,从下图可以大致了解到,当客户端发送请求的时候,会经过过滤器,然后才能到我们的servlet,当我们的servlet处理完请求之后,我们的response还是先经过过滤器才…

MySQL几种备份方式对比,你用对了吗?

各备份方法对比 备份数据的策略需要根据几种维度考虑 备份能承受最大丢失数据量 备份期间系统可以处于哪种情况(不可用,部分可用,完全可用) 数据恢复时长 需要恢复全量数据还是增量数据 备份数据的方法 逻辑备份:…