1、厦门大学软件学院毕业设计(论文)开题报告 学生姓名 班级 学号 校外指导教师姓名 职称 所在单位 北京福富软件技术股份有限公司福州分公司 校内指导教师姓名 职称 所在单位 厦门大学 毕业设计(论文)题 目 ETL 系统的仓库任务调度模块的实现 毕业设计(论文)的 目标: 一、 项目背景 1: “ 数据仓库 ” 一词最早是在 1900 年,由 Bill Inmon 先生提出的。其描述如下:“数据仓库是为支持企业决策而特别设计和建立的数据集合”。准确说来,数据仓库是一个环境,而不是一件 产品,提供用户用于决策支持的当前和历史数据,这些数据在传统的操作型数据库中很难或不能得到。数据仓库技术是为了有效
2、的把操作形数据集成到统一的环境中以提供决策型数据访问的各种技术和模块的总称。 打破数据来源的壁垒,对来源于全省多个业务系统的不同数据进行整合,建立一个 “ 大集中 ” 的数据仓库,构造真正意义上的 “ 客户统一视图 ” ,让领导和分析人员能切实掌握电信客户、用户的全面信息,为决策提供完备的依据。 具体目标:设计并实现一个 ETL 工具,完成数据的抽取、转换与装载,保证数据源源不断的从源系统进入数据仓库。( 1)可以进行 数据模型的任务配置( 2)数据转换规则能手动配置;( 3)实现数据抽取转换装载任务流程的自动调度;( 4)能监控任务执行情况;( 5)查询任务执行日志;( 6)查看数据之间的依
3、赖关系 ( 7)数据质量的管控 。 二、 项目概况 1 整个项目的系统架构如图 1 所示。可以从图中看出数据仓库系统将为中国电 信各个分公司进行各种分析与决策提供最基础的环境支持与数据支持。 图 1 系统部署图 1 为了能更好的服务于企业分析与决策,提供直观的数据展示,保证数据获取中的数据质量,以及方便整个系统的管理运行,系统功能组织考虑到 了整个方面,如图 2 所示。 图 2 系统功能组织图 1 整个数据仓库系统划分为 4 个平台,具体功能模块如图 3 所示,各个平台以及各个模块的内容如下: ( 1)应用管理平台: 主要用于对系统访问层面和操作层面进行管理,如对用户、权限的设置;个性化界面等
4、的定制;报表搜索、系统参数设置等功能;通过这些功能,使用者能更方便、有效的使用数据仓库系统。 ( 2)目标客户管理平台: 通过对重点数据 (如档案、月帐单、用户周话务汇总情况等数据 )的支撑,使用者可自行通过简单的条件设置来定义其关注的目标客 (用 )户,灵活的设置跟踪周期。 部分有明确条件设置的目标客户更可以通过平台提供的专题功能更快速、方便的取得分析结果 (如 VPN 专题 )。 ( 3) ETL 平台: 在自行开发的 ETL 平台上,使用者可以对逻辑模型进行物理设计,使用类标准 SQL 脚本实现数据的 ETL,并对操作日志、数据质量等进行管理;同时还支持对数据的导出功能(文本 /EXCE
5、L 等格式),以满足异构数据库系统的数据需求(如集团接口、查询结果导出等)。 ( 4)分析展示平台: 通过集成的展示平台,采用多维分析、图表结合、即席查询、 GIS 等多种展示方式,分析展示平台提供使用者一个简单、直观、有效的数 据分析界面,使用者可以根据权限方便的实现数据访问的穿透、钻取以及相关报表的访问。目前除数据挖掘尚在设计开发阶段外。 图 3 系统功能模块 1 三 、电信行业特点 1电信企业数据来源 :1)支撑系统,包括计费、营帐等; 2)网管系统; 3)企业办公( OA)系统; 4)其他系统。 2 2电信企业的源数据特点 :1)数据量特别大; 2)业务系统工作负荷重, 7 24 小时
6、的工作; 3)业务系统性能、实时性的要求较高。 2 实现方法: 一、基本环境 数据库管理系统: IBM DB2 开发平台: Windows, AIX 语言: DB2 存储过程, Shell 编程 项目管理: SVN, IBM ClearQuery 其它第三方软件: Quest Central for DB2 二 、 ETL 概念 2 3 1.数据抽取( Extract) 数据抽取是数据源接口,从业务系统中抽取数据,为数据仓库输入数据。典型的数据抽取接口包括数据库接口和文件接口,对于不同数据平台、不同源数据形式、不同性能要求和业务量的业务系统以及不同数据量的源数据,采取不同的数据抽取接口。数据的
7、抽取必须能够充分满足决策支持系统的需要,又要保证不影响业务系统的性能,所以, 进行数据抽取时应制定相应的策略,包括抽取方式、抽取时机、抽取周期等等。 数据抽取策略有: 1)同步实现抽取; 2)异步实现抽取。 2.数据清洗和转换( Transformation) 数据清洗和数据转换是指从业务系统中抽取的数据根据数据仓库系统模型的要求,进行数据的清洗、转换、拆分、汇总等处理,保证来自不同系统、不同格式的数据具有一致性和完整性,并按要求装入数据仓库。 数据转换工作进行的时机: 1)在抽取过程中进行数据处理; 2)使用异步数据加载,以文件的方式处理; 3)在数据加载过程中进行数据处理; 4)进入数据仓
8、库以 后再进行数据处理。 3.数据装载( Load) 数据装载就是从数据源系统中抽取、转换、清洗后得数据装载到数据仓库中。要求数据加载工具必须具有高效的加载性能。同时加载策略要考虑加载周期及数据追加策略的内容。 主要加载技术: 1)使用数据仓库引擎厂商提供的数据加载工具进行数据加载; 2)通过数据仓库引擎厂商提供的 API 编程进行数据的加载。 数据的追加策略类型:直接追加、全部覆盖、更新追加。 三、 ETL 总体设计 根据电信行业特点, 电信行业数据来源的多样性与地域性。 ETL 平台将设计成 如下 图 (图 4 所示 ) 的架构, 主要有前台系统与 后台系统构成。 后台系统负责任务的自动调
9、度,实现数据的抽取、转换、装载。前台提供用户界面,方便数据仓库开发人员使用。 图 4 ETL 架构图 整个 ETL 过程将实现数据如下图所示 (图 5) 的 流动过程。数据将从数据源开始生成接口文件,后通过 ETL 平台装载到数据仓库接口区域, 数据将在接口区域保存一定的时间,之后通过 ETL 配置数据转换、清洗的规则,实现数据从接口区到目标数据仓库的存储,同时亦可以实现数据到数据集市的流动。 图 5 ETL 总体设计数据流程图 四、系统功能模块 系统主要分为两大模块:一、前台展示模块;二、后台任务调度模块 一、前台展示模块中主要的功能模块有: 1. 实体配置:开发人员进行数据仓库开发,根据业
10、务逻辑在数据建模完成后,进行相关模型的物理模型设计,实体配置完成对模型的主体配置。是生成实体调度任务的主要依据。 2. 脚本配置:在实体配置完成之后,需要进行相关的脚本配置,完成具体的数据如何转换,如何清洗,如何装载的问题。 3. 依赖配置:依赖配置,是配置实体与实体之间的依赖关系,大体分为弱实体依赖与强实体依赖。是进行任务自动调度的重要 环节。 4. 时间调度配置:对于配置的实体无法满足必要的依赖配置,可以直接进行时间调度配置,亦可以到达自动调度的效果。 5. 任务查询:对配置好的实体,可以进行相关任务的查询,查询是否生成了当日的调度任务等。 业务系统 业务系统 业务系统 接口文件 数据库
11、( 接口区域 ) 错误数据记录 数据库 ( 仓库区域 ) 逻辑校验 数据库 ( 集市区域 ) 前 台 应 用 访 问 6. ETL 监控:实体调度过程是自动进行的。对于实体调度执行的情况可以通过该功能进行查询,该查询通过实体依赖关系,可以查看各个调度环节的情况。 7. 调度日志查询:实体调度过程中会记录相关的执行日志,该功能可以查询指定实体的执行日志。 8. 接口上传配置:该功能对接口文件上传进行了规则设置:如在某日期前接口文件必须上传服务器等。可以监控数据是否到达,以及查询为到达数据所产生的影响。 二、后台任务调度模块的重要功能模块有: 1. 接口文件处理:该功能模块对到达服务器的接口文件进
12、行扫描发现、剪切移动、导入、校验、备份删除等操作。 2. 接口实体调度模块:该功能模块负责把接口文件数据导入数据仓库的接口层区域,并对数据导入进行初步的校验。 3 ETL 过程维护:该功能模块负责生成接口文件调度任务,清除过期任务。 4. 仓库集市实体调度:该功能模块负 责生成仓库集市调度任务,根据依赖关系更新任务的资源可用性,执行任务,根据任务对应的脚本配置,解析执行脚本。 5其它功能模块 :若接口文件太 大而上传为压缩文件则负责接口文件的解压,以及定期的接口文件清理 等 。 五、 系统数据接口 1 目前系统数据接口主要采用 文本文件 方式,并在省中心的数据仓库系统上建立统一接口存储区提供给
13、各业务系统,由各业务系统按接口要求整理并通过FTP 方式上传数据。 对于需通过人工录入的数据,系统将提供相应的工具或接口,并支持通过Excel、 XML、 TXT 等格式 文档加载 的形式进行数据的批量录 入功能。 六、 平台 的任务自动调度 系统使用 Shell进行编程,实现平台在 AIX操作系统上定时自动调度任务。系统后台进程主要有接口文件扫描导入进程 、实体任务生成进程、实体任务调度进程等。通过使用 CRONTAB 命令并发执行这些进程。 CRONTAB 命令:提交、编辑、列出或除去 cron 作业。 这个 crontab 命令提交、编辑、列出或除去 cron 作业。一个 cron 作业
14、是一个命令,其运行是由 cron 守护进程在规则的调度间隔执行的。要提交一个 cron 作业,指定 crontab 命令用 -e 标志。 crontab 命令调用一个编辑会话,允许创建一个 crontab 文件。在这个文件中,为每个 cron 创建条目。每个条目必须是一种 cron 守护进程可接受的格式。 当创建完条目和退出文件后, crontab 命令将它拷贝到 /var/spool/cron/crontabs 目录,并把它放到一个文件中,此文件的名称是当前的用户名。如果以用户名命名的文件已存在于 crontabs 目录中, crontab 命令会覆盖它。 同样的,可以通过指定 文件 参数创
15、建 crontab 文件。如果此文件已经存在,格式必 须是 cron 守护进程所需要的。如果文件不存在, crontab 命令就调用编辑器。如果 EDITOR 环境变量存在,此命令就调用它指定的编辑器。否则, crontab 命令调用 vi 编辑器。 七、数据仓库元数据 元数据,其最基本的定义是“关于数据的数据”。但是整个及其抽象的定义对于元数据的理解往往是不够的。并且 它是一种广泛存在的现象,在许多领域有其具体的定义和应用。 对于在数据仓库中的应用,有这么一种定义:元数据是一种提取的形式,它是描述数据库的结构和内容 4。对于元数据的理解,在很多书中也进行 了比较深入的探讨,有题为“元数据与比
16、喻”的文章 5,就是从作者自己的角度与理解阐释了元数据的概念。 在数据仓库领域中,元数据被定义为:描述数据及其环境的数据。一般来说 ,它有两方面的用途。首先 ,元数据能提供基于用户的信息 ,如记录数据项的业务描述信息的元数据能帮助用户使用数据。其次 ,元数据能支持系统对数据的管理和维护 ,如关于数据项存储方法的元数据能支持系统以最有效的方式访问数据。具体来说 ,在数据仓库系统中 ,元数据机制主要支持以下五类系统管理功能 :( 1)描述哪些数据在数据仓库中;( 2)定义要进入数据仓库中的数据 和从数据仓库中产生的数据;( 3)记录根据业务事件发生而随之进行的数据抽取工作时间安排;( 4)记录并检
17、测系统数据一致性的要求和执行情况;( 5)衡量数据质量。 6 主要参考文献 1.福建富士通信息软件有限公司,福建电信数据仓库系统简介 Z.2007.1 2. 段云峰,吴唯宁,李剑威,韩洁著 .数据仓库及其在电信领域中的应用 M.北京:电子工业出版社, 2003.10 3 何宇峰 .基于 CWM 的 ETL 工具的设计与实现 D.大连海事学院, 2008.3 4Mark Humphries, Michael W.Hawkins, Michelle C.Dy 著 , 陈光群译 .数据仓储 :结构和实现 M.北京:社会科学文献出版社, 2003.12 5Lou Agosta 著,潇湘工作室译 .数据
18、仓库技术指南 .北京:人民邮电出版社, 2000.11 6 百度百科 .元数据 .http:/ 7 主流数据仓库产品对比分析 .http:/articles.e- 8 张金铭 ,赖大进 .数据仓库系统在电信行业的应用 . http:/ 时间进度安排: 2008 年 11 月 17 日 2009 年 2 月 10 日:查阅相关书籍资料,理解数据仓库各种理论概念,重点熟悉 ETL 过程,掌握 ETL 重点,难点。并完成开题报告。 2009 年 2 月 11 日 2009 年 3 月 20 日:分析项目需求,理解项目目标与内容,理解项目中相关的业务逻辑;熟悉项目实现环境,开始项目初期步骤 (需求与设
19、计 ),搭建 ETL 工具系统框架, 编写代码, 完成中期检查 报告。 2009 年 3 月 21 日 2009 年 4 月 20 日:基本完成项目的 ETL 工具的代码编写,积累项目开发过程中的相关问题以及解决方法。理解掌握过程中元数据管理。 2009 年 4 月 21 日 2009 年 5 月 20 日:完善项目内容,进行项目测试,验证ETL 工具的运行效果。 2009 年 5 月 21 日 2009 年 5 月 31 日:应用 ETL 工具实现数据的抽取、装载;继续跟踪项目的后期测试,总结项目过程中的不足与难点。 2009 年 6 月 1 日 2009 年 6 月 10 日:完成毕业设计文档撰写,交付指导老师,进行毕业答辩。 指导教师 审核意见: 校外指导教师签名: 2009 年 月 日 校内指导教师签名: 2009 年 月 日