ETL技术设计规范方案(通用)
第3章 ETL技术

ETL过程描述
数据仓库的架构大体可以分为三部分:后台是数据存 储和计算引擎;前端是展示分析流程或分析结果的界面; 另一部分就是ETL。ETL就像是数据仓库和业务系统之间 的一座桥梁,它确保新的业务数据能源源不断进入数据仓 库,同时用户的分析和应用也能反应出最新的业务动态。 虽然ETL在数据仓库架构的三部分中技术含量并不算高, 但其涉及到大量的业务逻辑和异构环境,因此在一般的数 据仓库项目中ETL部分往往是牵扯精力最多,也是最耗费 时间的一环。如果从整体角度来看,ETL主要作用在于其 屏蔽了复杂的业务逻辑从而为各种基于数据仓库的分析和 应用提供了统一的数据接口,这正是构建数据仓库的重要 目的。
数据仓库与数据挖掘技术
第3章 ETL技术
信息科学与工程学院
内容
ETL相关概念 ETL过程建模 ETL增量抽取机制 ETL过程数据质量控制 ETL并行处理技术 小结
将原来业务系统的数据经过抽取、转换、加载到数 据仓库所在的中心存储库的过程称为ETL (Extraction, Transformation and Loading)过程,制 定这个过程的策略称之为ETL策略,而完成ETL过 程的工具则是ETL工具。相对于数据仓库中的表而 言,业务系统数据库中的表称为源表,业务系统数 据库称为源数据库,数据仓库中所有的数据都来自 于业务系统数据库。在打造一个数据仓库的过程中, ETL的实施是一项繁琐、冗长而艰巨的任务,因为 它关系到数据仓库中数据的质量问题,如果导入的 数据漏洞百出,对决策者来说无疑是个噩耗。 ETL过程是搭建“数据仓库”时最重要的和最易误 解的步骤之一。
3.1.3 数据清洗
数据仓库的外部数据源所提供的数据内容并不完美,存在着 “脏数据”,即数据有空缺、噪声等缺陷,而且在数据仓库的各 数据源之间,其内容也存在着不一致的现象。为了控制这些“脏 数据”对数据仓库分析结果的影响程度,必须采取各种有效的措 施,对其进行处理,这一处理过程称为“数据清洗”(Data Cleaning)。对于任何数据仓库而言,数据清洗过程都是必不可 少的。 不同类型的“脏数据”,清洗处理的方法是不同的。对于数 据空缺,可以采用忽略元组、用一个全局常量填充空缺值、用属 性的平均值填充空缺值、使用与给定元组同类的所有样本的平均 值填充空缺值、使用最可能的值填充空缺值、使用像Bayesian公 式或判定树这样的基于推断的方法;对于噪声数据,可以用分箱 或聚类等方法处理;而对于不一致的数据,则必须依据数据仓库 所应用领域的特点,使用特定的方法加以解决。
《大数据ETL》课程标准精选全文

精选全文完整版(可编辑修改)《大数据ETL》课程标准一、课程名称大数据ETL。
二、适用专业大数据技术专业。
三、课程学时与学分72学时,4学分。
四、课程性质本课程是大数据技术专业的一门专业核心课程,是从事数据采集工程师、ETL工程师、数据仓库工程师等岗位必须学习的课程,将为后续学习《大数据集群运维监控》、《大数据集群运行问题排查、调优》、《数据仓库建设》等课程奠定基础。
本课程开设在第8学期,学习该课程之前需具备一定的SQL编程、数据采集、数据处理、数据分析能力,《互联网数据采集》、《大数据组件安装部署》、《数据清洗与预处理》是该课程的前导课程。
本课程学习的知识和技能可以为第9、10学期考取大数据分析与应用X证书(初级)、华为HCIA-Big Data大数据认证证书做知识和技能准备。
五、课程目标通过本课程的学习,能完成医疗数据中台数据汇总任务、商务机构交易数据汇总任务、汽车制造行业供应链数据汇总任务、传统生产系统数字化转型数据仓库数据建设任务、能源行业数字化转型数据仓库数据建设任务,达到以下具体目标:(一)素养目标1.培养学生的政治思维、政治洞察力与政治敏感性,培养学生的社会主义核心价值观、爱国主义情操。
(培养规格1)2.能够熟练掌握与本专业从事职业活动相关的国家法律、行业规定,掌握信息数据安全、网络安全防护、质量管理等相关知识与技能,了解大数据、网络信息等产业文化,遵守职业道德准则和行为规范,具备社会责任感和担当精神。
(培养规格2)3.具备大数据思维,具备较强的逻辑思维能力。
(培养规格5)4.关心国内外科技发展趋势,具备使用大数据技术服务于社会的意识,具备良好的自我管理能力,拥有较为清晰的职业与人生目标以及较好的职业生涯规划能力。
(培养规格4)5.具备自学能力,能适应大数据行业的不断变革发展,具备解决实际问题、持续学习的能力,能从事实际的数据采集工作,具有较强的规划观念、精益求精意识。
(培养规格5)(二)知识目标1.掌握不同类型的数据库接口操作方法。
数据仓库中的ETL技术

数据仓库中的ETL技术数据仓库已经成为当今企业和组织在数据管理和决策支持方面的重要基础设施。
通过将分散的、杂乱的和不一致的数据汇集到一个统一的、结构化的数据集合中,数据仓库可以提供一种综合的数据视图,为企业管理层和分析师提供决策支持。
在构建和维护数据仓库时,ETL(Extract, Transform, Load)技术扮演着重要的角色。
ETL技术是指从源系统中提取数据,并对数据进行转换和加载到目标数据仓库中的一系列过程。
下面将逐一介绍ETL技术的三个主要步骤。
首先,ETL过程的第一步是数据提取(Extract)。
数据可以来自各种不同的源系统,如关系数据库、平面文件、Web服务等。
数据提取可以根据需求使用不同的方法,如增量提取和全量提取。
增量提取仅提取自上次提取以来发生更改或新增的数据,而全量提取则完全提取源系统中的所有数据。
可靠的数据提取策略既需要保证数据的准确性,又需要保证提取过程的效率。
第二,ETL过程的第二个步骤是数据转换(Transform)。
数据从源系统中提取出来可能存在许多问题,如数据格式不一致、数据类型错误等。
在数据转换阶段,数据会经过清洗(Cleansing)、校验(Validation)、转换(Transformation)等一系列操作。
清洗操作可以删除无效的、冗余的或者重复的数据。
校验可以确保数据的完整性,包括必填字段、有效性验证等。
转换操作可以将数据从源系统的模型转换为目标数据仓库的模型,如将关系数据库的表结构映射为星型模型或雪花模型。
数据转换是ETL过程中最为重要的一步,它确保了数据在目标数据仓库中的一致性和准确性。
最后,ETL过程的最后一步是数据加载(Load)。
在这一步骤中,数据会按照目标数据仓库的模型被加载到仓库中。
根据加载方式的不同,可以将数据加载为全量加载或增量加载。
全量加载是指将所有数据一次性加载到仓库中,而增量加载是指只将自上次加载以来更改或新增的数据加载到仓库中。
etl 技术方案

ETL 技术方案引言ETL(Extract Transform Load)技术是在数据仓库和商业智能领域中广泛使用的一种数据集成和处理技术。
它主要用于从多个数据源中提取数据,对数据进行转换和清洗,最后将数据加载到目标数据仓库中。
本文将介绍一个基本的 ETL 技术方案,以帮助解决数据集成和数据处理的问题。
技术方案数据提取(Extract)数据提取阶段涉及从数据源中获取所需数据的过程。
这些数据源可以是各种异构的系统,包括关系型数据库、日志文件、API 接口、第三方数据服务等。
在进行数据提取时,可以采用以下方法:•批量提取:定期按照一定的时间间隔,通过批量作业的方式提取数据。
•增量提取:根据数据源的变动情况,仅提取最新的增量数据。
•实时提取:通过监听数据源的变动,实时获取数据。
数据提取的方式可以根据实际需求进行选择。
一般而言,批量提取和增量提取是最常见的方法。
数据提取完成后,将数据存储为中间文件或者直接加载到转换阶段。
数据转换(Transform)数据转换是将从数据源中提取的数据进行清洗、整合、格式化等处理的阶段。
在数据转换阶段,可以执行以下任务:•数据清洗:去除重复数据、处理缺失值、规范化数据格式等。
•数据整合:把来自不同数据源的数据整合到一个一致的数据模型中。
•数据变换:根据业务需求对数据进行加工转换,例如计算指标、拆分字段等。
•数据筛选:根据一定的过滤条件,筛选出需要的数据。
数据转换一般使用 ETL 工具进行,例如 Apache Spark、Talend、Informatica 等。
这些工具提供了丰富的转换函数和图形化界面,便于开发人员进行快速开发。
转换阶段的数据处理逻辑可以通过编程语言(如 SQL、Python、Scala 等)进行编写。
数据加载(Load)数据加载是将转换后的数据加载到目标数据仓库中的阶段。
目标数据仓库可以是关系型数据库、NoSQL 数据库、云存储等。
数据加载的方式可以分为以下两类:•全量加载:将所有转换后的数据一次性加载到目标数据仓库中。
数据处理与ETL技术

数据处理与ETL技术数据处理是指对原始数据进行整理、清洗、转换和计算的过程,以便能够更好地进行分析和应用。
而ETL技术(Extract、Transform、Load)则是一种用于从不同数据源中提取数据、转换数据格式以及将数据加载到目标系统的一种处理方法。
本文将介绍数据处理的基本概念、ETL技术的原理和应用场景,并探讨其对企业决策和业务发展的重要性。
一、数据处理的基本概念数据处理是指将原始数据转化为有用信息的过程,通过对数据的整理和清洗,提高数据的质量和准确性,并将数据转换成适合分析和应用的形式。
数据处理的过程包括数据的提取、转换和加载等环节,其中ETL技术起着关键的作用。
二、ETL技术的原理1. 数据提取(Data Extraction):ETL技术通过连接各种数据源,如数据库、文件等,将需要的数据提取出来。
数据提取可以通过SQL查询、文件读取等方式进行。
2. 数据转换(Data Transformation):在数据提取之后,需要对数据进行转换,使其符合目标系统的要求。
数据转换可以包括数据清洗、数据合并、数据计算、数据格式转换等操作。
3. 数据加载(Data Loading):数据转换完成后,将数据加载到目标系统中,使之能够被业务系统和分析工具所使用。
数据加载可以分为全量加载和增量加载两种方式,根据需求选择合适的加载方式。
三、ETL技术的应用场景ETL技术在企业的数据处理和分析中具有广泛的应用场景,以下列举几个典型的应用场景:1. 数据仓库建设:ETL技术可以用于从不同的数据源中将数据提取、转换和加载到数据仓库中,满足企业对数据集成和决策分析的需求。
2. 数据清洗和预处理:企业内部的数据通常存在一定的不完整和不准确性,ETL技术可以帮助企业进行数据清洗和预处理,提高数据质量和准确性。
3. 数据迁移和同步:当企业需要将数据从一个系统迁移到另一个系统时,ETL技术可以帮助实现数据的迁移和同步,确保数据的完整性和一致性。
ETL设计开发规范文档

ETL设计开发规范⽂档ETL设计说明书错误!未找到引⽤源。
⽬录1.概述 (5)2.ETL开发策略 (7)3.ETL系统架构设计 (8)3.1ETL整体框架 (8)3.2ETL系统逻辑架构 (8)3.2.1ETL系统的备份和恢复 (9)4.ETL应⽤框架设计 (10)4.1ETL应⽤架构逻辑图 (10)4.2ETL模式 (11)4.3数据抽取(Extract)和数据变换(Convert) (11) 4.3.1数据抽取(Extract) (11)4.3.2数据变换(Convert) (11)4.3.3数据分割(Split) (12)4.4数据转换(Transform) (12)4.4.1字段合并与拆分 (12)4.4.2赋缺省值 (12)4.4.3数据排序(Sort) (12)4.4.4数据翻译(Lookup) (12)4.4.5数据合并(Merge) (12)4.4.6数据聚合(Aggregate) (13)4.4.7⽂件⽐较(File Compare) (13)4.4.8其他复杂计算 (13)4.5数据加载(Load) (13)4.5.1Pre-Load (13)4.5.2Load (13)4.5.3Post-Load (14)4.6ETL进程和进程调度 (14)4.7管理功能(Management Interface) (14)4.8初始数据、历史数据和⽇常数据ETL (15)5.开发规范 (16)5.1中间⽂件 (16)5.2临时⽂件 (16)5.3BAPI参数⽂件 (17)5.4ETL程序 (17)5.4.1DataStage Project命名 (17)5.4.2DataStage中Job命名 (17)5.4.3DataStage中Stage命名 (18)5.4.4DataStage中Link命名 (19)5.4.5DataStage中Routine命名 (19)5.4.6DataStage产⽣的Abap程序命名 (19) 5.4.7DataStage中Table Definition命名 (20) 5.4.8Store procedure程序命名 (21)5.5Reject⽂件 (21)5.6系统⽇志 (21)5.7ODBC (22)5.8版本控制 (22)5.8.1ABAP程序及BAPI程序 (22)5.8.2DataStage Job及Routine (22)5.8.3Store Procedure程序 (22)5.8.4⽂档 (22)5.9ETL Job开发⽅法规范 (23)5.9.1TableDefinition的使⽤原则 (23)5.9.2Extract Job的开发原则 (23)5.9.3CS Job的开发原则 (24)5.9.4Load Job的开发原则 (24)5.9.5Gc和Ge Job的开发原则 (25)5.9.6关于存储过程及BAPI (26)6.系统环境 (27)6.1开发、测试和运⾏环境规划 (27)6.2⽂件⽬录 (27)6.3DataStage Manager⽬录层级规划 (28)7.ETL应⽤设计 (30)7.1应⽤模块架构 (30)7.1.1DataStage Server (30)7.1.2DataBase Server (31)7.2ETL Job设计 (31)7.2.1Schedule Job (31)7.2.2Dependence Job (36)7.2.3Maintance Job (36)7.2.4Group Job (38)7.2.5Component Job (40)7.3ETL环境参数 (42)7.3.1JobParams.cfg⽂件格式 (42)7.3.2参数说明 (42)7.4公共Routine设计 (43)7.4.1Transform Routine (43)7.4.2Before/After SubRoutine (47)7.5初始ETL程序 (48)8.ETL开发流程及管理 (49)8.1开发环境准备 (49)8.2开发步骤 (49)8.2.1⽇常数据加载: (49)8.2.2初始数据加载: (49)8.2.3历史数据加载: (49)8.3⾓⾊及责任 (50)9.ETL质量控制及错误处理 (52)9.1ETL质量控制主要实现⼿段 (52)9.2拒绝⽂件及拒绝处理策略 (52)9.3已⼊库源数据发⽣错误的应对策略 (52)附录I.ETL Mapping⽂件⽂档模板 (54)附录II.ETL Data Flow⽂档模板 (55)附录III.ETL Job Dependency⽂档模板 (56)1. 概述ETL系统的核⼼功能就是按照本设计说明书的架构,将数据由数据源系统加载到数据仓库中。
ETL技术设计规范方案通用

范文典范学习指导ETL技术规第1章 . ETL 设计规ETL设计规主要应用于 ETL编码的先期工作。
因为 ETL全过程是面向数据的,主要工作为数据的抽取( Extract )、变换( Transform )、装载( Loading ),正确界定所波及到的数据围和应当应用的变换逻辑关于后续的编码工作特别重要,这些数据关系确实定,我们称之为Mapping(数据映照)。
正确立义数据映照关系是ETL成功实行的前提,一个完美的 Mapping 应当包含以下几个部分:源数据集属性此部分应当详尽描绘数据源的有关属性,包含:实体名称——含数据根源名称( DSN)、全部者等信息;字段名称——英文名称;字段简述——中文名称,如为参数信息应当有有关取值解说,如性别字段(1:男; 2:女; 0:不详)种类——字段种类,含长度和精度信息;非空属性——字段能否能够为空;目标数据集属性此部分应当详尽描绘目标数据集的有关属性,包含:实体名称——含数据根源名称( DSN)、全部者等信息;字段名称——英文名称,建议依据字段含义来命名,而不是简单用拼音来定义字段(此部分由负责设计数据集的人员控制);字段简述——中文名称,关于保存字段应当给出默认值;种类——字段种类,含长度和精度信息;非空属性——字段能否能够为空;1.3 ETL规则主要描绘 ETL 各个环节的变换规则,包含:数据源过滤规则——描绘从源数据集获得数据过程中过滤掉记录的规则;关系规则——当源数据集为多个时,描绘互相之间的关系关系;列变换规则——描绘源数据集到目标数据集的字段间的变换规则;此规则特别重要,要清楚描绘字段间的逻辑关系,包含业务逻辑;目标数据集更新规则——描绘目标数据集的更新策略,包含更新体制和更新频度,如“每天全量更新” 、“每周增量更新”等;ETL作业列表——因为 ETL所开发的作业之间包含必定的业务逻辑和编码逻辑,所以调动过程中应依据必定的逻辑次序,此部分主要用来明确调动的次序,包含:作业名称——实现 Mapping 的作业名称,包含该作业功能描绘;调动次序——用序号或许是流程图模式描绘作业的调动次序,需要综合考虑业务逻辑、编码逻辑以及系统资源等多方面状况,在保证业务逻辑和编码逻辑的基础上,经过控制调动,最大限度地合理利用系统资源;参数列表——列举每个作业中所使用的参数,不一样作业中的同样参数最好使用同样的名称,便于调动时进行控制。
ETL设计实现

ETL设计实现ETL(Extract, Transform, Load)是一种数据仓库建设过程中常用的数据集成技术。
它的主要目标是从多个不同的数据源中抽取数据,经过一系列的转换操作之后,将数据加载到数据仓库中,以便进行数据分析和报告生成。
在ETL设计实现中,首先需要明确的是数据源和目标数据仓库,同时要了解数据源的结构和格式,以便进行后续的抽取和转换操作。
接下来,可以根据具体需求来设计ETL流程,并选择合适的工具和技术来实现。
ETL的设计实现主要包括以下几个步骤:1. 数据抽取(Extract):这是ETL过程的第一步,主要是从数据源中抽取需要的数据。
数据源可以是数据库、文件、Web服务等各种数据存储系统。
在抽取数据时,通常需要考虑数据源的连接、查询条件、字段选择等因素。
2. 数据转换(Transform):在数据抽取之后,需要对数据进行一系列的转换操作,以便满足目标数据仓库的需求。
数据转换可以包括数据清洗、数据整合、数据规范化、数据格式转换等。
在这一步中,可以使用一些ETL工具或编程语言来实现数据转换操作。
3. 数据加载(Load):数据加载是ETL过程的最后一步,即将转换后的数据加载到目标数据仓库中。
数据加载可以分为全量加载和增量加载两种方式。
全量加载是将所有转换后的数据一次性加载到目标数据仓库中,而增量加载是只将增量数据加载到目标数据仓库中,以提高数据加载效率。
在ETL设计实现过程中,还需要考虑以下几个方面:1.数据质量:在数据转换过程中,需要考虑数据的质量问题。
常见的数据质量问题包括缺失值、重复值、格式错误等。
可以通过数据清洗、数据验证等方式来提高数据质量。
2.并发和性能:在大规模数据加载情况下,需要考虑并发和性能问题。
可以采用多线程或分布式计算等方式来提高ETL的性能,并减少数据加载的时间。
3.错误处理与日志记录:在ETL过程中,可能会出现各种错误,如数据源连接错误、数据转换错误等。
需要对这些错误进行及时处理,并记录错误信息以便后续排查和修复。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ETL技术规第1章.ETL设计规ETL设计规主要应用于ETL编码的前期工作。
由于ETL全过程是面向数据的,主要工作为数据的抽取(Extract )、转换(Transform )、装载(Loading),正确界定所涉及到的数据围和应当应用的转换逻辑对于后续的编码工作非常重要,这些数据关系的确定,我们称之为Mapping (数据映射)。
正确定义数据映射关系是ETL成功实施的前提,一个完善的Mapping应该包含以下几个部分:1.1源数据集属性此部分应该详细描述数据源的相关属性,包括:实体名称一一含数据来源名称(DSN、所有者等信息;字段名称--- 英文名称;字段简述--- 中文名称,如为参数信息应该有相关取值解释,如性别字段(1: 男;2:女;0:不详)类型一一字段类型,含长度和精度信息;非空属性一一字段是否可以为空;1.2目标数据集属性此部分应该详细描述目标数据集的相关属性,包括:实体名称一一含数据来源名称(DSN、所有者等信息;字段名称英文名称,建议根据字段含义来命名,而不是简单用拼音来定义字段(此部分由负责设计数据集的人员控制);字段简述中文名称,对于保留字段应该给出默认值;类型一一字段类型,含长度和精度信息;非空属性一一字段是否可以为空;1.3 ETL规则主要描述ETL各个环节的转换规则,包括:数据源过滤规则——描述从源数据集获取数据过程中过滤掉记录的规则;关联规则——当源数据集为多个时,描述相互之间的关联关系;列转换规则一一描述源数据集到目标数据集的字段间的转换规则;此规则非常重要,要清晰描述字段间的逻辑关系,包括业务逻辑;目标数据集更新规则一一描述目标数据集的更新策略,包括更新机制和更新频度,如“每日全量更新”、“每周增量更新”等;ETL作业列表一一由于ETL所开发的作业之间包含一定的业务逻辑和编码逻辑,所以调度过程中应遵循一定的逻辑顺序,此部分主要用来明确调度的顺序,包括:作业名称实现Mapping的作业名称,包括该作业功能描述;调度顺序一一用序号或者是流程图模式描述作业的调度顺序,需要综合考虑业务逻辑、编码逻辑以及系统资源等多方面情况,在保证业务逻辑和编码逻辑的基础上,通过控制调度,最大限度地合理利用系统资源;参数列表——列举每个作业中所使用的参数,不同作业中的相同参数最好使用相同的名称,便于调度时进行控制。
第2章.ETL开发规ETL项目的开发往往是多人团队开发模式,由于周期较长,期间难免会出现开发人员交替现象。
无论是开发过程中的人员交替还是从开发到系统运营之间的转换,都需要良好的交接。
为保证项目开发各个时期的平稳过度及顺利交接,在开发过程中,应该遵循一定的开发规。
主要包括:命名规结构规代码封装规2.1命名规2.1.1作业命名规ETL是一个复杂的工作,数据仓库的建设一般会花费70%以上的工作量在ETL上面,而且这是一个细致活,任何一点小的错误都有可能造成后续工作的出错和失败;此外,数据仓库需要不断的更新维护,相应的ETL程序也需要进行相关的更新维护,所花费的成本也很大。
一个好的命名规,能够使ETL的程序更清晰易懂,很好地避免了开发过程中出错;同时更好的可读性,也极大地减低了ETL程序的更新维护成本。
作业命名规则:[JOBTYPE][DESCRIPTION][SEQNUM]JOBTYPE作业类型DESCRIPTIO N有效的描述信息SEQNUM乍业的编号。
由于一定的原因,有可能需要拆分作业数据多次加载数据,这个编号就可以区分加载。
如果一次加载可以成功的话这个编号就不需要了。
2.1.2作业部命名规对于作业部命名,应该遵循代码的可读性与可传递性原则,命名规则:[Function] [Descripti on]Function :表示用途,Ex:抽取,Create:创建,Ld:装载,Lookup:查找等Description :有意义的描述,比如数据库表名,文件名等。
2.1.3作业注释规ETL开发过程往往要经历一个较长时间段,为了便于团队开发和后期维护,除开发设计文档要齐全外,还应该在作业设计界面中适当加注释信息,主要包括作业功能说明、所属模块、开发时间、开发人员等信息。
2.2结构规2.2.1作业目录组织结构对于ETLPROJEC而言,我们需要划分清晰的目录结构,根据一定的规则将作业组织起来,这样无论是对ETL设计人员,运行人员,维护人员,都有很大的帮助。
目录结构划分遵循以下原则:1.体现作业的依赖关系。
2.体现作业功能。
3.独立放置二次开发作业。
222模块化结构ETL按照处理逻辑分为E阶段(Extract )、T阶段(Transformer )和L阶段(Loading )。
E、T、L阶段可能分处不同的服务器上,需要跨网络运行,他们之间的配置情况可能存在较大的差异,而多数ETL设计的处理机制是串行运行机制,基于数据行处理。
如果E、T、L的过程同时运行,那么整体的处理能力应该是三个环节中效率最低的那个环节的处理水平。
如果我们将三个环节的设计分开,实行模块化流程处理,即E环节、T环节、L 环节均设计成可独立运行的模块,那么在整个处理过程中,将可以最大限度发挥功效,不会因为串性处理机制而相互制约。
另外,模块化的流程设计,对于开发阶段的调试以及维护阶段的出错处理都提供了良好的辅助作用。
第3章.ETL维护规3.1日志检查3.1.1日志文件报告ETL提供日志监测和报告功能。
报告分汇总报告和详细报告。
汇总报告报告容:作业总数,WARNIN作业数,成功作业数,失败作业数,开始时间,结束时间等详细报告报告容:作业名称,开始时间,结束时间,运行状态等3.1.2作业状态排查在ETL管理控制台上,可点击进入查看作业更为详细的状态及出错信息,以便于维护更正。
3.2出错处理即使是经过严格测试的程序,在实际运行中仍然会因为种种原因而导致出错,根据ETL的处理逻辑,我们将错误分为以下三类:抽取错误:简称E (Extract、类错误转换错误:简称T (Transformer、类错误装载错误:简称L (Loading、类错误321 E类错误这类错误发生在数据抽取阶段。
诸如数据库连接故障、网络资源不足等原因都可以导致此类故障。
由于此类错误发生时,数据还处于原始状态,未发生转换,对目标数据集也未产生任何影响,理论上可以看做是ETL处理未开始,因此处理此类错误相对简单,只需要排除故障原因后重新运行ETL处理即可。
3.2.2T类错误这类错误发生在数据转换阶段。
引发原因较多,既有环境资源故障的可能,也有设计逻辑缺陷的可能。
此类错误发生在ETL的中间阶段,应根据实际故障原因进行处理。
对于环境资源故障所引发的错误,只需要排除故障原因,重新运行ETL的T (Transformer )阶段和L( Loading )阶段即可。
对于设计逻辑缺陷所引发的错误,处理相对复杂一一首先要定位错误并修正程序,同时要明确该错误是否涉及到数据源的抽取逻辑,如果未涉及到,则在修正逻辑后重新运行T( Transformer )阶段和L( Loading )阶段程序即可;若逻辑错误与数据源相关,则需要重新运行包括E( Extract )阶段在的整个ETL处理。
3.2.3L类错误这类错误发生在数据装载阶段,除环境资源故障原因外,最大可能性是需要装载到目标集的数据违反了目标数据集数据约束,如主键重复、非空字段出现空值、数据超长、类型不匹配等等。
因环境资源故障(网络故障等等)所引发的出错,处理简单,只需排除故障,将目标数据集恢复到装载前状态,重新运行L阶段的处理即可。
对于非环境资源所引发的问题,处理与T类错误类似:先定位原因,根据以往的经验,问题多数发生在T阶段,可能存在设计缺陷或者运行逻辑缺陷,需要对T部分的处理进行修正,并将目标数据集恢复到装载前状态,重新运行T阶段和L阶段的处理。
在上一章“设计规”里,我们强调了模块化的流程设计,将E阶段、T阶段、L阶段按流程分模块化设计,其实不仅仅是为了解决系统资源瓶颈问题,同时也是为了方便出错时进行处理。
在发生T类和L类错误时,由于各处理阶段设计相对独立,对于不同阶段的问题,只需要单独运行与该阶段相关的处理,而无须将所有处理过程都重新运行,大大减低重复运行的代价。
3.3备份、恢复与版本控制ETL系统的备份包括两个部分,即ETL运行环境备份及数据库的备份。
运行备份是指为保证如果运行的ETL系统崩溃时可以通过备份的ETL系统继续完成ETL的工作,为达到这个目的,应安装两台ETL环境,并建立相同的配置,其中一台处于运行状态,而另一台为待机状态。
每日在日常ETL完成后对运行环境的各文件进行备份,即将ETL的运行目录转储到外挂磁盘或外部存储介质。
而数据库的数据备份对于ETL非常重要,建议系统管理员每日做数据的完全备份,每天保留一个备份文件,建议至少保留7天。
ETL系统的恢复相应也包括两个部分,即运行恢复及数据恢复运行恢复是指当运行系统遇到严重故障如硬件故障、操作系统崩溃等无法及时修复时,启用备份的运行系统继续,通过将上一日备份的ETL环境恢复到待机系统,然后启动待机系统运行日常ETL。
数据库恢复通常两种情况下会用到,一种是数据库系统本身出了故障需要重新安装,这时需要将上一日备份的数据恢复到新的数据库环境中。
还有一种是数据加载过程中发现几天以前加载了某些有问题的数据,需要从之前某一天开始重新加载修正后的数据,这时需要将指定日的备份重新恢复到数据仓库中,然后顺序运行每日的日常ETL。
另外,开发过程中需要对所有ETL程序及文档进行相应的版本控制,跟踪开发过程中的修改,以保证开发版本的一致性及保持开发的连续性。