如何在敏捷开发中做好数据迁移--

如何在敏捷开发中做好数据迁移--

ID:21070562

大小:61.50 KB

页数:6页

时间:2018-10-19

如何在敏捷开发中做好数据迁移--_第1页
如何在敏捷开发中做好数据迁移--_第2页
如何在敏捷开发中做好数据迁移--_第3页
如何在敏捷开发中做好数据迁移--_第4页
如何在敏捷开发中做好数据迁移--_第5页
资源描述:

《如何在敏捷开发中做好数据迁移--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、如何在敏捷开发中做好数据迁移>>  数据迁移是指在系统软件开发中,将具有实际业务价值的数据,依据功能需求或系统开发的要求,在不同存储媒介、存储形式或计算机系统之间转移的过程。  数据迁移是系统开发经常涉及到的一项工作。在企业级应用系统中,新系统的开发,新旧系统的升级换代,以及正常的系统维护,不可避免地涉及到大量的迁移工作。而在一个以数据为核心的业务系统中,数据的迁移更是无处不在。比如:在以数据仓库为架构原型的系统设计中,ETL(抽取,转换,装载)部分的实现就是一种数据迁移;对大型数据系统的分布式实施,数据迁移就是整个实施过程的主要部分。而在敏捷实践中,渐进式的数据库开

2、发,更是涉及到大量的数据迁移和同步工作。  我们时常会听到用户提出这样的要求我们并不过于关心应用的好坏,但需务必保证数据准确。的确,在以数据为运营基础的行业里,数据质量本身就是软件质量的权重部分,尤其在电信、金融和控制领域里,这一特征表现的格外明显。数据迁移也是敏捷开发中相当重要的环节,它影响着各个发布版本的数据质量,而数据质量又决定着系统的有效性和可靠性,因此高质量地完成数据迁移不容忽视。  数据迁移往往被视为一件很简单的工作。在很多人眼里,数据迁移仅仅是用sql语句向相应数据表装载数据的过程。但在实际操作中,数据迁移涉及到很多层面的因素,如用户需求,系统功能,数据

3、库建模等,若出现问题,将导致开发进展缓慢或质量不高。常见问题有业务系统逻辑模糊、脏数据、遗留系统的技术债和管理债等。那么如何有效的避免这些问题,提高迁移质量呢?  本文将以Thought项目为背景,为读者介绍如何在敏捷开发中高质量地处理数据迁移工作,从而在数据层面提高系统质量。  开发背景  A系统(旧系统)是客户原有的一套CRM(客户关系管理)系统。系统采用B/S架构,使用sqlserver2005做为后台数据库。旧系统的数据建模设计采用了高度范式化的设计思路,其目的是极度追求灵活性。业务数据被大量拆分并散布存储在上百张数据表里。数据表内和表之间不存在参照约束。大量

4、的业务逻辑采用存储过程封装以提高效率。存储过程体系相当庞大,且存在复杂的相互调用。数据库中存在一些脏数据,可能是长期的使用、维护或误操作导致,但没人知道它们有多少,具体存在哪里。应用界面可用性不理想而且系统效率较低,用户常抱怨系统反映迟缓或无反应。数据库存储的业务数据约50G左右。  Thought系统用以替换旧系统主要功能。新系统精简整理旧系统功能,并整合了客户的最新需求。在设计上做了巨大变更,以改善界面可用性,同时为了保障终端用户对系统服务的需要,新旧系统要求能够同时运行并实现数据同步,当终端用户全部过度到新系统后,终止旧系统。在这个过程中,DBA团队需给予足够的

5、数据保障。  以下为项目版本的发布图。  图片看不清楚?请点击这里查看原图(大图)。  数据迁移开发方法  1.DBA需要制定目标并且管理自己的任务  尽管在每个迭代中,团队都会讨论决定如何组织需求故事(story),但是DBA仍然需要有自己的故事墙(storye NVARCHAR(250), SELECTpersonName = personNameFROMCUSTOMERSERS表后,数据表不应该具有顾客名字为空的记录,如果出现将视为迁移过程的错误。  新系统上要运行的测试代码:DECLARE isExistPersonNameCUSTOMERSe is null

6、 IF (isExistPersonNameoldDB.dbo.persons -- 这是在旧系统中定义的客户表...  --省略复杂的过滤逻辑SELECTNumberofCustomerinNee is null IF (NumberofCustomerinOldDB<>NumberofCustomerinNeers are migrated ')ENDGo  最终当把测试sql代码片段组装在一起后,我们获得了一批测试脚本,并按照以下流程,通过使用NANT工具实现自动化:  NANT中的实现方法:<targetname=-init/>

7、  该任务负责初始化测试环境<targetname=-parseDbScripts/>  该任务负责编译并部署迁移脚本<targetname=-resetTestData/>  该任务负责重置测试数据<targetname=-executeMigrationScripts/>  该任务负责执行迁移脚本<targetname=-testMigration/>  该任务负责执行迁移测试脚本<targetname=testDataMigrationdepends=-init,-parseDbScript

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。