资源描述
数据清洗大数据应用人才培养系列教材第三章基本技术方法3.1 ETL入门312技术路线3:3 ETL工具3:4 ETL子系统习题 3.1 ETL入门第三章基本技术方法3.1.1 ETL解决方案企业每年产生海量的数据,这些数据,有的对企业非常重要,有的对企业没有用处。如何在海量数据中抽取出有用的数据?可以通过ETL来进行实现。ETL,全称为Extraction-Transformation-Loading,中文名为数据抽 取、转换和加载。2 ETL的主要功能是将分布的、异构数据源中的数据如关系数据、平面数 据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据 仓库或数据集市中,成为联机分析处理、数据挖掘的基础。y ETL也是一个长期的过程,只有不断地发现问题并解决问题,才能使 ETL运行效率更高,为项目后期开发提供准确的数据。3.1 ETL入门第三章基本技术方法业务需求是数据仓库最终用户的信息需求,它直接决定了数据源的选择。在ETL设计 /时,需要考虑原始数据是否能解决用户的 _/业务需求,同时,业务需求和数据源的内容是不断变化的,需要对ETL不断进行检 验和讨论。在数据进入数据仓库之前,需要将 全部数据无缝集成到一起。数据集 成可采用规模化的表格来实现,也 就是在分离的数据库中建立公共维 度实体,从而快速构建报表。/数据评估是使用分析方法来检查数据,充分了解数据的内容、质量。设计好的 数据评估方法能够处理海量数据。大ETL系统的最终步骤是将数据提交给最 终用户,提交过程占据十分重要的位置,并对构成最终用户应用的数据结构和内容 进行严格把关,确保其简单快捷。3.1 ETL入门第三章基本技术方法L业务需求业务需求是数据仓库最终用户的信息需求,它直接决定了数据源的选 择。在许多情况下,最初对于数据源的调查不一定完全反映数据的复杂 性和局限性,所以在ETL设计时,需要考虑原始数据是否能解决用户的 业务需求,同时,业务需求和数据源的内容是不断变化的,需要对ETL 不断进行检验和讨论。对数据仓库典型的需求包括:数据源的归档备份以及随后的数据存储。任何造成数据修改的交易记录的完整性证明。对分配和调整的规则进行完备的文档记录。数据备份的安全性证明,不论是在线还是离线进行。3.1 ETL入门第三章基本技术方法2.数据评估数据评估是使用分析方法来检查数据,充分了解数据的内容、质量。设计好的数据评估方法能够处理海量数据。例如,企业的订单系统,能够很好地满足生产部门的需求。但是对 于数据仓库来说,因为数据仓库使用的字段并不是以订单系统中的字段 为中心,因此订单系统中的信息对于数据仓库的分析来讲是远远不够的。对于脏数据源需要进行操作处理,主要包括以下几个方面:完全清除某些输入字段;补入一些丢失的数据;自动替换掉某些错误数据值;在记录级别上进行人工干预;对数据进行完全规范化的表述。3.1 ETL入门第三章基本技术方法3.数据集成在数据进入数据仓库之前,需要将全部数据无缝集成到一起。数据 集成可采用规模化的表格来实现,也就是在分离的数据库中建立公共维 度实体,从而快速构建报表。在ELT系统中,数据集成是数据流程中一个独立的步骤,叫作规格化 步骤。4.最终用户提交界面ETL系统的最终步骤是将数据提交给最终用户,提交过程占据十分 重要的位置,并对构成最终用户应用的数据结构和内容进行严格把关,确保其简单快捷。将使用复杂、查询缓慢的数据直接交给最终用户是不 负责的,经常犯的一个错误就是将完全规范化的数据模型直接交给用户,就不再过问。3.1 ETL入门第三章基本技术方法3.1.2 ETL基本构成 3.1 ETL入门第三章基本技术方法1.数据抽取所谓数据抽取,就是从源端数据系统中抽取目标数据系统需要的数据。进行数据抽取的原则:一是要求准确性,即能够将数据源中的数据准 确抽取到;二是不对源端数据系统的性能、响应时间等造成影响。数据 抽取可分为全量抽取和增量抽取两种方式。(1)全量抽取全量抽取好比数据的迁移和复制,它是将源端数据表中的数据一次性 全部从数据库中抽取出来,再进行下一步操作。(2)增量抽取增量抽取主要是在第一次全量抽取完毕后,需要对源端数据中新增或修 改的数据进行抽取。增量抽取的关键是抽取自上次以来,数据表中已经 变化的数据。3.1 ETL入门第三章基本技术方法1.数据抽取(2)增量抽取例如,在新生入学时,所有学生的信息采集整理属于全量抽取;在 后期,如果有个别学生或部分学生需要休学,对这部分学生的操作即属 于增量抽取。增量抽取一般有4种抽取模式触发器模式,这是普遍采用一种抽取模式。一般是建立3个触发器,即插入、修改、删除,并且要求用户拥有操作权限。当触发器获得新增 数据后,程序会自动从临时表中读取数据。这种模式性能高、规则简单、效率高,且不需要修改业务系统表结构,可实现数据的递增加载。3.1 ETL入门第三章基本技术方法1.数据抽取(2)增量抽取时间戳方式,即在源数据表中增加一个时间戳字段。当系统修改源端数据 表中的数据时,同时修改时间戳的值。在进行数据抽取时,通过比较系统时间 和时间戳的值来决定需要抽取哪些数据。全表对比方式,即每次从源端数据表中读取所有数据,然后逐条比较数据,将修改过的数据过滤出来。此种方式主要采用MD5校验码。全表对比方式不 会对源端表结构产生影响。日志对比方式,即通过分析数据库的日志来抽取相应的数据。这种方式主 要是在Oracle 9i数据库中引入的。以上4种方式中,时间戳方式是使用最为广泛的,在银行业务中采用的就是时 间戳方式。3.1 ETL入门第三章基本技术方法2.数据转换数据转换就是将从数据源获取的数据按照业务需求,通过转换、清洗、拆分等,加工成目的数据源所需要的格式。数据转换是ETL过程中最关键的步 骤,它主要是对数据格式、数据类型等进行转换。它可以在数据抽取过程中进 行,也可以通过ETL引擎进行转换。数据转换的原因非常多,主要包括以下3 种:数据不完整,指数据库的数据信息缺失。这种转换需要对数据内容进行二 次输入,以进行补全。数据格式错误,指数据超出数据范围。可通过定义完整性进行模式约束。数据不一致,即主表与子表的数据不能匹配。可通过业务主管部门确认后,再进行二次抽取。3.1 ETL入门第三章基本技术方法3.数据加载数据加载是ETL的最后一个步骤,即将数据从临时表或文件中,加载到指 定的数据仓库中。一般来说,有直接SQL语句操作和利用装载工具进行加载两 种方式,最佳装载方式取决于操作类型以及数据的加载量。3.1 ETL入门第三章基本技术方法3.1.3 ETL技术选型ETL技术的选型,主要从成本、人员、案例和技术支持来衡量。目前流行 的3种主要技术为Datastage、Powercenter和ETL Automationo 在Datastage和Powercenter中,ETL技术选型可以从对ETL流程的支持,对元 数据的支持和对数据质量的支持来考虑,同时从兼顾维护的实用性、定制开发 的支持等方面考虑。在ETL中,数据抽取过程多则上百,少则十几个,它们之 间的依赖关系、出错控制及恢复的流程都是需要考虑的。大数据应用人才培养系列教材第三章基本技术方法3JL ETL入门3.2技术路线3:3 ETL工具314 ETL子系统习题3.2技术路线第三章基本技术方法文本 清洗数据的来源不同Web内容清洗RDBMS清洗F,3.2技术路线第三章基本技术方法3.21文本清洗路线对文本进行清洗主要包括电子表格中的数据清洗和文本编辑器的数据清洗。对于电子表格中的数据清洗,主要是利用表格中的行和列,以及电子表格中的 内置函数。我们通常把一些数据复制到电子表格中,电子表格根据相应分隔符(制表位或逗号或其他)把数据分成不同的列。有时候会根据系统不同来人为 地制定分隔符。对于文本编辑器中的数据清洗,主要是许多操作系统中集成了文本编辑器,如Windows操作系统中的文本编辑器。在进行文本清洗前,需要对数据进行 整理,包括对数据中的数据改变大小写、在文本每一行前端增加前缀,主要是 为了在转换过程中,有可以参考的分隔符。,3.2技术路线第三章基本技术方法3.2.2 RDBMS清洗路线RDBMS即关系型数据库管理系统,它作为经典的、长 期使用的数据存储解决方案,成为数据存储的标准。但由 于不同的人在设计数据库时,往往存在设计缺陷,需要对 数据库的数据进行清洗。通过清洗可以找到异常数据,通 常使用不同的策略来清洗不同类型的数据。对于RDBMS数据的清洗,有两种方式可以选择,即可 以先把数据导入数据库,然后在数据库端进行清洗;也可 以在电子表格或文本编辑器中进行清洗。具体选择哪种方 案,会根据不同的数据进行不同而选择。,3.2技术路线第三章基本技术方法3.2.3 Web内容清洗路线Web内容清洗,主要是清洗来自网络的数据,为其构 建合理的清洗方案。Web数据主要来自HTML网页。HTM L网页的页面结构决定了采取哪种方式。1.HTML页面结构2.清洗方式,3.2技术路线第三章基本技术方法1.HTML页面结构文本组成。所以从Web中进行数据抽取,可有两种不同 的方式,一种是行分隔方式,另一种是树形结构方式。在行分隔方式中,我们把网页的数据看作文本内容,把网 页中的标签理解为分隔符,这样在进行数据抽取时就比较 容易。2.清洗方式Web内容清洗可以有两种方式,一种是逐行方式,另一 种是使用树形结构方式。逐行方式中,采用基于正则表达式的HTML分析技术,它是基于文件中的分隔符,配合正则表达式,获取需要的 数据。大数据应用人才培养系列教材第三章基本技术方法3ETL入门3.2 技术路线3.3 ETL工具3.4 ETL子系统习题ETL功能 j调试功集成桂 1能和开放攵C M郎一jlej)3.3 ETL工具第三章基本技术方法3.3.1 ETL 功能评价ETL设计的好坏需要从多个不同的角度来考虑,主 要包括对多平台的支持、数据源格式的支持、数据的转换、数据的管理和调试、数据的集成和开放性以及对元数据的 管理等方面。.多平台业套数据量的飞速增长,对系统的可靠性提出了更高的要 求。对于海量的数据抽取,往往要求在有限的时间内完成。所以,平台对ETL开发工具的支持成为衡量一个开发工具的 重要指标。目前主流的平台包括Windows、Linuxs IBM AIXS Mac OS等。)3.3 ETL工具第三章基本技术方法3.3.1 ETL 功能2 多种数据源开爱工具对数转源的支持非常重要,不仅要考虑项目开 发中各种不同类型的数据源,还要考虑数据源的接口类型。例如,在数据抽取时,使用原厂商自己的专用接口,还是 通用接口,效率会大不一样。数据源包括Oracle、SQL Server.DB2S Sybase.Microsoft Excel等。3.数据转窥由宇在业务系统中的数据,存在数据时间跨度大、数据 量多而乱的特点,就会造成在数据业务系统中可能会有多 种完全不同的存储格式,也有可能业务系统存储的数据需 要进行计算才能够抽取,因此,ETL功能中必须要有对数据 进行计算、合并、拆分等转换功能。)3.3 ETL工具第三章基本技术方法3.3.1 ETL 功能4.具备管理和调试功能由于数据业务量的增大,对数据抽取的要求也越来越高,专业的ETL工具要求具有管理和调度的功能,主要包括抽取 过程的备份和恢复、版本升级、版本管理、支持统一的管 理平台等功能。5.集成性和开放性随着国内数据仓库技术的不断发展,大多数情况下一般 项目只会用到ETL工具的少数几个功能,开发商将ETL工具 的主要功能模块集成到自己的系统中,这样可以减少用户 的操作错误。这就要求ETL能够具有较好的集成性和开放性。)3.3 ETL工具第三章基本技术方法3.3.1 ETL 功能6.管理元数据元数据是描述数据的数据,它是对业务数据本身及其运 行环境的描述与定义,主要用于支持业务系统应用。元数 据的主要表现是对对象的描述,即对数据库、表、歹I、主 键等的描述。在当前信息化建设中,一些应用的异构性和 分布性越来越普遍,使用统一的元数据成为重要的选择,合理的元数据可以打破以往信息化建设中的信息孤岛 等问题。)3.3 ETL工具第三章基本技术方法3.3.2开源ETL工具1.Pentaho KettleKettle是一款国外的开源ETL工具,纯Java编写,可以在 Windows.Linux.UNIX上运行,无须安装,数据抽取高 效稳定。Kettle(中文译名:水壶),该项目的主程序员Matt希 望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle将ETL流程编译为XML格式,学起来十分简单,Pentaho Data Integration(Kettle)使用Java(Swing)开发。Kettle作为编译器对以XML格式书写的流程进行编 译。Kettle的JavaScript弓|擎(和Java弓|擎)可以深层地控 制对数据的处理。)3.3 ETL工具第三章基本技术方法3.3.2开源ETL工具2.OpenRefineOpenRefine最初叫作Freebase Gridworks,由一家名 为Metaweb的公司开发,主要用于调试各种表格,以避免 随着时间的推移出现错误,这对于任何数据库来说都是一 个很大的问题。后来,该软件被谷歌收购,更名为Google Refine,并发布了第2版。2012年 10月,Google Refine 被社区接管,并以OpenRefine为名进行了开源。)3.3 ETL工具第三章基本技术方法3.3.2开源ETL工具3.DataWranglerDataWrangler(中文译名:牧马人)是一款由斯坦福 大学开发的在线数据清洗、,藜婚事组软件,主要用于去除 无效数据,将数据整理成用芦需嬖的格式等。使用 DataWrangler能节约用户花在数据整理上的时间,从而使 其有更多的精力用于数据分析。)3.3 ETL工具第三章基本技术方法3.3.2开源ETL工具4.HawkHa wk是一种数据抓取和清洗工具,依据GPL协议开源,软件基于C#实现,其前端界面使用WPF开发,支持插件扩 展。能够灵活高效地采集网里入数据库、文件等来源的数 据,并通过可视化拖曳操很乎快推地进行生成、过滤、转 换等数据操作,快速建立解决方案。非常适合作为网页爬 虫和数据清洗工具。Hawk含义为鹰,形容能够高效、准确地抓取和清洗数据。大数据应用人才培养系列教材第三章基本技术方法3;ETL入门3.2技术路线3 3 ETL工具3.4 ETL子系统习题)3.4 ETL子系统第三章基本技术方法3.4.1抽取抽取类子系统中,主要包括数据分析系统、增量捕获系 统和数据抽取系统。数据分析系统主要用来分析不同类型的数据源,包括数 据源的格式、数据的类型、数据的内容等。数据增量捕获系统主要是捕获数据源中发生了改变的数 据,在Kettle中可通过时间戳的方式来捕获数据的变化。数据抽取系统主要是从不同的数据源抽取数据,通过数据 的过滤和排序,数据格式的转换,迁移到ETL环境,进行数 据暂存。)3.4 ETL子系统第三章基本技术方法3.4.2 清洗和更正数据清洗和更正数据子系统主要包括数据清洗系统、错误处 理系统、审计维度系统、重复数据排查系统和数据一致性 系统。八戴清洗系统主要是根据系统业务需求对数据源中的数 据进行清洗,提高数据的质量。通过清洗,可以找到错误 的数据,并进行更正。在数据清洗系统中,数据业务人员、源系统开发人员、E LT开发人员都有义务来完成数据的清洗。)3.4 ETL子系统第三章基本技术方法3.4.3 数据发布数据发布类子系统主要是加载和更新数据仓库数据,包 括数据缓慢变化维度处理系统、迟到维度处理系统、代理 键生成系统等。这里主要讲述数据缓慢变化维度处理系统。数据缓慢变化维度处理系统是多维度数据仓库的基础,它 保存了对事实表进行分析的信息。例如,如果业务系统修 改了客户的信息,维度变更也会根据不同的规则变更数据 仓库中的数据维度。变更方式可采用覆盖、增加新行、增 加新列、增加小维度表、分离历史表等方式。)3.4 ETL子系统第三章基本技术方法3.4.4 管理ETL管理ETL系统主要是对ETL开发环境进行设置,包括备份 系统、恢复和重新启动子系统、工作流监控系统、问题报 告系统、版本控制系统等。大数据应用人才培养系列教材第三章基本技术方法3.1 ETL入门32技术路线具3.4 ETL子系统习题习题:1.什么是ETL,其主要功能是什么?2.对数据仓库典型的需求包括哪几个方面?3.在数据评估中,对数据源进行清洁处理主要包括哪几个方面?4.简述比较流行的开源ETL工具。5.ETL子系统主要包括哪4种类型?感谢聆听
展开阅读全文