当前位置:网站首页>关于ETL的两种架构(ETL架构和ELT架构)
关于ETL的两种架构(ETL架构和ELT架构)
2022-08-09 21:54:00 【微服务 spring cloud】
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。
ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
ETL在转化的过程中,主要体现在以下几方面:
- 空值处理:可捕获字段空值,进行加载或替换为其他含义数据,并可根据字段空值实现分流加载到不同目标库。
- 规范化数据格式:可实现字段格式约束定义,对于数据源中时间、数值、字符等数据,可自定义加载格式。
- 拆分数据:依据业务需求对字段可进行分解。例,主叫号 861082585313-8148,可进行区域码和电话号码分解。
- 验证数据正确性:可利用Lookup及拆分功能进行数据验证。例如,主叫号861082585313-8148,进行区域码和电话号码分解后,可利用Lookup返回主叫网关或交换机记载的主叫地区,进行数据验证。
- 数据替换:对于因业务因素,可实现无效数据、缺失数据的替换。
- Lookup:查获丢失数据 Lookup实现子查询,并返回用其他手段获取的缺失字段,保证字段完整性。
- 建立ETL过程的主外键约束:对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。
ETL架构的优势:
- ETL可以分担数据库系统的负载(采用单独的硬件服务器)
- ETL相对于EL-T架构可以实现更为复杂的数据转化逻辑
- ETL采用单独的硬件服务器。.
- ETL与底层的数据库数据存储无关.
ELT
在ELT架构中,ELT只负责提供图形化的界面来设计业务规则,数据的整个加工过程都在目标和源的数据库之间流动,ELT协调相关的数据库系统来执行相关的应用,数据加工过程既可以在源数据库端执行,也可以在目标数据仓库端执行(主要取决于系统的架构设计和数据属性)。当ETL过程需要提高效率,则可以通过对相关数据库进行调优,或者改变执行加工的服务器就可以达到。一般数据库厂商会力推该种架构,像Oracle和Teradata都极力宣传ELT架构。
ELT架构的优势:
- ELT主要通过数据库引擎来实现系统的可扩展性(尤其是当数据加工过程在晚上时,可以充分利用数据库引擎的资源)
- ELT可以保持所有的数据始终在数据库当中,避免数据的加载和导出,从而保证效率,提高系统的可监控性。
- ELT可以根据数据的分布情况进行并行处理优化,并可以利用数据库的固有功能优化磁盘I/O。
- ELT的可扩展性取决于数据库引擎和其硬件服务器的可扩展性。
- 通过对相关数据库进行性能调优,ETL过程获得3到4倍的效率提升一般不是特别困难。
边栏推荐
- 2022年中国第三方证券APP创新专题分析
- laravel table migration error [easy to understand]
- 一文让你快速了解隐式类型转换【整型提升】!
- Sudoku | Backtrack-7
- Jinshanyun earthquake, the epicenter is in bytes?
- JSON 基本使用
- 肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!
- “稚晖君”为2022昇腾AI创新大赛打call 期待广大开发者加入
- nvm下node安装;node环境变量配置
- APP automation test framework - UiAutomator2 introductory
猜你喜欢
TRUNCATE表之后空间未释放
万字总结:分布式系统的38个知识点
How to Make Your Company Content GDPR Compliant
STC8H Development (15): GPIO Drives Ci24R1 Wireless Module
为什么这么多人都想当产品经理?
台风生成,广州公交站场积极开展台风防御安全隐患排查
Liver all night to write a thirty thousand - word all the commands the SQL database, function, speaks clearly explain operators, content is rich, proposal collection + 3 even high praise!
Presto Event Listener开发
第十七期八股文巴拉巴拉说(数据库篇)
Flask's routing (app.route) detailed
随机推荐
CVPR22 Oral|通过多尺度token聚合分流自注意力,代码已开源
UML类图五种关系的代码实现[通俗易懂]
一本通2074:【21CSPJ普及组】分糖果(candy)
接口自动化测试实践指导(上):接口自动化需要做哪些准备工作
nvm下node安装;node环境变量配置
Solution: Edu Codeforces 109 (div2)
基于ABP的AppUser对象扩展
Reinforcement Learning Weekly Issue 57: DL-DRL, FedDRL & Deep VULMAN
laravel table migration error [easy to understand]
Multiple reasons for MySQL slow query
Interpretation of the paper (DropEdge) "DropEdge: Towards Deep Graph Convolutional Networks on Node Classification"
重要的不是成为海贼王,而是像路飞一样去冒险
MLOps的演进历程
【微服务~Nacos】Nacos之配置中心
阿里云架构师金云龙:基于云XR平台的视觉计算应用部署
小程序+自定义插件的关键性
开发者必备:一文快速熟记【数据库系统】和【软件开发模型】常用知识点
STC8H开发(十五): GPIO驱动Ci24R1无线模块
从源码方面来分析Fragment管理中 Add() 方法
TRUNCATE表之后空间未释放