首页 > 其他分享 >ETL 是什么?不信你看不懂!--九五小庞

ETL 是什么?不信你看不懂!--九五小庞

时间:2023-10-27 14:33:47浏览次数:33  
标签:load -- 过程 数据仓库 小庞 数据 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,如推荐、金融反欺诈、反垃圾

标签:load,--,过程,数据仓库,小庞,数据,ETL,加载
From: https://www.cnblogs.com/pxyblog/p/17792243.html

相关文章

  • mysql-基于GTID的binlog日志
    一、什么是GTID从MySQL5.6.5开始新增了一种基于GTID的复制方式。通过GTID保证了每个在主库上提交的事务在集群中有一个唯一的ID。这种方式强化了数据库的主备一致性,故障恢复以及容错能力。在原来基于二进制日志的复制中,从库需要告知主库要从哪个偏移量pos值进行增量......
  • C#实现SSH、SCP、FTP等操作
    C#实现SSH、SCP、FTP等操作C#没有自带的SSH、SCP、FTP等操作的方法库,自己编写又太麻烦,这里将使用第三方Renci.SshNet.dll动态链接库实现这些操作 一、获取RENCI.SSHNET.DLL 二、将RENCI.SSHNET.DLL添加进C#工程我使用visualstudio2015作为IDE,将Renci.SshNet.dll添加进C#工程并......
  • C语言获取结构体变量地址并且输出结构体变量任意地址的数据
    #include<stdio.h>typedefstructTest{floatItem1;charItem2;intItem3;shortItem4;longItem5;doubleItem6;}TestStr1;intmain(){structTestTestStr;void*Ptr;TestStr.Item1=1.11;TestStr.It......
  • 无涯教程-Clojure - conj函数
    返回一个新序列,其中"x"是添加到序列末尾的元素。conj-语法以下是语法。(conjseqx)参数   - "x"是需要添加到序列中的元素。"seq"是元素的顺序列表。返回值 - 具有附加元素的新序列。conj-示例(nsclojure.examples.example(:gen-class));;Th......
  • VBA获取文件夹下所有文件名或者文件夹名
    VBA获取文件夹下所有文件名或者文件夹名1,新建excel宏2,在sheet中添加宏执行按钮3,设置按钮执行的代码名VBA代码如下:`点击查看代码'选择文件按钮程序PrivateSubCommandButton1_Click()Application.ScreenUpdating=FalseCallChooseApplication.ScreenUpdatin......
  • 项目经理的核心能力是什么?你具备了吗?
    项目经理最核心的能力应该是管理能力和沟通协调能力,项目经理要想有很强的管理能力和沟通协调能力必须要学会用人和识人,要做到知人善用。 项目经理是一个综合能力比较强的职位。比如在项目成本、安全、质量、进度等问题上都要了如指掌,但项目经理一个人的精力有限,不可能亲力亲为,同时......
  • Easysearch 容量规划建议
    基于容量估算主要问题:每天将索引多少原始数据(GB)?保留数据多少天?原始数据膨胀率您将强制执行多少个副本分片?您将为每个数据节点分配多少内存?您的内存:数据比例是多少?原则保留+15%以保持在磁盘水位以下。保留+5%用于误差和后台活动的余量。保留相当于一个数据节点的资源来处理故障......
  • 百度Comate代码助手全新上线SaaS服务,适配百种开发语言,编码效率10倍提升!
    1024程序员节来临之际,百度智能云宣布百度Comate智能代码助手正式上线SaaS版本,可提供10余项编码功能,适配100种开发语言,面向广大企业和开发者提供更便捷、更灵活的智能编码工具,助力企业提升研发效率。即日起企业和开发者可前往百度Comate官网体验。百度Comate是百度智能云基于文心大......
  • 搭建jenkins实现自动化部署
    一、安装jenkins1、添加yumrepos,然后安装sudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat/jenkins.reposudorpm--importhttps://pkg.jenkins.io/redhat/jenkins.io.key注:如果上边的执行成功就不用再执行这两行了sudowget-O/etc/yum.repos.d/j......
  • 20版本Camplus控制器与其它版本的差异
    目录主界面隧道模式链路模板零配置开局无线认证LAN-WAN互联创建VN布局接口路由站点上网主界面如下所示:主界面整体为深蓝偏紫的颜色隧道模式如下所示,打开“EVPN”之后,在主界面上就会显示出“多分支互联”,SD-WAN的相关配置在按钮下进行配置。链路模板链路模板会提供两种接口服务,如下......