最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

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

来源:动视网 责编:小OO 时间:2025-10-02 00:58:24
文档

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

ETL技术规第1章.ETL设计规ETL设计规主要应用于ETL编码的前期工作。由于ETL全过程是面向数据的,主要工作为数据的抽取(Extract)、转换(Transform)、装载(Loading),正确界定所涉及到的数据围和应当应用的转换逻辑对于后续的编码工作非常重要,这些数据关系的确定,我们称之为Mapping(数据映射)。正确定义数据映射关系是ETL成功实施的前提,一个完善的Mapping应该包含以下几个部分:1.1源数据集属性此部分应该详细描述数据源的相关属性,包括:实体名称——含数据来
推荐度:
导读ETL技术规第1章.ETL设计规ETL设计规主要应用于ETL编码的前期工作。由于ETL全过程是面向数据的,主要工作为数据的抽取(Extract)、转换(Transform)、装载(Loading),正确界定所涉及到的数据围和应当应用的转换逻辑对于后续的编码工作非常重要,这些数据关系的确定,我们称之为Mapping(数据映射)。正确定义数据映射关系是ETL成功实施的前提,一个完善的Mapping应该包含以下几个部分:1.1源数据集属性此部分应该详细描述数据源的相关属性,包括:实体名称——含数据来
ETL技术规

第1章.ETL设计规

ETL设计规主要应用于ETL编码的前期工作。由于ETL全过程是面向数据的,主要工作为数据的抽取(Extract)、转换(Transform)、装载(Loading),正确界定所涉及到的数据围和应当应用的转换逻辑对于后续的编码工作非常重要,这些数据关系的确定,我们称之为Mapping(数据映射)。

正确定义数据映射关系是ETL成功实施的前提,一个完善的Mapping应该包含以下几个部分:

1.1源数据集属性

此部分应该详细描述数据源的相关属性,包括:

实体名称——含数据来源名称(DSN)、所有者等信息;

字段名称——英文名称;

字段简述——中文名称,如为参数信息应该有相关取值解释,如性别字段(1:男;2:女;0:不详)

类型——字段类型,含长度和精度信息;

非空属性——字段是否可以为空;

1.2目标数据集属性

此部分应该详细描述目标数据集的相关属性,包括:

实体名称——含数据来源名称(DSN)、所有者等信息;

字段名称——英文名称,建议根据字段含义来命名,而不是简单用拼音来定义字段(此部分由负责设计数据集的人员控制);

字段简述——中文名称,对于保留字段应该给出默认值;

类型——字段类型,含长度和精度信息;

非空属性——字段是否可以为空;

1.3ETL规则

主要描述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程序及文档进行相应的版本控制,跟踪开发过程中的修改,以保证开发版本的一致性及保持开发的连续性。

文档

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

ETL技术规第1章.ETL设计规ETL设计规主要应用于ETL编码的前期工作。由于ETL全过程是面向数据的,主要工作为数据的抽取(Extract)、转换(Transform)、装载(Loading),正确界定所涉及到的数据围和应当应用的转换逻辑对于后续的编码工作非常重要,这些数据关系的确定,我们称之为Mapping(数据映射)。正确定义数据映射关系是ETL成功实施的前提,一个完善的Mapping应该包含以下几个部分:1.1源数据集属性此部分应该详细描述数据源的相关属性,包括:实体名称——含数据来
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top