【基于Kettle的异构数据集成系统的设计报告7400字(论文)】_第1页
【基于Kettle的异构数据集成系统的设计报告7400字(论文)】_第2页
【基于Kettle的异构数据集成系统的设计报告7400字(论文)】_第3页
【基于Kettle的异构数据集成系统的设计报告7400字(论文)】_第4页
【基于Kettle的异构数据集成系统的设计报告7400字(论文)】_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Kettle的异构数据集成系统的设计报告目录TOC\o"1-2"\h\u158031绪论 1258081.1选题背景 1304651.2国内外进展 2211371.3存在问题 2205211.4研究内容 247221.5选题意义 357802需求分析 3298682.1可行性需求分析 3308802.2运行环境需求分析 4145872.3Kettle功能性需求分析 5241762.4系统结构性需求分析 663883系统设计 934443.1系统目标 955673.2系统功能设计 955444系统实现 10115214.1数据源管理模块实现 10157224.2数据整合模块实现 12301404.3数据分发模块实现 1523865总结 17摘要:国内信息化建设的迅速推进,使得机关、高校、医院、企业等机构的工作人员从冗杂的劳动工作中解放了出来,但是在跨部门、跨系统之间的数据流通产生了数据冗余、数据冲突等问题。基于Kettle的异构数据集成系统包括数据源管理模块、数据整合模块、数据分发模块。数据源管理模块将异构数据导入数据集成系统,数据整合模块负责将数据提供方的数据进行处理,整合成标准数据,数据分发模块把标准数据按照数据需求方系统的数据格式进行数据转换和分发。通过异构数据集成系统,打破信息孤岛,实现数据在异构系统之间高效流转。关键词:Kettle数据库Java1绪论1.1选题背景伴随着信息技术的快速迭代、硬件制造的升级,各种业务级别的系统层出不穷,信息化建设在提高人们工作效率的同时,在数据流转的过程中也产生了一系列的问题,比如在跨单位、跨部门之间协作的时候,因为系统编码、编程语言、数据库不一致导致系统架构不一致,从而导致在异构系统之间数据流转困难。对于已经投入使用的系统,改变业务逻辑,统一架构不仅在技术上难以实现,而且系统架构在实际生活中会受到多方面的因素制约,因业务逻辑、系统报价、后期运维等因素的不同选择了不同商业公司的系统,所以需要一个ETL部门,来对各个部门之间的数据实现整合及分发操作。在参与数据整合中心项目建设的过程中,发现济宁学院在“智慧校园”建设的过程中,不同部门之间因为业务逻辑的不同采用了不同的系统架构,产生了多种架构的业务系统,虽然在部门内部数据流通非常高效,但是在跨部门协作的时候,出现了数据孤立、系统编码不一致、数据冗余、数据冲突等问题,学校成立数据整合中心来解决上述存在的问题,打通异构系统之间数据流转问题,实现数据跨部门共享,实现异构系统之间的业务协同,解决信息冲突,从而加快“智慧校园”建设。1.2国内外进展对于异构系统数据集成,国内外都有成熟的ETL工具,国外的有Datastage、Informatica,国内的有Taskctl等,这些工具的优点是技术成熟、状态稳定,有专业的售后支持,缺点是价格昂贵,一般的企业、医院或者高校无法承受,Kettle具有部署方便,只需要JVM环境,支持自行对功能进行开发和拓展,容易上手,相关资料比较完善等优点。1.3存在问题通过对现有的异构系统分析,在业务协同的时候还存在以下问题:1.各系统间数据分散,因此形成信息孤岛。2.各系统间编码标准不统一,业务协同困难。3.各系统之间信息冗余、信息冲突等。1.4研究内容以济宁学院为例,在数据整合中心工作的时候涉及到的ETL的业务的部门有:教务处、财务处、学生处、招就处等,学校各部门都有独立的业务系统。因为有些业务涉及到敏感信息,所以尽量只从技术的角度来分析业务逻辑。为了解决异构系统业务协同时存在的以上问题,需要从以下几个方面进行研究:1.建立ETL数据仓库,各系统之间业务协同需要的数据保存到数据仓库。2.数据统一化,通过ETL对数据编码进行统一。3.数据标准化,处理信息冲突、数据冗余问题。1.5选题意义ETL可以用于物联网数据集成、大数据分析、机器学习和人工智能、数据库复制、云迁移等功能,通过Kettle实现异构系统数据的集成,来解决各部门之间信息冗余、信息不对称、信息冲突等问题,流程是OA的血脉,数据是业务的血脉,通过Kettle实现各部门之间数据的高效流转,对学校来说,实现教务、财务、信息管理中心等部门之间数据共享,推进“智慧化校园建设”,对于医院来说,可用于医院各个业务系统间数据共享及数据的挖掘研究,对企业来说,ETL技术可以让数据响应速度更快,在快节奏、高强度的商业环境里,为决策提供更精准的数据,从国家层面上来说,通过优化流程实现业务协同,通过ETL实现信息高效、精准共享等方式,为大家提供的服务更加易用、更加高效,达到技术为业务服务的目的。2需求分析2.1可行性需求分析2.1.1技术可行性需求分析在Windows系统上,只需要配置Java环境和Kettle软件,Kettle基于ApacheLicense2.0协议,只需要在程序里面标注一下license协议就可以,也可以基于源代码二次开发,无需付费。使用的Kettle主要在Spoon上进行创建作业和转换,技术上难度适中,重点在于解决业务问题,以大学期间学习的软件工程、Java程序设计、UML建模等知识点足以完成该项目,因此完成该项目在技术上完全可行。从业务逻辑中剥离出来,只从技术的角度考虑,异构数据集成涉及到的技术有:WebService接口的调用并保存到Oracle数据库中、Oracle多表联查并将结果导出为Excel或JSON文件、MySQL数据库中的数据保存到Oracle数据库等。2.1.2经济可行性需求分析异构数据集成选择的是开源免费的Kettle软件作为ETL工具,和Datastage、Informatica等商业ETL软件相比,可以节省大量资金,项目成本包括人力成本、硬件成本、运维成本。人力成本在于根据业务逻辑开发的人力成本和后期功能变动运维成本,运维成本的大小取决于功能变动是否复杂,硬件成本在于服务器,人力成本和硬件成本和运维成本选用商业ETL软件也存在,和商用ETL工具动辄几百万的成本相比,具有非常高的经济可行性。2.1.3社会可行性需求分析异构数据集成采用的操作系统是Windows正版操作系统,Kettle、JDK等软件也不存在著作侵权现象,通过权限管理防止用户违规操作,业务逻辑符合相关法律法规。异构数据集成系统可以解决异构系统之间数据冗余、数据冲突等问题,实现数据高效流转,具有非常高的社会可行性。2.2运行环境需求分析2.2.1硬件需求分析硬件应该满足流畅运行Kettle作业及定时任务,公网环境可以选择云服务器,阿里云、腾讯云、华为云都可以,阿里云在国内云服务提供商排名第一,腾讯云在游戏云和媒体融合云比较出色,华为云在政企云方面比较出色,需要满足CPU4核及以上、8G内存及带宽2M,内网环境可以本地服务器,需要CPU、内存、带宽满足条件同公网环境服务器配置,具体选择本地服务器还是云服务器需要由具体业务场景来确定。2.2.2操作系统及软件需求分析Windows操作系统,选用Windows操作系统的原因是,有优秀的图形化人机交互界面,在编写完Kettle的转换程序后只需要编写好文档就可以交给普通用户使用,对运维工作人员所需要具备的计算机水平要求不高,运维成本低。如果选用Linux,会提高后期运维成本。在Windows系统上,通过Kettle的Spoon,实现Job的转换和Task的执行。Kettle的核心概念之一是通过图形化搭建完成任务,通过Spoon能够构建出各种各样的ETL作业,并且能够降低维护工作量,在实现上隐藏了很多技术细节的东西,开发人员可以把更多的精力用在业务逻辑上面,无需把太多的精力用在底层实现上。2.2.3数据源需求分析异构数据集成的过程中,有的数据是基本不会变化的数据,这种数据可以直接选择全量同步,有的数据是经常进行增改删操作的数据,对这些数据进行全量同步的基础上,需要对这些数据做一下增量同步,在数据进行增删改操作时触发增量同步操作。数据源指的是在执行异构数据集成的数据来源,论文中出现的数据来源于生产环境数据脱敏或者根据数据结构模拟而成。为了演示项目执行过程及结果,数据源来源于本地MySQL数据库、本地SQLServer数据库、JSON文件数据,其中JSON文件数据用来模拟调用WebService接口返回的JSON数据,数据源管理包括对不同类型的数据库的管理,也包括对数据库中数据的可视化管理,通过可视化管理,可以更加直接的看到执行结果,以及对数据进行测试。2.3Kettle功能性需求分析2.3.1转换管理需求分析异构数据的集成可以通过在Kettle新建一个个转换来完成,转换中的每一个步骤都是ETL数据流里面的一个Task,转换简单的来说步骤包括:输入、处理、输出。输入步骤从数据源中拿到数据,数据可能是文本文件,可能是数据库表或者查询结果,也可能是HTTP或者REST请求。数据转换根据业务来确定,需要对数据进行去重、行转列、拆分、替换、映射等其中的一步或者多步操作。输出这个过程会把处理后的数据输出到FileSystem中,有可能是JSON文件、XLSX文件,也有可能是数据库的指定表。2.3.2作业调度需求分析作业调度有两种,一种是时间上的调度,可以通过系统默认的Job定时任务实现,可以根据业务需求进行定时执行作业,作业包含多个转换,定时任务一般用于定时同步某种数据、数据库灾备、邮件提醒等。另一种是空间上的调度,为了提高服务器集群的资源利用率,通过作业调度来实现负载均衡,来避免出现某一台机器负载过高,而其他机器一直闲置的情况,或者是某个Job运行的转换或者步骤过多,一台机器的性能满足不了实际需求,需要通过搭建分布式Job,把一个Job分解为多个子Job,每台机器根据硬件情况执行一个或者多个子Job,通过分布式来实现空间上作业的高效调度。2.3.3系统监控需求分析在服务器上执行Job的过程,需要对服务器性能、资源占用、安全状况、执行过程进行实时监控,资源监控是整个系统生命周期中非常重要的一环,资源监控能够实现在故障发生之前提前预警,实时反馈系统当前的状态,在故障发生之后能够提供必要日志用于定位问题、解决问题及总结问题。系统监控的流程分为:对被监控目标进行数据采集及存储,之后对数据进行分析和展示,最后在遇到系统异常时对被监控的数据进行报警和处理。监控常用的报警方式有:电话报警、短信报警、邮件报警,这个可以针对需求配置其中的一种或者多种报警方式。2.3.4服务器管理需求分析如果是单体应用,不需要太在乎服务器管理,但是如果是搭建集群或者是分布式,就需要对服务器进行统一调度管理,否则会出现Task管理混乱、生命周期无法统一协调管理、异常报警和定时任务对接困难、多个Job如果存在互斥关系,难以进行互斥管理、随着时间增加,定时任务的数量增加到一定程度,就难以管理。所以集群或者分布式服务器需要进行统一调度处理,提高资源利用,实现系统高可用。2.4系统结构性需求分析2.4.1系统介绍系统分为数据源管理模块、数据整合模块、数据分发模块三个模块。1.数据源管理模块:负责异构数据集成过程中导入数据提供方提供的数据,数据提供方可能提供WebService接口,提供JSON格式的数据,可能提供异构系统导出的XLSX、CSV文件格式的数据,也有可能给一个只具有某几张表查询权限的用户,可直接查询到数据表的数据,通过Kettle获取到异构系统的数据,然后保存到数据整合中心,异构数据的集成有很多方式,有的是一次性同步,有的是增量同步,有的是定时同步。2.数据整合模块:负责把数据提供方提供的数据根据需求方系统所需的数据格式进行数据清洗、整合,整合后的数据为需求方系统需要的数据格式。3.数据分发模块:负责将数据整合模块整合好的数据分发给数据需求方。系统通过以上三个模块对数据进行导入、清洗、整合、分发,从而实现异构数据的集成。2.4.2质量需求分析质量需求分析针对异构数据集成系统的健壮性、安全性、可扩展性等方面进行分析,健壮性包括在程序执行的过程中稳定运行,对非法输入字符输入有校验,有完善的异常处理机制,不会因为一些小异常导致整个程序甚至系统崩溃,能够在处理异常的同时输出错误日志,用来排查错误以及后期对系统进行优化。安全性是指通过不对称秘钥和证书等方式实现在异构数据集成的整个过程的安全性。可扩展性指的是在异构数据集成系统开发过程中,有可能会发生需求的变更,也有可能会不断地产生新的需求,在后期增加功能时,只需要少量的改动即可完成,而不是需要另做一套系统,能够满足正确的预测未来的变化和完美的封装未来的变化这两个条件的系统才是扩展性优越的系统。2.4.3系统功能模块图基于Kettle的异构数据集成系统分为三个模块,如图2-1所示:图2-1系统功能模块图2.4.4系统数据流程图异构数据集成的流程为数据提供方提供数据,数据格式可能是文件数据、WebService接口数据、数据库表查询等,数据整合中心获取到异构系统数据,然后根据数据需求方需求进行ETL操作,将数据处理为数据需求方所需格式的数据,然后数据分发模块负责将处理好的数据分发给数据需求方,数据需求方将数据导入己方系统。系统整体数据流程图如图2-2所示:图2-2系统数据流程图以缴费信息同步为例,学生在财务系统进行缴费,其他系统需要拿到财务系统中学生缴费信息以实现后续逻辑,在该数据同步需求中,财务系统作为数据提供方,其他需要学生缴费信息的系统是数据需求方,数据需求方系统需要的不一定是存在财务系统的原来的字段,所以需要数据整合中心对财务系统提供的JSON接口数据进行清洗转换,然后分发给需求方系统,因为学生缴费不是同时进行的,所以同步缴费信息需要做一下定时同步,学生缴费数据同步流程图如图2-3所示:图2-3学生缴费数据同步流程图2.4.5E-R图以同步学生缴费信息为例,学生基本信息表和缴费科目表之间的对应关系为m:n,学生基本信息表里面主要的字段有department(所属院系)、specialty(所属专业)、class(所属班级)、studentNumber(学号)、name(姓名),缴费科目表的主要字段有payItem(收费项目)、chargeAgency(收费机构)、billState(账单状态)、billMoney(账单金额)、amountPaid(已缴金额)、unpaidAmount(未缴金额)。学生缴费后会根据学生基本信息表和缴费科目表生成缴费信息表,缴费信息表主要有department、specialty、class、studentNumber、name、payItem、chargeAgency、billState、billMoney、amountPaid、unpaidAmount等字段,由缴费信息表来建立学生基本信息表和缴费科目表之间的联系,学生基本信息表和缴费科目表之间E-R图如图2-4所示:图2-4E-R图3系统设计3.1系统目标通过异构数据集成系统,实现跨部门、跨系统之间的数据互通,打通数据传输过程中的异构数据难以导入、数据冲突、数据冗余问题,实现数据的高效流转,提高各个部门之间协作效率。3.2系统功能设计3.2.1数据源管理模块设计数据源管理模块主要是将数据提供方提供的数据导入到数据整合中心,现实生活中各种组织架构的系统层出不穷,几个常见的异构数据集成场景:WebService数据调用并保存到数据库、MySQL数据库表同步到Oracle数据库中、JSON文件和XLSX文件同步到Oracle数据库。数据源管理模块除了实现异构数据同步到本地数据中心之外,还需要对数据同步的方式进行管理,包括一次性同步、增量同步、定时同步等。3.2.2数据整合模块设计数据整合模块主要负责根据需求方数据格式以及内容要求,把数据提供方数据转换为数据需求方所需格式的数据,常见的转换方式有:值映射、增加序列、行列转换等。3.2.3数据分发模块设计数据分发模块根据需求方所需的数据格式,提供相应格式的数据,比如:JSON文本、XLSX文件、WebService接口等。4系统实现4.1数据源管理模块实现数据源管理模块负责将异构数据保存到数据整合中心以及对同步的方式进行管理,以缴费信息同步为例,在数据源管理模块需要实现对缴费信息进行定时、全量同步,以JS文件中的JSON数据模拟数据提供方通过WebService接口方式提供的JSON数据,同步方式为定时同步,同步的过程为先读取JS文件中的JSON数据,然后解析JSON文件,然后保存到数据整合中心本地数据库。具体同步流程如下,先在Kettle中新建一个Transformation,Transformation中设置转换的具体步骤,先执行SQL脚本,清除掉历史数据,然后读取JSON数据,因为一个人有多条缴费记录,第一次读取的是学生及对应的所有缴费数据,第二次将每个学生的缴费数据根据缴费项目分割处理,最后表输出是将解析完的JSON数据以学生和缴费项目为区分保存到数据库,既一名学生有多少个缴费项目,在数据中就会有有多少条缴费记录。Transformation中数据转换的执行过程如图4-1所示:图4-1Transformation执行过程图然后在Kettle中新建一个Job,在Start中设置定时同步的频率,本示例设置的同步方式为每20秒同步一次,转换中设置执行的转换名称及位置,名称和位置为刚才创建的转换的名称和位置,Job执行方式及过程如图4-2所示:图4-2Job执行方式及执行过程图 在数据同步之前,原始JSON数据中存在属性、数组、对象等数据格式,数据结构格式如图4-3所示:图4-3JSON文件数据结构数据同步完成之后,JSON数据在数据表中存储结果如图4-4所示:图4-4JSON数据同步到数据表中的结果4.2数据整合模块实现数据整合模块通过从数据源管理模块拿到异构系统数据,然后对数据进行清洗,最后将清洗完的数据保存到数据整合中心。常用的清洗方法包括:值映射、增加序列、增加常量、去重、排序、字段选择(选择字段、修改数据类型、改变名称)、字符串替换、字段拆分、行列转换等,这些操作一个转换可能用到其中的一个到多个操作,根据需求的不同可能执行的顺序也有区别,通过一系列的数据清洗,之后就可以得到符合需求方格式要求的数据。以异构系统人员信息同步为例,数据提供方系统人员信息数据结构如图4-5所示:图4-5数据提供方人员信息数据结构图需求方系统还需要uuid、language字段,uuid字段的值从1开始,步进长度为1,language字段的默认值为“简体中文”,uuidlastName字段和firstName字段需要合并为name字段,sex字段值需要把值“1”映射为“男”,值“0”映射为“女”,tepphone字段名称需要修改为phone,需求方系统的这些需求可以通过在Kettle中新建一个转换来实现,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论