大数据中经常会遇到的一个概念就是ETL,接下来就来探讨一下ETL
ETL是指将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,主要的作用就是将企业的一些杂乱无章的数据进行一个汇总,为相关的企业提供数据的支持。
ETL主要分为了三个阶段:数据抽取、数据清洗转换、数据的加载。
数据的抽取:就是从原始的数据源中将数据抽取到ODS层。在数据抽取的时候,首先需要进行相关的调研,比如数据的存储,以及数据的量级等
数据的清洗:数据清洗的任务主要是将一些不符合规则的脏数据给过滤掉,保留对业务有用的数据,。其中不符合要求的脏数据包括:不完整的数据、错误的数据、重复的数据等
数据转换:数据转换的主要任务是将数据进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算
ETL架构的特殊优势:ETL可以分担数据库系统的负载,可以采用单独的硬件服务器部署;ETL相对ELT架构可以实现更为复杂的数据转化逻辑;ETL与底层的数据库数据存储无关。
接下来介绍一下ELT
ELT:ELT只负责提供图形化的界面来设计业务规则,数据的整个加工过程都在目标和源的数据库之间流动,ELT协调相关的数据库系统来执行相关的应用,数据加工过程既可以在源数据库端执行,也可以在目标数据仓库端执行(主要取决于系统的架构设计和数据属性)。当ETL过程需要提高效率,则可以通过对相关数据库进行调优,或者改变执行加工的服务器就可以达到。ELT 通常发生在 NoSQL 数据库中,具有处理非结构化数据的能力。一般数据库厂商会也会力推该种架构,像Oracle和Teradata都极力宣传ELT架构。
ELT架构的特殊优势:ELT主要通过数据库引擎来实现系统的可扩展性;ELT可以保持所有的数据始终在数据库当中,避免数据的加载和导出,从而保证效率,提高系统的可监控性;ELT可以根据数据的分布情况进行并行处理优化,并可以利用数据库的固有功能优化磁盘I/O;ELT的可扩展性取决于数据库引擎和其硬件服务器的可扩展性。