《ETL技术规范通用.docx》由会员分享,可在线阅读,更多相关《ETL技术规范通用.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ETL技术标准第1章.ETL设计标准ETL设计标准主要应用于ETL编码的前期工作,由于ETL全过程是面向数据的,主要工作为数据的抽取fExtract) 转换(Transform)、装载(Loading),正确界定 所涉及到的数据范围和应当应用的转换逻辑对于后续的编码工作非常重要,这些数据关系确实 定,我们称之为Mapping (数据映射).正确定义数据映射关系是ETL成功实施的前提,一个完善的Mapping应该包 含以下几个 局部:1.1 源数据集属性此局部应该详细描述数据源的相关属性,包括:实体名称一一含数据来源名称DSN、所有者等信息;字段名称一一英文名称;字段简述一一中文名称,如为参数信
2、息应该有相关取值解释,如性别字段U:男;2: 女;0:不详)类型一一字段类型,含长度和精度信息;非空属性一一字段是否可以为空;数据源表表名字段说明字段名称字段类奎ICInventory物料ID 14r z-tFItemEDinteger1问j批号FBatchNovarchar(255)仓库标识FStocklDinteger存货数量FQtydecimal(2&10)存货余额FBaldecimal (28,10)仓位标识FStockPlacelDinteger保质期FKFPeriadinteger生产日期FKFDatebinary1.2 目标数据集属性此局部应该详细描述目标数据集的相关属性,包括:
3、实体名称一一含数据来源名称DSN)、所有者等信息;字段名称英文名称,建议根据字段含义来命名,而不是简单用拼音来定义字段(此局部由负责设计数据集的人员限制);字段简述中文名称,对于保存字段应该给出默认值;类型一一字段类型,含长度和精度信息;非空属性一一字段是否可以为空;序号宇段含臭宇国名暮字段关塑主曾取值说明1数据IDFInterlDintegerTRUE数据库中已经定 义了标识字段.不 重重小信2数据来源dmtasourcetinyint根据数据源来对 应相应的值,见说 明一3物料IDFltemlDinteger直接COPY4卅FBatchNovarchar ( 255)直接COPY5仓库标识
4、FStockIDintegerMffiCOPY6存货数量FQtydecimal(2&10)直接COPY7存货余额FBaldecimal(2610)直接COPY8仓位标识FStockPlacelDinteger直 C0PY9保质期FKFPeriodinteger直接COPY10生产日期FKFDatedatetime1. 3 ETL规那么主要描述ETL各个环节的转换规那么,包括:数据源过滤规那么一一描述从源数据集获取数据过程中过滤掉记录的规那么;关联规那么一一当源数据集为多个时,描述相互之间的关联关系;列转换规那么一一描述源数据集到目标数据集的字段间的转换规那么;此规那么非 常重 耍,要清楚描述字
5、段间的逻辑关系,包括业务逻辑;目标数据集更新规那么一一描述目标数据集的更新策略,包括更新机制和更新频度,如 “每日全量更新、“每周增量更新等;ETL作业列表一一由于ETL所开发的作业之间包含一定的业务逻辑和编码逻辑,所以调 度 过程中应遵循一定的逻辑顺序,此局部主要用来明确调度的顺序,包括:作业名称实现Mapping的作业名称,包括该作业功能描述;调度顺序一一用序号或者是流程图模式描述作业的调度顺序,需要综合考虑业务逻辑、编码逻辑以及系统资源等多方面情况,在保证业务逻辑和编码逻辑的根底上,通过限制调度, 最大限度地合理利用系统资源;SteplStep 2Step 3Step 4Step 6St
6、ep 6CCYCLCL. SCMC肛MSR PRD1PDPD HISTIPIP HISTOUOU-HI STPD HLPROU X OUOU X LPARAR HISTAR X IPTXN/TXN EVAK TXN SKYAR_BAL_ODD/AR SAL EVNC 肛 _TKN_SMYAR SMYAR PFTJiHLCST PFT ANL参数列表一一列举每个作业中所使用的参数,不同作业中的相同参数最好使用相同的名 称,便于调度时进行限制.第2章.ETL开发标准此工程的开发往往是多人团队开发模式,由于周期较长,期间难免会出现开发人员交替现 象无论是开发过程中的人员交替还是从开发到系统运营之间的
7、转换,都需要良好的交接.为保 证工程开发各个时期的平稳过度及顺利交接,在开发过程中,应该遵循一定的开发标准.主要包括:命名标准结构标准 代码封装标准2.1 命名标准作业命名标准ETL是一个复杂的工作,数据仓库的建设一般会花费70%以上的工作量在也上面,而且这是一个细致活,任何一点小的错误都有可能造成后续工作的出错和失败;此外, 数据仓库需要不断的更新维护,相应的ETL程序也需要进行相关的更新维护,所花费的本钱也很大.一个好的命名标准,能够使ETL的程序更清楚易懂,很好地防止了开发过程中出错;同时 更好的可读性,也极大地减低了 ETL程序的更新维护本钱.作业命名规那么:JOBTYPEDESCRI
8、PTIONSEQNUMJOBTYP:作业类型DESCRIPTION N有效的描述信息SEQNUM作业的编号,由于一定的原因,有可能需要拆分作业数据屡次加 载数据,这个 编号 就可以区分加载.如果一次加载可以成功的话这个编号就不需要了.2.1.1 作业内部命名标准对于作业内部命名,应该遵循代码的可读性与可传递性原那么,命名规那么: Function DescriptionFunction:表示用途,Ex 抽取,Create 创立,Ld 装载,Lookup:查找等 Descriptio n: 有意义的描述,比方数据库表名,文件名等.2.1.2 作业注释标准ETL开发过程往往要经历一个较长时间段,为
9、了便于团队开发和后期维护,除开发设计文档 耍齐全外,还应该在作业设计界面中适当加注释信息、,主要包括作业功能说明、所属模块、开发 时间、开发人员等信息.2.2 结构标准作业目录组织结构对于ETLPROJE (而言,我们需要划分清楚的目录结构,根据一定的规那么将作业组织起来, 这样无论是对ETL设计人员,运行人员,维护人员,都有很大的帮助.目录结构划分遵循以下原那么:1 .表达作业的依赖关系.2 .表达作业功能.3 .独立放置二次开发作业.2.2.1 模块化结构ETL根据处理逻辑分为E阶段(Extract)、T阶段(Transformer)和L阶段(Loading). E T、L阶段可能分处不同
10、的效劳器上,需要跨网络运行,他们之间的配置情况可能存在较大的差异, 而多数ETL设计的处理机制是串行运行机制,基于数据行处理.如果E、T、L的过程同时运行,那么整体的处理水平应该是三个环节 中效 率最低的那个环节的处理水平.如果我们将三个环节的设计分开,实行模块化流程处理,即E环节、T环节、L环节均 设计 成可独立运行的模块,那么在整个处理过程中,将可以最大限度发挥成效,不会由于串 性处理机 制而相互制约.另外,模块化的流程设计,对于开发阶段的调试以及维护阶段的出错处理都提供了良 好的 辅助作用.第3章.ETL维护标准日志检查3.1.1 日志文件报告ETL提供日志监测和报告功能.报告分汇总报告
11、和详细报告.汇总报告报告内容:作业总数,WARNING作业数,成功作业数,失败作业数,开始时 间,结束 时间等详细报告报告内容:作业名称,开始时间,结束时间,运行状态等作业状态排查在ETL治理限制台上,可点击进入查看作业更为详细的状态及出错信息,以便于维护更正.3.2 出错处理即使是经过严格测试的程序,在实际运行中仍然会由于种种原因而导致出错,根据ETL的处理逻辑,我们将错误分为以下三类:抽取错误:简称E (Extract)类错误转换错误:简称T( Transformer)类错误装载错误:简称L( Loading)类错误321 E类错误这类错误发生在数据抽取阶段.诸如数据库连接故障、网络资源缺
12、乏等原因都可以导致此 类故障.由于此类错误发生时,数据还处于原始状态,未发生转换,对目标数据集 也未产生任何影 响,理论上可以看做是ETL处理未开始,因此处理 此类错误相对简单,只 需要排除故障原因后重 新运行ETL处理即可.3.2.1 T类错误这类错误发生在数据转换阶段.引发原因较多,既有环境资源故障的可能,也有设计逻 辑缺 陷的可能.此类错误发生在ETL的中间阶段,应根据实际故障原因进行处理.对于环境资源故障所引发的错误,只需要排除故障原因,重新运行ETL的TfTransformer)阶段和 L Loading)阶段即可.对于设计逻辑缺陷所引发的错误,处理相对复杂一一首先要定位错误并修正程
13、序,同时要 明确该错误是否涉及到数据源的抽取逻辑,如果未涉及到,那么在修正逻辑后重新运行T Transformer阶段和L ( Loading)阶段程序即可;假设逻辑 错误与数据源相关,那么需 要重新运行包括E (Extract)阶段在内的整个ETL处理.3.2.2 L类错误这类错误发生在数据装载阶段,除环境资源故障原因外,最大可能性是需要装载到目标集 的数据违反了目标数据集数据约束,如主键重复、非空字段出现空值、数据超长、类型不匹配等 等.因环境资源故障网络故障等等)所引发的出错,处理简单,只需排除故障,将目 标数据集 恢复到装载前状态,重新运行L阶段的处理即可.对于非环境资源所引发的问题,
14、处理与T类错误类似:先定位原因,根据以往的经验,问题 多数发生在T阶段,可能存在设计缺陷或者运行逻辑缺陷,需要 对T局部的处理进行 修正,并将 目标数据集恢复到装载前状态,重新运行T阶段和L阶段的处理.在上一章“设计标准里,我们强调了模块化的流程设计,将E阶段、T阶段、L阶段 按流 程分模块化设计,其实不仅仅是为了解决系统资源瓶颈问题,同时也是为了方便出错时 进行处理. 在发生T类和L类错误时,由于各处理阶段设计相对独立,对于不同阶段的问 题,只需要单独运 行与该阶段相关的处理,而无须将所有处理过程都重新运行,大大减低 重复运行的代价.3.3 备份、恢复与版本限制ETL系统的备份包括两个局部,
15、即ETL运行环境备份及数据库的备份.运行备份是指为保证如果运行的ETL系统崩溃时可以通过备份的ETL系统继续完成底的 工作,为到达这个目的,应安装两台ETL环境,并建立相同的配置,其中一台处于运行状 态,而另 一台为待机状态.每日在日常ETL完成后对运行环境的各文件进行备份,即将ETL的运行目录转 储到外挂磁盘或外部存储介质.而数据库的数据备份对于也非常重要,建议系统治理员每日做数据的完全备份,每天保 存一个备份文件,建议至少保存7天.ETL系统的恢复相应也包括两个局部,即运行恢复及数据恢复运行恢复是指当运行系统遇 到严重故障如硬件故障、操作系统崩溃等无法及时修复时,启用备份的运行系统继续,通过将上 一日备份的ETL环境恢复到待机 系统,然后启动待机系统运行日常ETL.数据库恢复通常两种情况下会用到,一种是数据库系统本身出了故障需要重新安装,这时 需要将上一日备份的数据恢复到新的数据库环境中.还有一种是数据加载过程中发现 几天以前 加载了某些有问题的数据,需要从之前某一天开始重新加载修正后的数据,这时 需要将指定日的 备份重新恢复到数据仓库中,然后顺序运行每日的日常ETL.
限制150内