数据采集、数据清洗、数据存储。
1、数据采集:数据采集是获取原始数据的过程,包括从不同的数据源中提取数据、解析数据格式、过滤无用数据等 *** 作。ETL的数据抽取过程通常是在数据采集之后进行的,因此不包括数据采集过程。
2、数据清洗:数据清洗是指对数据进行去重、过滤、纠错等 *** 作,以保证数据的准确性和一致性。数据清洗通常在数据抽取和数据转换之间进行,ETL的数据转换过程包括数据清洗过程。
3、数据存储:数据存储是指将数据保存到数据库、数据仓库、数据湖等数据存储系统中。ETL的数据加载过程主要是将数据存储到目标数据存储系统中,因此不包括数据存储过程。
ETL是数据中心建设、BI分析项目中不可或缺的环节。
各个业务系统中分布的、异构的数据源,经过ETL过程的数据抽取、转换,最终存储到目标数据库或者数据仓库,为上层BI数据分析,或其他业务功能做数据支撑。
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。
相关信息:
ETL(orELT)的流程可以用任何的编程语言去开发完成,由于ETL是极为复杂的过程,而手写程序不易管理,有越来越多的企业采用工具协助ETL的开发,并运用其内置的metadata功能来存储来源与目的的对应(mapping)以及转换规则。
工具可以提供较强大的连接功能(connectivity)来连接来源端及目的端,开发人员不用去熟悉各种相异的平台及数据的结构,亦能进行开发。
当然,为了这些好处,付出的代价便是金钱。
对于做过 BI 开发的朋友,ETL 并不陌生,只要涉及到数据源的数据抽取、数据的计算和处理过程的开发,都是 ETL,ETL 就这三个阶段,Extraction 抽取,Transformation 转换,Loading 加载。
从不同数据源抽取数据 EXTRACTION ,按照一定的数据处理规则对数据进行加工和格式转换 TRASFORMATION,最后处理完成的输出到目标数据表中也有可能是文件等等,这个就是 LOADING。
再通俗一点讲,ETL 的过程就跟大家日常做菜一样,需要到菜市场的各个摊位买好菜,把菜买回来要摘一下,洗一洗,切一切最后下锅把菜炒好端到饭桌上。菜市场的各个摊位就是数据源,做好的菜就是最终的输出结果,中间的所有过程像摘菜、洗菜、切菜、做菜就是转换。
在开发的时候,大部分时候会通过 ETL 工具去实现,比如常用的像 KETTLE、PENTAHO、IBM DATASTAGE、INFORNAICA、微软 SQL SERVER 里面的 SSIS 等等,在结合基本的 SQL 来实现整个 ETL 过程。
也有的是自己通过程序开发,然后控制一些数据处理脚本跑批,基本上就是程序加 SQL 实现。
哪种方式更好,也是需要看使用场景和开发人员对那种方式使用的更加得心应手。我看大部分软件程序开发人员出身的,碰到数据类项目会比较喜欢用程序控制跑批,这是程序思维的自然延续。纯 BI 开发人员大部分自然就选择成熟的 ETL 工具来开发,当然也有一上来就写程序脚本的,这类 BI 开发人员的师傅基本上是程序人员转过来的。
用程序的好处就是适配性强,可扩展性强,可以集成或拆解到到任何的程序处理过程中,有的时候使用程序开发效率更高。难就难在对维护人员有一定的技术要求,经验转移和可复制性不够。
用 ETL 工具的好处,第一是整个 ETL 的开发过程可视化了,特别是在数据处理流程的分层设计中可以很清晰的管理。第二是链接到不同数据源的时候,各种数据源、数据库的链接协议已经内置了,直接配置就可以,不需要再去写程序去实现。第三是各种转换控件基本上拖拉拽就可以使用,起到简化的代替一部分 SQL 的开发,不需要写代码去实现。第四是可以非常灵活的设计各种 ETL 调度规则,高度配置化,这个也不需要写代码实现。
所以在大多数通用的项目中,在项目上使用 ETL 标准组件开发会比较多一些。
ETL 从逻辑上一般可以分为两层,控制流和数据流,这也是很多 ETL 工具设计的理念,不同的 ETL 工具可能叫法不同。
控制流就是控制每一个数据流与数据流处理的先后流程,一个控制流可以包含多个数据流。比如在数据仓库开发过程中,第一层的处理是ODS层或者Staging 层的开发,第二层是 DIMENSION维度层的开发,后面几层就是DW 事实层、DM数据集市层的开发。通过ETL的调度管理就可以让这几层串联起来形成一个完整的数据处理流程。
数据流就是具体的从源数据到目标数据表的数据转换过程,所以也有 ETL 工具把数据流叫做转换。在数据流的开发设计过程中主要就是三个环节,目标数据表的链接,这两个直接通过 ETL 控件配置就可以了。中间转换的环节,这个时候就可能有很多的选择了,调 SQL 语句、存储过程,或者还是使用 ETL 控件来实现。
有的项目上习惯使用 ETL 控件来实现数据流中的转换,也有的项目要求不使用标准的转换组件使用存储过程来调用。也有的是因为数据仓库本身这个数据库不支持存储过程就只能通过标准的SQL来实现。
我们通常讲的BI数据架构师其实指的就是ETL的架构设计,这是整个BI项目中非常核心的一层技术实现,数据处理、数据清洗和建模都是在ETL中去实现。一个好的ETL架构设计可以同时支撑上百个包就是控制流,每一个控制流下可能又有上百个数据流的处理过程。之前写过一篇技术文章,大家可以搜索下关键字 BIWORK ETL 应该在网上还能找到到这篇文章。这种框架设计不仅仅是ETL框架架构上的设计,还有很深的ETL项目管理和规范性控制器思想,包括后期的运维,基于BI的BI分析,ETL的性能调优都会在这些框架中得到体现。因为大的BI项目可能同时需要几十人来开发ETL,框架的顶层设计就很重要。
首先,使用SQL 语句可以代替SSIS在ETL中的大部分工作。
1、两者比较ETL的好处,基础入门简单, *** 作界面化,使用一个很复杂的SQL 完成一项工作时,这个时候用ETL就会比SQL 方便很多。
2、维护查看比SQL直观, 比如执行过程,SSIS可以很好通过界面去查看现在ETL的过程执行到什么状态。
3、SSIS日志方面本身比SQL完善。
4、SSIS工具本身性能会略优于SQL,同样的千万级数据用SSIS比SQL快很多。
5、你可以反过来想,SQL 一直都存在,那为什么还要在SQL之后专门搞一个ETL开发工具SSIS呢?
其实,在项目中可以根据需要将两者结合一起进行使用。数据量小、数据流程清晰可以使用SQL代替SSIS,如果复杂时数据量大还是用SSIS本身的插件好。
显然不对。
百度百科可以看下ETL定义:ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
这个源端到目的端不是说数据库之间的抽取才叫源端到目的端。数据库内部的数据加工也是啊,贴源层的数据到明细层也是,明细层到汇总层也是。而且你理解的ODS层之前的ETL过程实际就是抽取的过程,那么还有转换和清洗呢?清洗不仅仅是脏数据的清洗,也包括业务逻辑上的清洗,转换也是一样,不仅仅是映射关系的转换,也包含了业务逻辑的整合汇总等等。
实际上把抽过来的数据最终整合成使用方可方便使用的数据的整个过程都可以叫做ETL。
而目前的市场上来说职位上叫ETL或者数仓已经没有很明显的区分了,特别是互联网行业。我招一个ETL实际上就是干数仓的活,招一个数仓那你实际上也包含了ETL的能力。
ETL是将业务系统的数据经过抽取(Extract)、清洗转换(Transform)之后加载(Load)到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
处理分为五大模块,分别是:数据抽取、数据清洗、库内转换、规则检查、数据加载。各模块可灵活进行组合,形成ETL处理流程。简单介绍一下各个模块之间的主要功能。
Elt数据清洗主要将不完整数据、错误数据、重复数据进行处理,数据转换空值处理:可捕获字段空值,进行加载或替换为其他含义数据,或数据分流问题库数据标准:统一元数据、统一标准字段、统一字段类型定义数据拆分:依据业务需求做数据拆分,如身份z号,拆分区划、出生日期、性别等数据验证:时间规则、业务规则、自定义规则数据替换:对于因业务因素,可实现无效数据、缺失数据的替换数据关联:关联其他数据或数学,保障数据完整性。
数据加载将数据缓冲区的数据直接加载到数据库对应表中,如果是全量方式则采用LOAD方式,如果是增量则根据业务规则MERGE进数据库。
以上就是关于etl不包含哪个数据处理过程全部的内容,包括:etl不包含哪个数据处理过程、etl是与什么技术紧密相关的、ETL是什么,形象的介绍一下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)