ETL技术规范(通用)
- 格式:doc
- 大小:101.00 KB
- 文档页数:8
etl认证的标准ETL(Extract-Transform-Load)认证是指通过一系列的数据抽取、转换和加载操作,将数据从来源系统导入到目标系统的过程,以保证数据在整个传输过程中的准确性和完整性。
在进行ETL认证时,需要遵循一定的标准和规范,以确保数据的安全性和可靠性。
本文将介绍ETL认证的标准,并对其进行详细论述。
一、数据源选择在进行ETL认证时,首先需要选择合适的数据源。
数据源应具备以下特点:1. 数据质量高:数据源应来自可信赖的、经过验证的数据提供方,确保数据的准确性和完整性。
2. 数据结构清晰:数据源应具备良好的数据结构,包括字段名、数据类型、长度等信息,以便进行数据处理和转换操作。
3. 数据安全性:数据源应采取合适的安全措施,保护数据的隐私和机密性,防止数据泄露和未授权访问。
二、数据抽取数据抽取是指从数据源中提取数据的过程。
在进行数据抽取时,需要遵循以下标准:1. 抽取方式:可以采用全量抽取或增量抽取的方式,根据需求选择适合的抽取方式。
2. 抽取频率:根据数据更新的频率和实时性需求,确定合理的抽取频率,确保数据的及时性。
3. 抽取变更控制:在抽取过程中,需要对数据变更进行控制,确保只抽取新增、修改或删除的数据,避免重复或遗漏。
三、数据转换数据转换是指对抽取的数据进行清洗、整合和重构的过程。
在进行数据转换时,应遵循以下标准:1. 数据清洗:清除数据中的噪声、错误和冗余信息,保证数据的准确性和一致性。
2. 数据格式转换:将数据转换为目标系统所需的格式,包括数据类型转换、单位转换、日期格式转换等。
3. 数据合并:将来自不同数据源的数据进行合并,消除重复数据,并保持数据的一致性。
四、数据加载数据加载是指将经过转换的数据加载到目标系统的过程。
在进行数据加载时,需要遵循以下标准:1. 目标系统验证:确保目标系统具备接收和存储数据的能力,验证目标系统的稳定性和可用性。
2. 加载方式:可以采用全量加载或增量加载的方式,根据目标系统的要求进行选择。
数据抽取软件(ETL)通用技术规范数据抽取软件(ETL)采购标准技术规范使用说明1.本标准技术规范分为通用部分、专用部分,适用于国家电网公司数据抽取软件(ETL)通用物资集中采购。
2.通用部分包括一般性技术条款,原则上不需要项目招标人(项目单位)填写,不能随意更改。
如通用部分相关条款确实需要改动,项目单位应填写《通用部分技术条款\技术参数变更表》并加盖该网、省公司物资采购管理部门的公章,及辅助说明文件随招标计划一起提交至招标文件审查会。
经标书审查同意后,对通用部分的修改形成《技术通用部分条款变更表》,放入专用部分中,随招标文件同时发出并视为有效。
3. 本标准规范的专用部分主要包含货物需求及供货范围一览表、必备的备品备件、专用工具和仪器仪表供货表、工程概况、使用条件、技术参数要求等内容,项目单位和设计单位在招标前应结合技术发展并根据实际需求认真填写。
4. 本标准规范的投标人应答部分主要包括技术参数应答表、技术偏差表、产品部件列表、投标产品的销售及运行业绩表、培训及到货需求一览表等内容,由投标人填写。
5. 本标准规范的页面、标题等均为统一格式,不得随意更改。
6. 本规范将根据技术发展和市场变化定期或不定期做出修编,各使用单位注意查询最新版本,以免物资采购出现差错。
目录1 总则 (4)1.1 一般规定 (4)1.2 投标人应提供的资质及相关证明文件 (4)1.3 投标人响应要求 (5)1.4 供货与进度 (5)1.5 到货、安装、调试、验收 (5)1.6 文档交付 (6)2 需求说明 (6)2.1 软件一般性需求 (6)2.2 其他需求 (7)3 技术支持、售后服务 (7)3.1 技术支持 (7)3.2 售后服务 (7)4 培训 (8)4.1 培训总则 (8)4.2 培训要求 (8)4.3 培训费用 (8)1 总则1.1 一般规定1.1.1 投标人应具备招标公告所要求的资质,具体资质要求详见招标文件的商务部分。
etl认证电气标准摘要:1.ETL 认证的概述2.电气标准的重要性3.ETL 认证的电气标准分类4.我国电气标准的现状及挑战5.如何应对挑战,提高电气标准的质量正文:ETL 认证是美国电子测试实验室(ETL) 的认证标志,它代表产品符合北美地区的安全标准。
ETL 认证的电气标准在北美地区具有很高的权威性和公信力,因此被广泛应用于家用电器、工业设备、医疗器械等众多领域。
电气标准对于保障人身安全和电气设备的正常运行具有重要意义。
电气标准规范了电气设备的设计、制造、测试和使用过程,确保电气设备在正常使用和突发情况下都能保持安全可靠。
此外,电气标准还有助于提高电气设备的性能和效率,降低能源消耗和环境污染。
ETL 认证的电气标准分为以下几类:- 通用电气安全标准:包括对电气设备的基本性能、结构、材料、工艺等方面的要求,以确保设备在正常使用和突发情况下都能保持安全可靠。
- 特定领域电气标准:针对特定领域和应用的电气设备制定,如家用电器、工业设备、医疗器械等。
- 产品认证标准:针对特定产品类型和领域的电气设备制定,如电视机、洗衣机、空调等。
我国电气标准体系在不断完善和发展,已经基本覆盖了各个领域和层次。
但仍面临一些挑战,如部分电气标准与国际先进水平相比还存在一定差距,电气标准的制定和更新速度有待提高等。
为了应对这些挑战,提高电气标准的质量,可以从以下几个方面着手:1.加强国际合作,积极参与国际标准的制定,借鉴和引进国际先进电气标准,提高我国电气标准的国际化水平。
2.加大对电气标准制定和修订的投入,提高电气标准的制定和更新速度,以适应电气技术快速发展的需求。
3.加强电气标准的宣传和培训,提高电气标准在设计、制造、检测和使用等环节的认知度和执行力。
4.完善电气标准体系的顶层设计,优化电气标准结构,提高电气标准的科学性、系统性和实用性。
总之,ETL 认证的电气标准对于保障电气设备的安全可靠具有重要意义。
Informatica PowerCenter平台ETL开发规范January 12, 2010广州安正软件科技有限公司BusinessMatrix Information System Corporation.文档历史记录变更历史审阅分发文档目录1.文档介绍 (5)1.1文档目的 (5)1.2适用范围 (5)1.3文档读者 (5)1.4参考文献 (5)1.5术语与缩写解释 (5)2.POWERCENTER平台介绍 (6)3.环境介绍 (7)3.1概述 (7)3.2开发环境 (7)3.3测试环境 (7)3.4生产环境 (7)3.5数据库账号 (7)3.6数据连接 (8)3.7参数文件 (8)4.通用规范 (14)4.1I NFORMATICA文件夹配置 (14)4.2操作系统文件夹配置 (14)4.3S ESSION配置项 (15)4.4I NFORMATICA用户配置 (15)4.5ETL转换规则说明 (15)4.6从平面文件导入数据 (15)4.7从数据库导入数据 (16)4.8从数据库导入数据结构 (16)4.9注释 (16)4.10日志文件 (16)4.11出错处理与通知 (17)5.命名规范 (18)5.1概述 (18)5.2F OLDER (18)5.3M APPING (18)5.4S ESSION (19)5.5W ORKFLOW (19)5.6S OURCE D EFINITION (19)5.7T ARGET D EFINITION (20)5.8A GGREGATOR (20)5.9E XPRESSION (21)5.10F ILTER (21)5.11J OINER (21)5.12L OOKUP (21)5.13N ORMALIZER (22)5.14R ANK (22)5.15R OUTER (22)5.16S EQUENCE G ENERATOR (22)5.17S ORTER (23)5.18S OURCE Q UALIFIER (23)5.19S TORED P ROCEDURE (23)5.20U PDATE S TRATEGY (23)5.21M APPLET (24)5.22I NPUT T RANFORMATION (M APPLET O NLY) (24)5.23O UTPUT T RANFORMATION (M APPLET O NLY) (25)5.24D ATABASE C ONNECTIONS (25)5.25FTP C ONNECTIONS (25)6.常用SQL知识介绍 (25)6.1NOT IN与MINUS (25)6.2多表连接中的条件限制(WHERE AND ON) (25)6.3游标尽量少使用 (27)6.4异常捕捉 (27)7.SQL编写规范 (27)7.1原则定义 (27)7.2大小写规则 (28)7.3缩进与换行 (28)7.4别名 (29)7.5运算符前后间隔要求 (29)7.6变量引用 (30)7.7注释 (30)7.8其它 (31)8.脚本编写规范 (31)8.1U LTRA E DIT (31)8.2SHELL (32)9.ETL开发流程 (32)9.1ETL开发流程 (32)9.2文档编写要求 (32)10.版本控制 (33)11.ETL程序迁移 (34)12.环境准备过程 (34)12.1创建用户 (34)12.2开发环境准备 (34)12.3测试环境准备 (35)12.4生产环境资准备 (35)13.性能调优 (35)13.1I NFORMATICA性能调优步骤 (35)13.2聚合 (35)13.3其他 (36)1. 文档介绍1.1 文档目的本文档主要描述了ETL开发人员在Informatica PowerCenter平台开发Mapping、Session和Workflow需要遵循的统一标准,使得不同项目不同开发人员在Informatica PowerCenter平台交付的ETL程序符合同一标准。
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的作业名称,包括该作业功能描述;调度顺序一一用序号或者是流程图模式描述作业的调度顺序,需要综合考虑业务逻辑、编码逻辑以及系统资源等多方面情况,在保证业务逻辑和编码逻辑的基础上,通过控制调度,最大限度地合理利用系统资源;参数列表——列举每个作业中所使用的参数,不同作业中的相同参数最好使用相同的名称,便于调度时进行控制。
ETL技术规范(通用)ETL技术规范第1章.ETL设计规范ETL设计规范主要应用于ETL编码的前期工作。
由于ETL全过程是面向数据的,主要工作为数据的抽取(Extract)、转换(Transform)、装载(Loading),正确界定所涉及到的数据范围和应当应用的转换逻辑对于后续的编码工作非常重要,这些数据关系的确定,我们称之为Mapping(数据映射)。
正确定义数据映射关系是ETL成功实施的前提,一个完善的Mapping应该包含以下几个部分:1.1源数据集属性此部分应该详细描述数据源的相关属性,包括:实体名称——含数据来源名称(DSN)、所有者等信息;字段名称——英文名称;字段简述——中文名称,如为参数信息应该有相关取值解释,如性别字段(1:男;2:女;0:不详)类型——字段类型,含长度和精度信息;非空属性——字段是否可以为空;1.2目标数据集属性此部分应该详细描述目标数据集的相关属性,包括:实体名称——含数据来源名称(DSN)、所有者等信息;字段名称——英文名称,建议根据字段含义来命名,而不是简单用拼音来定义字段(此部分由负责设计数据集的人员控制);字段简述——中文名称,对于保留字段应该给出默认值;类型——字段类型,含长度和精度信息;非空属性——字段是否可以为空;1.3E TL规则主要描述ETL各个环节的转换规则,包括:数据源过滤规则——描述从源数据集获取数据过程中过滤掉记录的规则;关联规则——当源数据集为多个时,描述相互之间的关联关系;列转换规则——描述源数据集到目标数据集的字段间的转换规则;此规则非常重要,要清晰描述字段间的逻辑关系,包括业务逻辑;目标数据集更新规则——描述目标数据集的更新策略,包括更新机制和更新频度,如“每日全量更新”、“每周增量更新”等;ETL作业列表——由于ETL所开发的作业之间包含一定的业务逻辑和编码逻辑,所以调度过程中应遵循一定的逻辑顺序,此部分主要用来明确调度的顺序,包括:作业名称——实现Mapping的作业名称,包括该作业功能描述;调度顺序——用序号或者是流程图模式描述作业的调度顺序,需要综合考虑业务逻辑、编码逻辑以及系统资源等多方面情况,在保证业务逻辑和编码逻辑的基础上,通过控制调度,最大限度地合理利用系统资源;参数列表——列举每个作业中所使用的参数,不同作业中的相同参数最好使用相同的名称,便于调度时进行控制。
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开发规范2009年2月[键入文字]文档控制目录1前言 (2)1.1读者对象 (2)1.2编写目的 (2)2ETL简介 (2)3开发ETL需要的背景知识 (3)4常用SQL知识介绍 (3)4.1NOT IN与MINUS (3)4.2多表连接中的条件限制(WHERE AND ON) (3)4.3游标尽量少使用 (5)4.4异常捕捉 (5)5SQL编写规范 (6)5.1原则定义 (6)5.2大小写规则 (6)5.3缩进与换行 (6)5.4别名 (7)5.5运算符前后间隔要求 (8)5.6变量引用 (8)5.7注释 (8)5.8其它 (9)6脚本编写规范 (9)6.1UltraEdit (9)6.2PERL (10)6.3SHELL (10)7ETL开发流程 (10)7.1ETL开发流程 (10)7.2文档编写要求 (11)1前言1.1 读者对象1、所有的ETL开发人员2、需要了解ETL开发过程的相关人员3、数据仓库应用开发人员(开发中需要写SQL)1.2 编写目的随着软件项目规模的日益扩大,随之而来的项目团队也不断增加,这给项目代码组装和后期维护带来很大的挑战。
为便于项目的代码组装以及降低项目的后期维护成本,本文总结了ETL开发过程中各种共性的东西,包括需要优先准备的一些背景知识、SQL编写要求、脚本编写要求、开发流程、容易出现问题的地方等,提供给所有参与ETL开发的同事使用。
2ETL简介ETL是指数据的抽取(Extract),转换(Transform)和加载(Loading),是数据仓库系统实施的一个非常重要的环节,在项目实施的第一阶段中是项目实施的工作重点,建立一套完整、正确、高效的数据抽取、转换和加载机制,是数据仓库的基础性目标。
在ETL的设计中,ETL的模式可以是ETL,ELT,ETLT,现在比较基本的是ETLT。
✓ETL是指先从源系统中将数据抽取出来,然后通过使用高级语言编写的应用程序进行文件级的转换(一般是指码制、格式等转换,不需要使用数据库的表关联方式),然后进行加载。
etl开发流程和规范ETL(Extract, Transform, Load)是一种常见的数据处理方式,用于将数据从原始数据源提取、转换和加载到目标数据仓库或目标系统中。
下面是一般的ETL开发流程和规范:1. 需求分析阶段:- 确定数据源:确定原始数据的来源和格式,包括数据库、文件、API等。
- 确定需求:明确提取、转换和加载的具体需求,包括数据清洗、数据转换和数据加载的步骤。
2. 数据提取阶段:- 选择合适的提取工具:例如使用SQL语句、使用ETL工具(如Informatica、SSIS等)或使用编程语言(如Python、Java等)来提取数据。
- 提取数据:根据需求从数据源中提取数据,并进行必要的数据过滤和排序。
3. 数据转换阶段:- 数据清洗和预处理:清洗和处理数据中的异常值、缺失值、重复值等。
- 数据转换:将数据进行必要的转换和映射,包括数据类型转换、数据格式转换和数据字段补充等。
- 属性计算和聚合:根据需求进行属性计算和数据聚合,生成目标数据。
4. 数据加载阶段:- 目标表设计和创建:根据需求设计目标表结构,并在数据库中创建目标表。
- 数据加载:将转换后的数据加载到目标表中,可以使用插入语句、更新语句或者使用ETL工具来加载数据。
5. 数据验证和测试阶段:- 运行数据验证脚本:编写数据验证脚本,检查目标表中的数据是否符合预期。
- 进行测试:对ETL流程进行测试,包括单元测试、集成测试和性能测试等。
6. 调度和监控阶段:- 调度ETL作业:使用调度工具(如Control-M、rflow 等)配置ETL作业的调度时间和频率。
- 监控ETL作业:监控ETL作业的运行情况,包括运行状态、运行时间和错误日志等。
7. 文档和维护阶段:- 编写文档:记录ETL开发的流程、规范和配置信息,并编写相关的用户手册。
- 维护ETL作业:定期检查和维护ETL作业,包括数据字典的更新、作业调度的调整和性能的优化等。
ETL技术规范第1章.ETL设计规范ETL设计规范主要应用于ETL编码的前期工作。
由于ETL全过程是面向数据的,主要工作为数据的抽取(Extract)、转换(Transform)、装载(Loading),正确界定所涉及到的数据范围和应当应用的转换逻辑对于后续的编码工作非常重要,这些数据关系的确定,我们称之为Mapping(数据映射)。
正确定义数据映射关系是ETL成功实施的前提,一个完善的Mapping应该包含以下几个部分:1.1源数据集属性此部分应该详细描述数据源的相关属性,包括:实体名称——含数据来源名称(DSN)、所有者等信息;字段名称——英文名称;字段简述——中文名称,如为参数信息应该有相关取值解释,如性别字段(1:男;2:女;0:不详)类型——字段类型,含长度和精度信息;非空属性——字段是否可以为空;1.2目标数据集属性此部分应该详细描述目标数据集的相关属性,包括:实体名称——含数据来源名称(DSN)、所有者等信息;字段名称——英文名称,建议根据字段含义来命名,而不是简单用拼音来定义字段(此部分由负责设计数据集的人员控制);字段简述——中文名称,对于保留字段应该给出默认值;类型——字段类型,含长度和精度信息;非空属性——字段是否可以为空;1.3E TL规则主要描述ETL各个环节的转换规则,包括:数据源过滤规则——描述从源数据集获取数据过程中过滤掉记录的规则;关联规则——当源数据集为多个时,描述相互之间的关联关系;列转换规则——描述源数据集到目标数据集的字段间的转换规则;此规则非常重要,要清晰描述字段间的逻辑关系,包括业务逻辑;目标数据集更新规则——描述目标数据集的更新策略,包括更新机制和更新频度,如“每日全量更新”、“每周增量更新”等;ETL作业列表——由于ETL所开发的作业之间包含一定的业务逻辑和编码逻辑,所以调度过程中应遵循一定的逻辑顺序,此部分主要用来明确调度的顺序,包括:作业名称——实现Mapping的作业名称,包括该作业功能描述;调度顺序——用序号或者是流程图模式描述作业的调度顺序,需要综合考虑业务逻辑、编码逻辑以及系统资源等多方面情况,在保证业务逻辑和编码逻辑的基础上,通过控制调度,最大限度地合理利用系统资源;参数列表——列举每个作业中所使用的参数,不同作业中的相同参数最好使用相同的名称,便于调度时进行控制。
第2章.ETL开发规范ETL项目的开发往往是多人团队开发模式,由于周期较长,期间难免会出现开发人员交替现象。
无论是开发过程中的人员交替还是从开发到系统运营之间的转换,都需要良好的交接。
为保证项目开发各个时期的平稳过度及顺利交接,在开发过程中,应该遵循一定的开发规范。
主要包括:✧命名规范✧结构规范✧代码封装规范2.1命名规范2.1.1作业命名规范ETL是一个复杂的工作,数据仓库的建设一般会花费70%以上的工作量在ETL上面,而且这是一个细致活,任何一点小的错误都有可能造成后续工作的出错和失败;此外,数据仓库需要不断的更新维护,相应的ETL程序也需要进行相关的更新维护,所花费的成本也很大。
一个好的命名规范,能够使ETL的程序更清晰易懂,很好地避免了开发过程中出错;同时更好的可读性,也极大地减低了ETL程序的更新维护成本。
作业命名规则:[JOBTYPE][DESCRIPTION][SEQNUM]JOBTYPE:作业类型DESCRIPTION:有效的描述信息SEQNUM:作业的编号。
由于一定的原因,有可能需要拆分作业数据多次加载数据,这个编号就可以区分加载。
如果一次加载可以成功的话这个编号就不需要了。
2.1.2作业内部命名规范对于作业内部命名,应该遵循代码的可读性与可传递性原则,命名规则:[Function][Description]Function:表示用途,Ex:抽取,Create:创建,Ld:装载,Lookup:查找等Description:有意义的描述,比如数据库表名,文件名等。
2.1.3作业注释规范ETL开发过程往往要经历一个较长时间段,为了便于团队开发和后期维护,除开发设计文档要齐全外,还应该在作业设计界面中适当加注释信息,主要包括作业功能说明、所属模块、开发时间、开发人员等信息。
2.2结构规范2.2.1作业目录组织结构对于ETL PROJECT而言,我们需要划分清晰的目录结构,根据一定的规则将作业组织起来,这样无论是对ETL设计人员,运行人员,维护人员,都有很大的帮助。
目录结构划分遵循以下原则:1.体现作业的依赖关系。
2.体现作业功能。
3.独立放置二次开发作业。
2.2.2模块化结构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提供日志监测和报告功能。
报告分汇总报告和详细报告。
汇总报告报告内容:作业总数,WARNING作业数,成功作业数,失败作业数,开始时间,结束时间等详细报告报告内容:作业名称,开始时间,结束时间,运行状态等3.1.2作业状态排查在ETL管理控制台上,可点击进入查看作业更为详细的状态及出错信息,以便于维护更正。
3.2出错处理即使是经过严格测试的程序,在实际运行中仍然会因为种种原因而导致出错,根据ETL的处理逻辑,我们将错误分为以下三类:抽取错误:简称E(Extract)类错误转换错误:简称T(Transformer)类错误装载错误:简称L(Loading)类错误3.2.1E类错误这类错误发生在数据抽取阶段。
诸如数据库连接故障、网络资源不足等原因都可以导致此类故障。
由于此类错误发生时,数据还处于原始状态,未发生转换,对目标数据集也未产生任何影响,理论上可以看做是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程序及文档进行相应的版本控制,跟踪开发过程中的修改,以保证开发版本的一致性及保持开发的连续性。