ETL基础概念及要求详解

news2024/12/29 0:45:54

ETL基础概念及要求详解

  • 概念
    • ETL与ELT
    • 数据湖与数据仓库
  • ETL应用场景
  • ETL具体流程及操作要求
    • 抽取
    • 清洗
    • 转换
    • 加载
  • ETL设计模式
    • SQL+脚本语言
    • ETL工具设计
    • ETL工具+SQL
  • ETL接口设计要求
    • 明确接口属性
    • 约定接口形式
    • 确定接口抽取方法
    • 规范接口格式

概念

ETL即Extract(抽取)Transform(转换)Load(装载)的过程,如下图,同时也包括数据清洗的部分,是数据从源端到目标端的一个数据处理的过程,是构建数据仓库的重要一环,但不局限于构建数据仓库其他BI(商业智能)的设计和开发数据分析平台也经常用到ETL。
在这里插入图片描述
在进行ETL作业时按作业进行的加工顺序又分为ETL和ELT。

ETL与ELT

ETL可以通过采用单独的硬件服务器分担数据库系统的负载,相对于ELT架构可以实现更为复杂的数据转化逻辑,同时与底层的数据库数据存储无关。

ELT先加载后装换,如下图所示,其充分利用数据库引擎来实现系统的可扩展性(当数据加工过程在晚上时,可以充分利用数据库引擎的资源),也可以保持所有的数据始终在数据库当中,避免数据的加载和导出,从而保证效率,提高系统的可监控性。同时可以根据数据的分布情况进行并行处理优化,并可以利用数据库的固有功能优化磁盘I/O。通过对相关数据库进行性能调优,ELT过程获得3到4倍的效率提升比较容易。
在这里插入图片描述

数据湖与数据仓库

简单来说,数据湖是所有未经处理的源数据集合,可以是非结构化的,数据仓库是经过结构化、过滤等处理后的数据集合。
数据湖:Data Lake,可简写为DL,是一个数据存储库。现在企业的数据仓库都会通过分层的方式将数据存储在文件夹、文件中,而数据湖使用的是平面架构来存储数据。我们需要做的只是给每个数据元素分配一个唯一的标识符,并通过元数据标签来进行标注。当企业中出现业务问题时,可以从数据湖中查询数据,然后分析业务对应的那一小部分数据集来解决业务问题。

数据仓库:Data Warehouse,可简写为DW或DWH。数据仓库是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。主要包括以下三类:
(1)企业数据仓库 (EDW) :充当帮助企业内决策支持服务的主数据库。EDW 提供对跨组织信息的访问,一种数据表示的集成方法,并且可以运行复杂的查询。
(2)操作数据存储 (ODS):ODS 实时刷新并用于运行例行任务,包括存储员工记录。存储在这里的数据可以被清理,冗余检查和解决。它还可以用于整合来自不同来源的对比数据,以便业务运营、分析和报告能够顺利运行。
(3)数据集市:数据集市是数据仓库的子集,因为它存储特定部门、地区或业务单位的数据。数据集市有助于增加用户响应并减少分析数据量。此处的数据存储在 ODS 中,然后ODS将其发送到 EDW,并在其中存储和使用。

ETL应用场景

数据的生命周期如下,ETL技术贯穿其整个生命周期,而无论是数据是平台(数据仓库平台、数据交换平台、大数据平台、历史数据平台)还是数据分析过程(数据挖掘、模拟实验室、传统BI、推荐引擎)都逃离不了数据的生命周期六过程,因此都需要应用ETL技术。
在这里插入图片描述

ETL具体流程及操作要求

抽取

在数据抽取中需要考虑以下问题:
1.数据是从几个业务系统中来?
2.是否存在手工数据?
3.各业务系统数据库DBMS(数据库管理系统)是什么?(考虑同构、异构)
4.是否存在非结构化数据?
5.能否支持增量抽取?
6.是否支持工具抽取?

清洗

数据清洗主要清洗三类不符合要求的数据:
1.不完整的数据(字段缺失)
2.错误的数据(乱码、字段定义与内容不符)
3.重复的数据

要求:反复清洗、发现问题、解决问题(是否过滤或修正一般要求与客户确认)

转换

数据转换主要包含三类:
1.代码标准化
在这里插入图片描述
2.数据粒度转化
数据粒度及数据的细化程度,例如省县乡三级分划,只到省级的数据相比于到乡级的数据细化程度更低,数据粒度大。

ETL过程中依据需求可能需要将小粒度的业务数据聚合为大粒度的数据。
在这里插入图片描述
3.根据业务规则计算
根据业务规则(映射关系、公式等)将业务系统中数据转化为符合需求的数据。

加载

加载,即将源系统的数据加载到目标数据库对应表中,并根据不同的数据库平台采用不同的加载工具,同时根据不同的业务需求、接口形式设计不同的加载算法。

ETL设计模式

SQL+脚本语言

应用SQL语言实现业务逻辑的表达并应用脚本语言(shell、perl、python等)将SQL语言封装为可执行脚本。

优势:开发灵活、能够跨平台使用、成本低
不足:开发人员要求高、不易维护、规范性差。

ETL工具设计

应用ETL工具的组件进行相关设计,常用ETL工具如:Kettle、Powercenter、Datastage、Talend等。

优势:可视化、高效、易维护
不足:成本高、灵活性差、复杂场景不易实现

ETL工具+SQL

结合使用ETL工具与SQL,根据工具特性和业务逻辑的复杂度平衡设计,在异构平台使用ETL工具快速抽取各业务系统数据,复杂的业务转换阶段采用SQL解决,使ETL整个处理过程达到最优。

优势:开发灵活、开发效率高、易维护、可视化、规范、标准
不足:成本较高

在这里插入图片描述

ETL接口设计要求

接口即ETL的最终产出结果,可以以表、文件、信息等方式存在。

明确接口属性

1.事件类表:用于记录交易等动作的发生。在源系统中会新增、大部分不会修改和删除,少量表存在删除情况。如定期存款登记簿。
2.状态类表:用于记录数据信息的状态。在源系统中会新增、修改,也存在删除的情况。如客户信息表。
3.码表及参数表:用于记录源系统中使用到的数据代码和参数。

约定接口形式

接口表现形式:表/文件/消息(流)

确定接口抽取方法

抽取方法:工具抽取/脚本抽取
抽取机制:增量/全量
抽取频度:日/周/月/年
抽取约束:并发限制/抽取时机/数据库确认

规范接口格式

1.文件字符集编码:—个业务系统的接口编码只有一种编码风格:UTF8或 ASCII
2.分隔符:字段与字段间的分隔符建议最好采用字段内容不包含的分隔符
3.文件扩展名:文件的后缀通常应考虑是否压缩或非压缩情况
4.文件传输方式:上下游间数据传递方式确定好︰如FTP/消息队列
5.接口通知机制规范:标志文件/消息通知

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/336994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python学习-----无序序列1.0(字典的创建、查看、添加、修改、删除/替换)

目录 前言: 字典是什么 字典的特点 1.字典的创建 (1)直接创建{} (2)dict() 函数创建 2.字典的查询 (1)get()函数 (2)获取字典一组内容 3.字典键值对的添加 &a…

1CN/Jaccard/PA/AA/RA/Katz/PageRank/SimRank

common neighbors(CN) 公共邻居的数量。 Jaccard 用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本相似度越高。 preferential attachment(PA) 节点倾向于连接到节点度较高的节点上,&…

BSN-DDC基础网络详解(二):快速接入指南

本文将为大家介绍BSN算力中心方和DDC网络平台方接入DDC网络的基本流程,如下图所示,算力中心方和平台方依次执行图内左侧流程,右侧流程由DDC网络运营人员操作。01注册门户账号注册在接入之前,算力中心方和平台方需要先注册一个官方…

Android性能优化:getResources()与Binder交火导致的界面卡顿优化

欢迎:https://juejin.cn/post/7198430801851531324/ 欢迎:https://nasdaqgodzilla.github.io/2023/02/10/Android%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%EF%BC%9AgetResources-%E4%B8%8EBinder%E4%BA%A4%E7%81%AB%E5%AF%BC%E8%87%B4%E7%9A%84%E7%95%8C%E…

Neurosynth元分析——认知解码工具,软件包安装以及使用

Neurosynth元分析——认知解码工具,软件包安装以及使用 NeuroSynth 基本简介基本原理例子Neurosynth package安装及使用创建虚拟环境安装Dependencies:安装neurosynthNeurosynth使用加载必要的包下载neurosynth数据参考如上图所示。NeuroSynth 元分析感兴趣的区域沿功能连接梯…

玩转黑科技|ChatGPT保姆级注册指南(含免费手机号福利)

前言最近爆火的ChatGPT大家都应该多多少少的有所听说,各种渠道得知大家应该见识到他的强大,是不是很想上手玩一玩?但是由于其不支持中国电话号码进行注册,导致【注册ChatGPT】成了众多玩家头疼的事,也无法体验这个机器…

开源免费的WEB应用防火墙

开源免费的WEB应用防火墙 排名不分前后 资源宝分享:www.httple.net 1、南墙WEB应用防火墙(简称:)是有安科技推出的一款全方位网站防护产品。通过有安科技专有的WEB入侵异常检测等技术,结合有安科技团队多年应用安全的…

小白该从哪方面入手学习大数据

大数据本质上是海量数据。 以往的数据开发,需要一定的Java基础和工作经验,门槛高,入门难。 如果零基础入门数据开发行业的小伙伴,可以从Python语言入手。 Python语言简单易懂,适合零基础入门,在编程语言…

vue 回调函数(callback)的用法

一、介绍: 1、前提:在 js 中,函数也是对象,可以赋值给变量,可以作为参数放在函数的参数列表中,如: var doSomething function(a,b){return a b; } console.log(doSomething(2,3));2、概念&a…

神经网络基础部件-BN层详解

一,数学基础 1.1,概率密度函数 随机变量(random variable)是可以随机地取不同值的变量。随机变量可以是离散的或者连续的。简单起见,本文用大写字母 XXX 表示随机变量,小写字母 xxx 表示随机变量能够取到…

Zabbix 构建监控告警平台(二)--

Apache监控示例(图形监控)模板TemplateZabbix Items 1.Apache监控示例(图形监控) 1.1创建主机组 在“配置”->“主机群组”->“创建主机群组” 填入组名“webserver_test” 创建完成之后可以在“配置”->"主机群组&…

界面控件DevExpress WinForm中文教程 - 如何使用模板库构建类Office UI?

DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任…

opengl glsl shader vscode安装插件glsl_canvas 和 shader languagesupportForVS Code

u_resolution 是画布尺寸,即代表画布宽高 //给内置变量gl_PointSize赋值像素大小,注意值是浮点数 gl_PointSize20.0; // 片元沿着x方向渐变 gl_FragColor vec4(gl_FragCoord.x/500.0*1.0,1.0,0.0,1.0); // 接收插值后的纹理坐标 varying vec2 v…

作为开发人员您会喜欢的 7 个免费公共 API

1. JSON 占位符JSON Placeholder是一项服务,可为您提供用于测试和原型制作的假在线REST API 。这是每个开发人员的首选 API。2.谷歌翻译Google有大量的API,但其中大部分是付费的。值得庆幸的是,Translate API提供100 多种语言的免费翻译&…

Spring面试重点(二)——Spring循环依赖

Spring循环依赖 什么是循环依赖? 从字面上来理解就是A依赖B的同时B也依赖了A,就像上面这样,或者C依赖与自己本身。体现到代码层次就是这个样子 Component public class A { // A中注入了B Autowired private B b; }---Component public cla…

@Valid注解配合属性校验注解完成参数校验并且优化异常处理

Valid注解配合属性校验注解完成参数校验并且优化参数校验异常处理1 Valid注解配合属性校验注解完成参数校验2 优化参数校验异常处理1 Valid注解配合属性校验注解完成参数校验 向数据库商品分类表中新增商品分类字段,并校验传入的参数 不使用注解的传统方法&#xf…

基于python+django社区报修维修平台

本系统主要分为前后和后台页面,前台页面主要功能有:首页,座位信息,交流论坛,公告信息,个人中心,后台管理。后台页面分为:首页,个人中心,学生管理,教师管理,座位信息管理,座位预约管理,班级信息管理,签到信息管理,离开信息管理,座位暂离管理,举报信息管理…

MLX90614红外温度计介绍

MLX90614红外温度计简介MLX90614是一款红外非接触温度计。TO-39金属封装里同时集成了红外感应热电堆探测器芯片和信号处理专用集成芯片。由于集成了低噪声放大器、17位模数转换器和强大的数字信号处理单元,使得高精度和高分辨度的温度计得以实现。温度计具备出厂校准…

如何上传文件

在页面上面&#xff0c;form 表单里面添加属性enctype"multipart/form-data" 比如&#xff1a; <form name"frm" method"post" enctype"multipart/form-data"> 添加文件选择框&#xff1a; <input type"file" na…

安全上下文

目录 文章目录目录本节实战前言1、为 Pod 设置 Security Context2、为容器设置 Security Context3、设置 Linux Capabilities1.Linux Capabilities&#xff08;1&#xff09;什么是 Capabilitie&#xff08;2&#xff09;Capabilities 的赋予和继承&#xff08;3&#xff09;如…