CN109635024A - 一种数据迁移方法及系统 - Google Patents
一种数据迁移方法及系统 Download PDFInfo
- Publication number
- CN109635024A CN109635024A CN201811409852.0A CN201811409852A CN109635024A CN 109635024 A CN109635024 A CN 109635024A CN 201811409852 A CN201811409852 A CN 201811409852A CN 109635024 A CN109635024 A CN 109635024A
- Authority
- CN
- China
- Prior art keywords
- data
- migrated
- database
- conversion
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据迁移方法,所述方法包括:将已设定好任务的属性元数据转化成数据库查询语句,建立临时数据库,通过所述临时数据库存储待迁移的数据;执行所述数据库查询语句,将所述待迁移的数据从源数据库中抽取,并将所述待迁移的数据存储到所述临时数据库中;按照任务中已经定义的数据清洗规则对所述临时数据库中的所述待迁移的数据进行清洗,删除不符合要求的所述待转换的数据,获取清洗后的所述待迁移的数据;按照任务中已经定义的数据转换规则将清洗后的所述待迁移的数据进行转换,使得转换后的所述待迁移的数据符合目标数据库的存储要求;将转换后的所述待迁移的数据加载到所述目标数据库中。
Description
技术领域
本发明涉及数据库应用技术领域,更具体地,涉及一种数据迁移方法及系统。
背景技术
随着国产软件的数量逐渐增多,应用范围越来越广,政府对国产软件进行了大力的支持,使得国产软件得到了迅速的发展。国产数据库是国产软件的代表之一。目前安全可靠替代工程逐步开展,为支撑多个并行工程的执行,缩短单项工程的实施周期,支持已有X86环境中异构数据的迁移,将数据对象从其他数据库移植到国产数据库,达到快速准确无损的数据迁移,需要开发出安全可靠数据迁移工具。
神通数据库、达梦数据库、人大金仓数据库作为大型的国产数据库,以其操作简单,通用性强、优质的技术服务等特点获得了越来越多的用户支持和青睐。国产数据库无论是在功能上还是在性能上均获得了业界的一致好评。使用国产数据库来开发新的应用系统,以及将现有系统移植到国产数据库中,已经获得了用户的支持和认可。国内许多的应用系统都使用了国产数据库,其应用广泛分布在航天单位,政府部门、事业单位、军队等。
随着安全可靠市场一期二的建立,系统的不断升级优化,各省的安全可靠数据越来越多,面临着大量的数据迁移、备份、保护。目前市场传统的迁移工具无法满足安全可靠市场的数据迁移备份保护工作。
数据交换平台就是从各种数据源(包括各种格式文件、不同类型关系数据库、非关系数据库)通过接口,按照可定制的规则抽取数据,然后对其进行清洗、转换,最后形成统一格式的目标数据加载到数据仓库中。然而,现有的数据迁移平台,不能满足现有的数据迁移的速度和安全。在国产化安全可靠领域方面,现在仅有几款数据交换平台在支持国产数据库的广泛性,使用的易用性还有所欠缺。
因此,需要一种技术,以实现一种数据迁移技术。
发明内容
本发明技术方案提供了一种数据迁移方法及系统,以解决如何进行数据安全迁移的问题。
为了解决上述问题,本发明提供了一种数据迁移方法,所述方法包括:
将已设定好任务的属性元数据转化成数据库查询语句,建立临时数据库,通过所述临时数据库存储待迁移的数据;
执行所述数据库查询语句,将所述待迁移的数据从源数据库中抽取,并将所述待迁移的数据存储到所述临时数据库中;
按照任务中已经定义的数据清洗规则对所述临时数据库中的所述待迁移的数据进行清洗,删除不符合要求的所述待转换的数据,获取清洗后的所述待迁移的数据;
按照任务中已经定义的数据转换规则将清洗后的所述待迁移的数据进行转换,使得转换后的所述待迁移的数据符合目标数据库的存储要求;
将转换后的所述待迁移的数据加载到所述目标数据库中。
优选地,所述数据库查询语句为结构化查询语言SQL语句。
优选地,还包括:按照设定时间或设定频率执行所述数据迁移方法。
优选地,所述不符合要求的数据包括不完整的数据、错误的数据以及重复的数据,其中:
所述不完整的数据为必要信息缺失的数据;
所述错误的数据为没有经过业务系统判断的输入数据,通过所述数据库查询语句挑选所述错误的数据;
所述重复的数据为通过所述数据库查询语句挑选。
优选地,所述按照任务中已经定义的数据转换规则将清洗后的所述待迁移的数据进行转换,包括:
所述数据转换规则包括:不一致的数据转换、数据粒度的转换和商务规则的计算;
所述不一致的数据转换是将所述源数据库中的不同业务系统的相同类型的数据进行统一;
所述数据粒度的转换为按照所述目标数据库的要求将所述临时数据库中存储的业务系统的明细数据进行粒度聚合;
所述商务规则的计算为按照商务规则对所述临时数据库中存储的所述待迁移的数据进行计算。
优选地,还包括建立监测数据迁移过程的日志,所述日志包括:执行过程日志、错误日志和总体日志。
基于本发明的另一方面,提供一种数据迁移系统,所述系统包括:
初始单元,用于将已设定好任务的属性元数据转化成数据库查询语句,建立临时数据库,通过所述临时数据库存储待迁移的数据;
抽取单元,用于执行所述数据库查询语句,将所述待迁移的数据从源数据库中抽取,并将所述待迁移的数据存储到所述临时数据库中;
清洗单元,用于按照任务中已经定义的数据清洗规则对所述临时数据库中的所述待迁移的数据进行清洗,删除不符合要求的所述待转换的数据,获取清洗后的所述待迁移的数据;
转换单元,用于按照任务中已经定义的数据转换规则将清洗后的所述待迁移的数据进行转换,使得转换后的所述待迁移的数据符合目标数据库的存储要求;
加载单元,用于将转换后的所述待迁移的数据加载到所述目标数据库中。
优选地,所述数据库查询语句为结构化查询语言SQL语句。
优选地,还包括调试服务单元,用于按照设定时间或设定频率执行所述数据迁移方法。
优选地,所述不符合要求的数据包括不完整的数据、错误的数据以及重复的数据,其中:
所述不完整的数据为必要信息缺失的数据;
所述错误的数据为没有经过业务系统判断的输入数据,通过所述数据库查询语句挑选所述错误的数据;
所述重复的数据为通过所述数据库查询语句挑选。
优选地,所述转换单元用于按照任务中已经定义的数据转换规则将清洗后的所述待迁移的数据进行转换,包括:
所述数据转换规则包括:不一致的数据转换、数据粒度的转换和商务规则的计算;
所述不一致的数据转换是将所述源数据库中的不同业务系统的相同类型的数据进行统一;
所述数据粒度的转换为按照所述目标数据库的要求将所述临时数据库中存储的业务系统的明细数据进行粒度聚合;
所述商务规则的计算为按照商务规则对所述临时数据库中存储的所述待迁移的数据进行计算。
优选地,还包括日志管理单元,用于建立监测数据迁移过程的日志,所述日志包括:执行过程日志、错误日志和总体日志。
本发明技术方案提供一种数据迁移方法和系统,其中方法包括:将已设定好任务的属性元数据转化成数据库查询语句,建立临时数据库,通过临时数据库存储待迁移的数据;执行数据库查询语句,将待迁移的数据从源数据库中抽取,并将待迁移的数据存储到临时数据库中;按照任务中已经定义的数据清洗规则对临时数据库中的待迁移的数据进行清洗,删除不符合要求的待转换的数据,获取清洗后的待迁移的数据;按照任务中已经定义的数据转换规则将清洗后的待迁移的数据进行转换,使得转换后的待迁移的数据符合目标数据库的存储要求;将转换后的待迁移的数据加载到目标数据库中。本发明技术方案提供基于国产化配置的安全可靠数据交换平台采用元数据方法,集中进行管理;接口、数据格式、传输有严格的规范;不用在外部数据源安装软件;数据抽取系统流程自动化,并有自动调度功能;抽取的数据及时、准确、完整;可以提供同各种数据系统的接口,系统适应性强;提供软件框架系统,系统功能改变时,应用程序很少改变便可适应变化;可扩展性强。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为根据本发明优选实施方式的数据迁移方法流程图;
图2为根据本发明优选实施方式的数据迁移平台结构示意图;
图3为根据本发明优选实施方式的数据迁移平台功能结构示意图;
图4为根据本发明优选实施方式的TCP/IP协议报文格式示意图;
图5为根据本发明优选实施方式的CPU运算示意图;
图6为根据本发明优选实施方式的单核环境中的任务调度示意图;
图7为根据本发明优选实施方式的多核环境中的任务调度示意图;以及
图8为根据本发明优选实施方式的数据迁移系统结构示意图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为根据本发明优选实施方式的数据迁移方法流程图。目前业务数据存储的方式种类多达上万种,每种存储方式的编码方式都不一致,所以目前市面上的数据交换平台(以下简称ETL)在接口上均无法满足所有的变化,都具有局限性。一般来说都往某一领域上侧重。而且由于业务的复杂度决定了市面上数据交换平台ETL使用的复杂度很高。本申请实施方式的数据迁移方法采用先进的系统架构设计,功能模块层次清晰,模块之间松耦合,具备良好的开放性和可扩展性,并支持基于业务场景的定制化,采用向导式元数据采集方式等提供易用性。如图1所示,一种数据迁移方法,方法包括:
优选地,在步骤101:将已设定好任务的属性元数据转化成数据库查询语句,建立临时数据库,通过临时数据库存储待迁移的数据。优选地,数据库查询语句为结构化查询语言SQL语句。
优选地,在步骤102:执行数据库查询语句,将待迁移的数据从源数据库中抽取,并将待迁移的数据存储到临时数据库中。本申请中,数据的抽取是从各个不同的数据源抽取到操作型数据存储中,抽取过程也可以做一些数据的清洗和转换。在数据抽取的过程中,本申请将已设定好任务的属性元数据转化成数据库查询语句,或转换成SQL语句,并可采用多核多线程技术来执行从而提高了运行效率。
本申请配置好数据源的数据信息,其中关系数据库有主机名、端口、服务器名、验证方式(根据数据库类型来决定是否存在)角色(根据数据库类型来决定是否存在该元数据属性)、用户名、口令等元数据,文件有文件全路径、文件编码类型、数据读取方式、Null值如何判定等元数据。
本申请配置好目标源数据库信息,其中关系数据库除了有主机名、端口、服务器名、验证方式(根据数据库类型来决定是否存在)、角色(根据数据库类型来决定是否存在)、用户名、口令等元数据,还有SSL、SSL验证密码等元数据。文件有文件全路径、文件编码类型、Null值如何判定、加密信息等元数据。本申请配置好抽取规则,那些表抽取,以及前多少条数据抽取,抽取的数据中存在什么字段等等。
优选地,在步骤103:按照任务中已经定义的数据清洗规则对临时数据库中的待迁移的数据进行清洗,删除不符合要求的待转换的数据,获取清洗后的待迁移的数据。优选地,不符合要求的数据包括不完整的数据、错误的数据以及重复的数据,其中:不完整的数据为必要信息缺失的数据;误的数据为没有经过业务系统判断的输入数据,通过数据库查询语句挑选错误的数据;重复的数据为通过数据库查询语句挑选。本申请根据清洗规则对元数据进行配置,数据清洗的是过滤不符合要求的数据,将过滤的结果交给业务主管部门,由业务单元确认是否过滤掉还是由业务单位修正之后再进行抽取。本申请不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。其中,不完整的数据为:这一类数据主要是一些应该有的信息缺失,对于这一类数据过滤出来,按缺失的内容分别写入不同Excel文件向客户提交,要求在规定的时间内补全。补全后才写入数据仓库。错误的数据为:这一类错误产生的原因是业务系统不够健全,在接收输入后没有进行判断直接写入后台数据库造成的。这一类数据也要分类,对于类似于全角字符、数据前后有不可见字符的问题,只能通过写SQL语句的方式找出来,然后要求客户在业务系统修正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败,这一类错误需要去业务系统数据库用SQL的方式挑出来,交给业务主管部门要求限期修正,修正之后再抽取。重复的数据为:对于这一类数据——将重复数据记录的所有字段导出来,让客户确认并整理。
优选地,在步骤104:按照任务中已经定义的数据转换规则将清洗后的待迁移的数据进行转换,使得转换后的待迁移的数据符合目标数据库的存储要求。优选地,按照任务中已经定义的数据转换规则将清洗后的待迁移的数据进行转换,包括:数据转换规则包括:不一致的数据转换、数据粒度的转换和商务规则的计算;不一致的数据转换是将源数据库中的不同业务系统的相同类型的数据进行统一;数据粒度的转换为按照目标数据库的要求将临时数据库中存储的业务系统的明细数据进行粒度聚合;商务规则的计算为按照商务规则对临时数据库中存储的待迁移的数据进行计算。本申请根据转换规则对元数据进行配置,数据转换的任务主要进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算。其中,不一致数据转换:这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一,比如同一个供应商在结算系统的编码是XX0001,而在CRM中编码是YY0001,这样在抽取过来之后统一转换成一个编码。数据粒度的转换:业务系统一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据。一般情况下,会将业务系统数据按照数据仓库粒度进行聚合。商务规则的计算:不同的企业有不同的业务规则、不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在ETL中将这些数据指标计算好了之后存储在数据仓库中,以供分析使用。
优选地,在步骤105:将转换后的待迁移的数据加载到目标数据库中。
优选地,方法还包括:按照设定时间或设定频率执行数据迁移方法。本申请包括调度服务,其中调度服务是一种后台服务,它可以按设定时间一次执行任务,也可设定频率来多次反复执行任务。从而实现平台无人自动化任务运行。
优选地,方法还包括:建立监测数据迁移过程的日志,日志包括:执行过程日志、错误日志和总体日志。本申请通过记录日志的随时可以知道平台运行情况,如果出错了,可以知道哪里出错。平台日志分为三类:
一类是执行过程日志,这一部分日志是在平台执行过程中每执行一步的记录,记录每次运行每一步骤的起始时间,影响了多少行数据,流水账形式。
一类是错误日志,当某个模块出错的时候写错误日志,记录每次出错的时间、出错的模块以及出错的信息等。
第三类日志是总体日志,只记录任务开始时间、结束时间是否成功信息。
图2为根据本发明优选实施方式的数据迁移平台结构示意图。如图2所示,安全可靠数据交换平台(以下简称本平台)分三部分:数据抽取、数据的清洗转换、数据的加载。数据的抽取是从各个不同的数据源抽取到操作型数据存储中(注:这个过程也可以做一些数据的清洗和转换),在抽取的过程中,本申请实施方式的数据迁移平台尽可能转换成SQL语句,并可采用多核多线程技术来执行从而提高了运行效率。数据的清洗转换的部分是整个平台最为重要的,清洗就是将脏数据和不完整数据过滤掉;转换是指在平台可对临时数据进行一些业务规则的计算和聚合。数据的加载则是数据清洗转换完了之后直接写入数据仓库中去。
图3为根据本发明优选实施方式的数据迁移平台功能结构示意图。如图3所示,安全可靠数据交换平台由调度服务和数据交换工具两部分构成。
其中,调度服务是一种后台服务,它可以按设定时间一次执行任务,也可设定频率来多次反复执行任务。从而实现平台无人自动化任务运行。
数据交换工具包括:任务管理,任务管理用于对数据交换任务基本属性进行管理,对任务进行新建、重命名、删除操作。
数据交换工具还包括:元数据管理,元数据管理中可定义、修改任务中各个过程(抽取、清洗、交换、加载)所需相关元数据。通过灵活的自定义元数据来实现数据抽取、清洗、交换和加载。
数据源元数据配置功能为,在此配置好数据源信息,其中关系数据库有主机名、端口、服务器名、验证方式(根据数据库类型来决定是否存在)角色(根据数据库类型来决定是否存在该元数据属性)、用户名、口令等元数据,文件有文件全路径、文件编码类型、数据读取方式、Null值如何判定等元数据。
对目标数据元数据进行配置,配置好目标数据库信息,其中关系数据库除了有主机名、端口、服务器名、验证方式(根据数据库类型来决定是否存在)、角色(根据数据库类型来决定是否存在)、用户名、口令等元数据,还有SSL、SSL验证密码等元数据。文件有文件全路径、文件编码类型、Null值如何判定、加密信息等元数据。
对抽取规则元数据进行配置,配置好抽取规则,那些表抽取,以及前多少条数据抽取,抽取的数据中存在什么字段等等。
对清洗规则元数据进行配置,数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。
不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。
不完整的数据:这一类数据主要是一些应该有的信息缺失,对于这一类数据过滤出来,按缺失的内容分别写入不同Excel文件向客户提交,要求在规定的时间内补全。补全后才写入数据仓库。
错误的数据:这一类错误产生的原因是业务系统不够健全,在接收输入后没有进行判断直接写入后台数据库造成的。这一类数据也要分类,对于类似于全角字符、数据前后有不可见字符的问题,只能通过写SQL语句的方式找出来,然后要求客户在业务系统修正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败,这一类错误需要去业务系统数据库用SQL的方式挑出来,交给业务主管部门要求限期修正,修正之后再抽取。
重复的数据:对于这一类数据——将重复数据记录的所有字段导出来,让客户确认并整理。
对转换规则元数据进行配置,数据转换的任务主要进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算。
不一致数据转换:这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一,比如同一个供应商在结算系统的编码是XX0001,而在CRM中编码是YY0001,这样在抽取过来之后统一转换成一个编码。
数据粒度的转换:业务系统一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据。一般情况下,会将业务系统数据按照数据仓库粒度进行聚合。
商务规则的计算:不同的企业有不同的业务规则、不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在ETL中将这些数据指标计算好了之后存储在数据仓库中,以供分析使用。
数据处理
数据处理是依照任务设置属性,平台自动执行数据抽取、清洗、交换、加载。准确来说就是用户定义好任务的执行过程。
本申请提出的数据迁移方法,包括:
①预处理
将任务中设定好任务的属性元数据转化成SQL语句,建立临时数据库。
②抽取数据
执行转化后的SQL语句来抽取数据到临时数据库中。
③清洗数据
按照任务中定义好数据清洗规则对临时数据库中的数据进行筛查,删除不符合规则的脏数据。
④转换数据
按照任务中定义好数据转换规则对临时数据库中的数据进行计算、聚合,做数据转换处理。
⑤加载数据
将临时数据库中的数据导入到任务定义好的目标数据库中。
日志管理
记录日志的目的是随时可以知道平台运行情况,如果出错了,可以知道哪里出错。
平台日志分为三类。
一类是执行过程日志,这一部分日志是在平台执行过程中每执行一步的记录,记录每次运行每一步骤的起始时间,影响了多少行数据,流水账形式。
一类是错误日志,当某个模块出错的时候写错误日志,记录每次出错的时间、出错的模块以及出错的信息等。
第三类日志是总体日志,只记录任务开始时间、结束时间是否成功信息。
本申请实施方式数据迁移平台实现的关键是数据的传输、数据的处理,数据的传输方式采用Socket方式。其中数据的处理采用多核多线程技术来提高多核CPU的运行效率。Socket方式是最简单的交互方式。是典型C/S交互模式。一台客户机,一台服务器。服务器提供服务,通过ip地址和端口进行服务访问。而客户机通过连接服务器指定的端口进行消息交互。其中传输协议可以是tcp/UDP协议。而服务器和约定了请求报文格式和响应报文格式。如图4所示。
本申请采用的http调用,java远程调用,webserivces都是采用的这种方式,只不过不同的就是传输协议以及报文格式。
这种方式的优点是:
①易于编程,目前java提供了多种框架,屏蔽了底层通信细节以及数据传输转换细节。
②容易控制权限。通过传输层协议https,加密传输的数据,使得安全性提高
③通用性比较强,无论客户端是.net架构,java,python都是可以的。尤其是webservice规范,使得服务变得通用
而这种方式的缺点是:
①服务器和客户端必须同时工作,当服务器端不可用的时候,整个数据交互是不可进行。
②当传输数据量比较大的时候,严重占用网络带宽,可能导致连接超时。使得在数据量交互的时候,服务变的很不可靠。
为了克服第②个缺点,我们采用分批次传输数据,上一批次数据验证过再传输下一批次,能有效的克服数据量大的时候,服务不可靠的缺点。
本申请采用多核多线程方式,使用多线程来实现并行计算来缩短计算时间时,只要在多核CPU下才行,单核CPU下启用多线程最终总的计算计算一样,因为CPU在同一时间,只能服务于一个线程。
对单核CPU,对客户端软件,采用多线程,主要是:创建多线程将一些计算放在后台执行,而不影响用户交互操作。(用户界面&其他计算并行进行)提高用户的操作性能。
多核中,分别出多个线程,不再限于将用户界面操作和其他计算分离。分解多个线程使为了让计算分配到各CPU上执行。执行线程数量与CPU核数有关。如果线程数小于核数,某些CPU肯定处于空闲状态。
一、多核编程与单核多线程的区别
①锁竞争导致的串行化的区别
在单核系统中如果某个线程获取了锁,那么这个线程将获取CPU的运行时间,其他线程将被阻塞。但CPU始终处于运行状态,影响计算时间的其实只是加锁和解锁的时间。并不会发生CPU空闲的现象。
但多核系统中情况发生了本质的变换,如果线程A和B使用同一把锁,但运行在不同的CPU上,如果A得到了锁,那么A线程所在CPU则处于运行状态,线程B处于阻塞状态,B线程所在CPU则处于空闲状态。我们浪费了一个CPU的运算时间。如图5所示。
②线程分解与执行的区别
在单核CPU中,对于客户端软件而言,采用多线程方式通常都是创建线程并将其放在后台执行,避免阻塞客户界面操作,提高性能。而在多CPU中,线程的分解将不再局限与此。多核CPU分解多线程是为了让计算分配到各个CPU核上去执行。大幅度提高工作效率。
③CPU负载均衡的区别
在单核CPU中,并不需要考虑CPU间负载均衡的问题,因为无论线程如何切换,CPU始终处于工作状态,它并不会影响程序运行的总时间。但对于多核CPU,则一定要考虑负载均衡的问题,避免出现负载小的CPU出现空闲等待的现象。
加速比(speedup),是同一个任务在单处理器系统和并行处理器系统中运行消耗的时间的比率,用来衡量并行系统或程序并行化的性能和效果。
一个简单加速比的例子:
一个4核CPU有4个任务,各任务分别耗时20ms,5ms,3ms,2ms
优化负载后个任务时间为10ms,8ms,6ms,6ms
多核CPU的效率变为75%,提高的幅度还是很大的。
④任务调度策略的区别
在单核中,任务调度的主要工作是为个任务间取得一定的分时效果,简单的说就是保证优先级高的线程可以抢占CPU时间,先运行。在这种情况下程序员更多的是需要考虑任务的优先级。
在多核程序中,不单是要考虑任务的优先级,也要考虑各个任务的耗时,使负载均衡,提高加速比和CPU效率。在多核程序中,操作系统并不清楚我们任务的耗时,所以无法采用对我们程序最优化的调度策略来使负载均衡,因此,任务调度策略的选择也是程序员要考虑的问题。
⑤CPU Cache存取的区别
在单核系统中,同一时刻只有一个硬件线程在执行,因此单核CPU是不存在Cache存储问题的。但在多核CPU中,情况则发生了变化。问题主要是因为CPU读取Cache时是以行为单位,如果两个硬件线程同时执行时,会造成两个硬件线程写同一Cache的问题,造成竞争降低效率。
⑥任务优先级抢占的区别
在单核CPU情况下,优先级抢占调度是一种常见的调度策略。在多核CPU中,由于有多个任务可以同时在不同的核中运行,优先级在局部发生了变化,有可能发生低优先级的任务先完成的现象。在多核系统中需要重新考虑任务的调度策略。
例如:任务T1,T2,T3,T4,优先级为T4>T3>T2=T1,图示将表示出单核与多核在任务调度时的区别,如图6和图7所示。从图中表示情况是虽然T4的优先级高于T3,但T4并没有像单核CPU中先于T3完成而是基本时间相差不大。
安全可靠数据交换平台中,负责提供向导式的界面来设计业务规则,数据的整个加工过程都在目标和源的数据库之间流动,协调相关的数据库系统来执行相关的应用,数据加工过程既可以在源数据库端执行,也可以在目标数据仓库端执行(主要取决于系统的架构设计和数据属性)。
第一:采用数据中转区对其业务数据进行预处理,保证集成与加载的高效性;
第二:采用主动抽取数据方式,而不是从内部“推送”,可控性大大增强;
第三:采用流程化的配置管理和标准协议,简化使用难度;
第四,采用统一标准定义数据(元数据)来贯穿整个平台全过程,可扩展性强;
第五,拥有统一标准化的接口,能够扩展到一个数据仓库平台,将信息从一个数据集市流动到下一个。
本申请通过对数据做标准化定义,实现统一的编码、统一的分类和组织。标准化定义的内容包括:标准代码统一、业务术语统一。对业务数据本身及其运行环境的描述与定义的数据,称之为元数据(metadata)。元数据是描述数据的数据。安全可靠数据交换平台采用元数据方法,集中进行管理;接口、数据格式、传输有严格的规范;不用在外部数据源安装软件;数据抽取系统流程自动化,并有自动调度功能;抽取的数据及时、准确、完整;可以提供同各种数据系统的接口,系统适应性强;提供软件框架系统,系统功能改变时,应用程序很少改变便可适应变化;可扩展性强。
本申请安全可靠数据交换平台中,负责提供向导式的界面来设计业务规则,数据的整个加工过程都在目标和源的数据库之间流动,协调相关的数据库系统来执行相关的应用,数据加工过程既可以在源数据库端执行,也可以在目标数据仓库端执行(主要取决于系统的架构设计和数据属性)。本申请采用数据中转区对其业务数据进行预处理,保证集成与加载的高效性。采用主动抽取数据方式,而不是从内部“推送”,可控性大大增强。采用流程化的配置管理和标准协议,简化使用难度。采用统一标准定义数据(元数据)来贯穿整个平台全过程,可扩展性强。拥有统一标准化的接口,能够扩展到一个数据仓库平台,将信息从一个数据集市流动到下一个。
图8为根据本发明优选实施方式的数据迁移系统结构示意图。如图8所示,一种数据迁移系统,系统包括:
初始单元801,用于将已设定好任务的属性元数据转化成数据库查询语句,建立临时数据库,通过临时数据库存储待迁移的数据。优选地,数据库查询语句为结构化查询语言SQL语句。
抽取单元802,用于执行数据库查询语句,将待迁移的数据从源数据库中抽取,并将待迁移的数据存储到临时数据库中。
清洗单元803,用于按照任务中已经定义的数据清洗规则对临时数据库中的待迁移的数据进行清洗,删除不符合要求的待转换的数据,获取清洗后的待迁移的数据。优选地,不符合要求的数据包括不完整的数据、错误的数据以及重复的数据,其中:不完整的数据为必要信息缺失的数据;误的数据为没有经过业务系统判断的输入数据,通过数据库查询语句挑选错误的数据;重复的数据为通过数据库查询语句挑选。
转换单元804,用于按照任务中已经定义的数据转换规则将清洗后的待迁移的数据进行转换,使得转换后的待迁移的数据符合目标数据库的存储要求。优选地,转换单元用于按照任务中已经定义的数据转换规则将清洗后的待迁移的数据进行转换,包括:数据转换规则包括:不一致的数据转换、数据粒度的转换和商务规则的计算;不一致的数据转换是将源数据中的不同业务系统的相同类型的数据进行统一;数据粒度的转换为按照目标数据库的要求将临时数据库中存储的业务系统的明细数据进行粒度聚合;商务规则的计算为按照商务规则对临时数据库中存储的待迁移的数据进行计算。
加载单元805,用于将转换后的待迁移的数据加载到目标数据库中。
优选地,系统还包括调试服务单元,用于按照设定时间或设定频率执行数据迁移方法。
优选地,系统还包括日志管理单元,用于建立监测数据迁移过程的日志,日志包括:执行过程日志、错误日志和总体日志。
本发明优选实施方式的数据迁移系统800与本发明另一优选实施方式的数据迁移方法100相对应,在此不再进行赘述。
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。
Claims (10)
1.一种数据迁移方法,所述方法包括:
将已设定好任务的属性元数据转化成数据库查询语句,建立临时数据库,通过所述临时数据库存储待迁移的数据;
执行所述数据库查询语句,将所述待迁移的数据从源数据库中抽取,并将所述待迁移的数据存储到所述临时数据库中;
按照任务中已经定义的数据清洗规则对所述临时数据库中的所述待迁移的数据进行清洗,删除不符合要求的所述待转换的数据,获取清洗后的所述待迁移的数据;
按照任务中已经定义的数据转换规则将清洗后的所述待迁移的数据进行转换,使得转换后的所述待迁移的数据符合目标数据库的存储要求;
将转换后的所述待迁移的数据加载到所述目标数据库中。
2.根据权利要求1所述的方法,所述数据库查询语句为结构化查询语言SQL语句。
3.根据权利要求1所述的方法,还包括:按照设定时间或设定频率执行所述数据迁移方法。
4.根据权利要求1所述的方法,所述不符合要求的数据包括不完整的数据、错误的数据以及重复的数据,其中:
所述不完整的数据为必要信息缺失的数据;
所述错误的数据为没有经过业务系统判断的输入数据,通过所述数据库查询语句挑选所述错误的数据;
所述重复的数据为通过所述数据库查询语句挑选。
5.根据权利要求1所述的方法,所述按照任务中已经定义的数据转换规则将清洗后的所述待迁移的数据进行转换,包括:
所述数据转换规则包括:不一致的数据转换、数据粒度的转换和商务规则的计算;
所述不一致的数据转换是将所述源数据库中的不同业务系统的相同类型的数据进行统一;
所述数据粒度的转换为按照所述目标数据库的要求将所述临时数据库中存储的业务系统的明细数据进行粒度聚合;
所述商务规则的计算为按照商务规则对所述临时数据库中存储的所述待迁移的数据进行计算。
6.一种数据迁移系统,所述系统包括:
初始单元,用于将已设定好任务的属性元数据转化成数据库查询语句,建立临时数据库,通过所述临时数据库存储待迁移的数据;
抽取单元,用于执行所述数据库查询语句,将所述待迁移的数据从源数据库中抽取,并将所述待迁移的数据存储到所述临时数据库中;
清洗单元,用于按照任务中已经定义的数据清洗规则对所述临时数据库中的所述待迁移的数据进行清洗,删除不符合要求的所述待转换的数据,获取清洗后的所述待迁移的数据;
转换单元,用于按照任务中已经定义的数据转换规则将清洗后的所述待迁移的数据进行转换,使得转换后的所述待迁移的数据符合目标数据库的存储要求;
加载单元,用于将转换后的所述待迁移的数据加载到所述目标数据库中。
7.根据权利要求6所述的系统,所述数据库查询语句为结构化查询语言SQL语句。
8.根据权利要求6所述的系统,还包括调试服务单元,用于按照设定时间或设定频率执行所述数据迁移方法。
9.根据权利要求6所述的系统,所述不符合要求的数据包括不完整的数据、错误的数据以及重复的数据,其中:
所述不完整的数据为必要信息缺失的数据;
所述错误的数据为没有经过业务系统判断的输入数据,通过所述数据库查询语句挑选所述错误的数据;
所述重复的数据为通过所述数据库查询语句挑选。
10.根据权利要求6所述的系统,所述转换单元用于按照任务中已经定义的数据转换规则将清洗后的所述待迁移的数据进行转换,包括:
所述数据转换规则包括:不一致的数据转换、数据粒度的转换和商务规则的计算;
所述不一致的数据转换是将所述源数据库中的不同业务系统的相同类型的数据进行统一;
所述数据粒度的转换为按照所述目标数据库的要求将所述临时数据库中存储的业务系统的明细数据进行粒度聚合;
所述商务规则的计算为按照商务规则对所述临时数据库中存储的所述待迁移的数据进行计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811409852.0A CN109635024A (zh) | 2018-11-23 | 2018-11-23 | 一种数据迁移方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811409852.0A CN109635024A (zh) | 2018-11-23 | 2018-11-23 | 一种数据迁移方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109635024A true CN109635024A (zh) | 2019-04-16 |
Family
ID=66068737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811409852.0A Pending CN109635024A (zh) | 2018-11-23 | 2018-11-23 | 一种数据迁移方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109635024A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209650A (zh) * | 2019-05-05 | 2019-09-06 | 苏宁易购集团股份有限公司 | 数据规整迁移方法、装置、计算机设备和存储介质 |
CN110399209A (zh) * | 2019-07-26 | 2019-11-01 | 中国工商银行股份有限公司 | 数据处理方法、系统、电子设备和存储介质 |
CN110471977A (zh) * | 2019-08-22 | 2019-11-19 | 杭州数梦工场科技有限公司 | 一种数据交换方法、装置、设备、介质 |
CN110532241A (zh) * | 2019-07-18 | 2019-12-03 | 政采云有限公司 | 利用MySQL Binlog进行不停机数据迁移方法 |
CN110569238A (zh) * | 2019-09-12 | 2019-12-13 | 成都中科大旗软件股份有限公司 | 一种基于大数据的数据治理方法、系统、存储介质和服务端 |
CN111125070A (zh) * | 2019-11-19 | 2020-05-08 | 华迪计算机集团有限公司 | 一种数据交换方法及平台 |
CN111694824A (zh) * | 2020-05-25 | 2020-09-22 | 智强通达科技(北京)有限公司 | 一种油料数据链映射清洗的方法 |
CN111858760A (zh) * | 2020-07-13 | 2020-10-30 | 中国工商银行股份有限公司 | 一种异构数据库的数据处理方法及装置 |
WO2021185059A1 (zh) * | 2020-03-20 | 2021-09-23 | 华为技术有限公司 | 一种针对数据库的数据迁移方法及装置 |
CN114090548A (zh) * | 2021-11-29 | 2022-02-25 | 平安科技(深圳)有限公司 | 基于数据库的数据处理方法、装置、设备和存储介质 |
-
2018
- 2018-11-23 CN CN201811409852.0A patent/CN109635024A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209650A (zh) * | 2019-05-05 | 2019-09-06 | 苏宁易购集团股份有限公司 | 数据规整迁移方法、装置、计算机设备和存储介质 |
CN110532241A (zh) * | 2019-07-18 | 2019-12-03 | 政采云有限公司 | 利用MySQL Binlog进行不停机数据迁移方法 |
CN110399209B (zh) * | 2019-07-26 | 2022-02-25 | 中国工商银行股份有限公司 | 数据处理方法、系统、电子设备和存储介质 |
CN110399209A (zh) * | 2019-07-26 | 2019-11-01 | 中国工商银行股份有限公司 | 数据处理方法、系统、电子设备和存储介质 |
CN110471977A (zh) * | 2019-08-22 | 2019-11-19 | 杭州数梦工场科技有限公司 | 一种数据交换方法、装置、设备、介质 |
CN110569238A (zh) * | 2019-09-12 | 2019-12-13 | 成都中科大旗软件股份有限公司 | 一种基于大数据的数据治理方法、系统、存储介质和服务端 |
CN110569238B (zh) * | 2019-09-12 | 2023-03-24 | 成都中科大旗软件股份有限公司 | 一种基于大数据的数据治理方法、系统、存储介质和服务端 |
CN111125070A (zh) * | 2019-11-19 | 2020-05-08 | 华迪计算机集团有限公司 | 一种数据交换方法及平台 |
WO2021185059A1 (zh) * | 2020-03-20 | 2021-09-23 | 华为技术有限公司 | 一种针对数据库的数据迁移方法及装置 |
CN111694824A (zh) * | 2020-05-25 | 2020-09-22 | 智强通达科技(北京)有限公司 | 一种油料数据链映射清洗的方法 |
CN111858760A (zh) * | 2020-07-13 | 2020-10-30 | 中国工商银行股份有限公司 | 一种异构数据库的数据处理方法及装置 |
CN111858760B (zh) * | 2020-07-13 | 2024-03-22 | 中国工商银行股份有限公司 | 一种异构数据库的数据处理方法及装置 |
CN114090548A (zh) * | 2021-11-29 | 2022-02-25 | 平安科技(深圳)有限公司 | 基于数据库的数据处理方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635024A (zh) | 一种数据迁移方法及系统 | |
US11030166B2 (en) | Smart data transition to cloud | |
Lin et al. | Scaling big data mining infrastructure: the twitter experience | |
US20080140692A1 (en) | System and method of data movement between a data source and a destination | |
US20050171930A1 (en) | Dynamic Determination of Transaction Boundaries in Workflow Systems | |
CN107122360A (zh) | 数据迁移系统和方法 | |
CN103441900A (zh) | 集中式跨平台自动化测试系统及其控制方法 | |
US20140067457A1 (en) | Workflow execution framework | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
CN110019251A (zh) | 一种数据处理系统、方法及设备 | |
CN107103064A (zh) | 数据统计方法及装置 | |
CN117312281B (zh) | 一种多源异构数据自动融合方法、系统、设备及存储介质 | |
Merten | Active automata learning for real life applications | |
WO2021037684A1 (en) | System for persisting application program data objects | |
CN113641739B (zh) | 一种基于Spark的智能数据转换方法 | |
CN108021431B (zh) | 基于Web数据交互管理Hive的方法及其系统 | |
EP3657351A1 (en) | Smart data transition to cloud | |
EP3846045B1 (en) | Archiving data in a delta store | |
Krishnakumar et al. | Specification of workflows with heterogeneous tasks in meteor | |
CN112364071A (zh) | 货值数据分析方法及系统 | |
Blagaić et al. | Application for data migration with complete data integrity | |
Gammelgaard | Microservices in. NET | |
Ganesan et al. | ADAM: External dependency-driven architecture discovery and analysis of quality attributes | |
Peng | Kylo Data Lakes Configuration deployed in Public Cloud environments in Single Node Mode | |
Mruts et al. | ALGORITHMIC AND SOFTWARE OF MIGRATION OF DATABASES IN HYPERMARKET NETWORK |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190416 |