ETL 是什么?不信你看不懂!--九五小庞
ETL,全称 Extract-Transform-Load,它是将大量的原始数据经过提取(extract)、转换(transform)、加载(load)到目标存储数据仓库的过程。ETL 虽然大部分应用在大数据领域,对小数据也可以经过这个过程的处理。
理解 ETL
ETL 是企业数据应用过程中的一个数据流(pipeline)的控制技术,把原始的数据经过一定的处理,放入数据仓库里。
可以想象一下一条大河的源头被污染,下游就无法作为饮用水源,也无法用于灌溉。如果想用于灌溉,就要将河上游工厂的污水进行处理之后再排入,如果想用于饮用,那就要用水淡化或者渗透过滤技术,对水质进行改造。
同样,原始数据并不是完美的、洁净的,质量参差不齐的数据对于数据最终的使用会产生很大的影响。

ETL 过程示意图
除了数据的清洗,还要将所有有用的数据汇集在一起,ETL 就是这样可以重复的,有周期性的一个过程。
提取 extract
在提取阶段,解决的是数据来源问题。主要有以下几种:
- 业务数据
在我们企业运行过程中,会有一些用户的交易数据,如用户的购买订单、退款退货、用户发布的视频、用户的注册信息等等,这些都存在我们的业务数据库里,这些数据库通常是关系型数据库,这是我们获取数据的一个重要来源。 - 文件数据
还有一些数据是有文件的形式存在,比如我们服务器运行的 log,它记录了用户对网站的请求情况,再比如我们通过埋点收集的日志文件,记录了用户的交互。 - 第三方数据
通过第三方购买或者合作形式信用的数据,这些数据可以作为我们业务分析的补充数据。这些数据一般通过和第三方机构的接口(API)形式,对接传输过来。三方的来源、数据形式格式可能有多种多样,就需要我们分别进行对接处理。
数据的格式和形式一般有以下几种:
- 关系型数据库 SQL,RDBMS
- 文件型数据库 NoSQL
- 日志文件
- XML/Html
- JSON
- CSV/TSV(flat files)
- 等等
Staging Area 为缓存区,在数据加载后进行处理时,将过程中的结果暂时存放起来,有些计算需要一定的硬件资源和时间,设定缓冲区可以对 ETL 有很大有帮助。
提取是把多种多样的原格式数据抽象出来,形成统一的数据格式先放入缓存区,不会直接进入数据仓库,等待下一步转换操作。
转换 transform
弄清楚了数据来源,前边做了数据的整合,对文件格式进行了一些处理。本步骤,根据我们的商业需要,我们用一些规则、方法进行数据处理。一般常见的转换操作有:
- 筛选:筛选部分数据,或者部分字段,提取一部分有用的数据
- 清理:缺失值填充、默认值设定、枚举映射等,如将一些编码转为可识别的符号,比如省份代码 sh 转为「上海」
- 合并:将多个属性合并在一起
- 格式转换:,如原数据是一下个时间戳(timestamp),我们为了方便后续分析转换为时间格式,指定时区
- 拆分:将单个属性值拆分为多个属性值,如原为一个邮编,拆分解析成省份、城市等多个字段
- 排序:按期望的数据顺序进行排列
- 计算:如原数据为年龄,用当前年份减去年龄同,取得出生年份
原则:
- 建数仓时尽量保留原始数据,支持多样需求
- 为特定报表时尽量取所需要的数据
加载 load
数据的加载方式一般有以下两种重要类型:
- 全量加载(Full load / Bulk load)
- 增量加载(Incremental load / Refresh load)
全量一般是第一次进行数据加载,这个过程比较长,也有种情况是业务数据存在历史全量数据不停更新的情况,这种情况无论何时都需要全量加载。还有一种情况会追溯一定的时间周期内的数据进行加载,如此业务30天之前的数据不会有再任何变化。
增加加载最为常见,一般一日加载一次,加载上一日数据,也有一周或者一月加载一次的。
加载数据是数据进入数据仓库的最后一步,加载是依赖提取和转换的,因此,加载数据是一个完整的 ETL 过程,这个过程需要大量的数据流转加工时间,而且是周期性重复的工作,所以一般由系统自动完成,执行时间为业务一个最小周期——日(实时数仓会选择更小的时间粒度,如10分钟一次),同时选择业务量小的凌晨进行。
除了增加新增加数据,加载同时伴随着对已加载数据的修改。选择何种加载类型,以及加载周期、加载内容,要看具体业务,产品经理和分析师分析需求最终确定一个最优的方案。
其他
- 一些小型的数据项目、数据报表也伴随着完整的 etl 过程
- 有时需要实时的 ETL,如推荐、金融反欺诈、反垃圾
ETL 是什么?不信你看不懂!--九五小庞的更多相关文章
- WinMTR 网络测试工具-九五小庞
WinMTR(建议优先使用) 百度下载工具 链接:https://pan.baidu.com/s/19ArKSTA2amsa4p6vHegDIQ 提取码:cy4y WinMTR是mtr工具在Windo ...
- LINUX系统新增及自动挂载硬盘-九五小庞
Linux系统下,添加新硬盘后,自动挂载的方法 1,列出所有硬盘,找到需要挂载的硬盘,例如/dev/vdb.输入: fdisk -l 2,查看硬盘是不是已经被挂载.一个硬盘不能重复挂载,已经挂 ...
- Oracle 11G R2安装说明 -九五小庞
教程版本Oracle 11.2.0.1.0
- VMware安装Centos7 -九五小庞
VMware安装Centos7超详细过程(图文) https://blog.csdn.net/babyxue/article/details/80970526 安装centos7的时候 启动会提示Pl ...
- 什么是Nginx -九五小庞
- Oracle错误 ora-12514 解决方法-九五小庞
成功连到数据库上之后,查看listener状态:lsnrctl status status READY 状态,需要由非归档转为归档模式,故操作如下: 1.关闭数据库shutdown immediate ...
- oracle创建/删除 用户,表空间-九五小庞
以下红色标示的都是可以修改的字段 可以按照如下顺序来创建表空间,创建用户,以及删除表空间,删除用户 查看oracle数据库已有的表空间路径 select name from v$datafile; 1 ...
- ORA-01033错误解决方案-九五小庞
Microsoft Windows [版本 6.3.9600](c) 2013 Microsoft Corporation.保留所有权利. C:\Users\Administrator>sqlp ...
- oracle数据库备份 -九五小庞
oracle数据库备份
- oracle数据库创建数据库实例-九五小庞
oracle数据库创建数据库实例
随机推荐
- windows 隐藏桌面了解此图片
1. 桌面上有了解此图片图标无法删除 这是因为在windows背景设置中选择了Window聚焦. 如果想关闭可以选择其他选项.如果不想关闭Window聚焦还想隐藏桌面了解此图片图标,可以参考下面设置. ...
- Java中的位运算符、移位运算符
目录 1 概述 2 位运算符 2.1 $(与) 2.2 |(或) 2.3 ^(异或) 2.4 ~(非) 3 移位运算 3.1 左移运算符:<< 3.2 右移运算符:>> 3.3 ...
- helm,efk日志系统
helm:存放配单清单的 chart图表 chart仓库 chart,helm-->Tiller-->api server -->kube_cluster chart---> ...
- golang 接口按需获取资源
场景 爬虫业务场景,我们需要调用三方接口获取代理ip地址,每个ip地址可以使用的时间有限和价格的,本着不浪费资源,我们在这里做一层封装. 当有其他业务调用我们接口的时候,会拉起定时任务,这个定时任务的 ...
- B1041 考试座位号
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...
- Java11 ThreadLocal的remove()方法源码分析
1. ThreadLocal实现原理 本文参考的java 版本是11. 在讲述ThreadLocal实现原理之前,我先来简单地介绍一下什么是ThreadLocal.ThreadLocal提供线程本地变 ...
- 通过 MCP 服务对接 PostgreSQL 问数 (详细实操说明)
一.实操环境 1.1Panel:Linux服务器运维管理面板 2.MaxKB:强大易用的企业AI助手 3.MCP网站:https://mcp.so/ 二.操作说明 2.1.步骤一:1Panel 2.0 ...
- 如何在FastAPI中构建一个既安全又灵活的多层级权限系统?
title: 如何在FastAPI中构建一个既安全又灵活的多层级权限系统? date: 2025/06/14 12:43:05 updated: 2025/06/14 12:43:05 author: ...
- 数栈产品预告丨您的指标管理平台——EasyIndex即将上线
一.写在前面 2016年,数栈开始正式投入研发,发展至今,已经拥有了:实时开发.离线开发.算法开发这些开发平台:数据资产.数据质量这些资产平台:以及数据服务.智能标签这些服务平台,这些不同类型的 ...
- 袋鼠云思枢:数驹DTengine,助力企业构建高效的流批一体数据湖计算平台
7月28日,以"数智进化,现在即未来"为主题的袋鼠云2022产品发布会于线上正式开幕.发布会上,袋鼠云宣布将集团进行全新升级:从"数字化基础设施供应商",升级为 ...