一种数据处理方法和装置制造方法

文档序号:6624295阅读:167来源:国知局
一种数据处理方法和装置制造方法
【专利摘要】本发明实施例提供了一种数据处理方法和装置,该方法包括:当需要将第一数据模型库中的数据转换成第二数据模型库中的数据时,获取第一数据模型库中的数据,其中,获取的所述数据的结构为第一数据结构;将获取的所述数据的结构从所述第一数据结构转换成中间模型数据库的中间数据结构;将获取的所述数据的结构从所述中间数据结构转换成所述第二数据库的第二数据结构;将转换后的具有所述第二数据结构的数据保存到所述第二数据模型库中。本申请降低了数据转换的维护成本。
【专利说明】一种数据处理方法和装置

【技术领域】
[0001] 本发明涉及互联网【技术领域】,特别是涉及一种数据处理方法和装置。

【背景技术】
[0002] 在互联网企业的数据库中,存在多种异构数据库。各种数据库的性质不同,因此, 使用的场景也就不同,例如,有些数据库比较灵敏,适用于在线更新,有些数据库容量较大, 适用于离线备份。由于各种数据库的应用场景不同,因此,各种异构数据库之间常常需要进 行一些数据的传递与交互。例如,某线上业务将数据写入数据库A中,而另一业务需要从数 据库B中读出这些数据,因此,需要把数据库A中的数据传递到数据库B中。由于源数据库 和目标数据库可能使用了不同的数据模型,例如,A是基于文档型的数据库,B是基于键值 对的数据库,则在数据传递的过程中,需要对数据模型进行转换。
[0003] 在现有技术中,对两种异构数据模型定义一种数据转换的规则,根据规则可以将 数据库A中的数据转换成数据库B中的数据格式。所有异构数据库之间的数据传递,都可 以依赖这些异构数据库之间定义的规则来进行转换。
[0004] 现有技术是通过定义两个数据模型之间的数据转换规则来实现数据转换的。但 是,随着数据系统的增大,当系统中同时存在多种不同数据模型的数据库时,就必须针对 所有异构数据模型两两之间都分别定义一套数据转换规则,从而使得数据转换规则数量过 多,体系复杂庞大。例如,如果有5种不同数据模型的数据库之间需要数据交互,根据现有 技术,就需要为这5种数据库两两之间分别定义一套数据转换规则。另外,在使用现有技术 的方案时,如果需要增加新的数据模型,产生的成本也较大,这是因为,需要定义该新数据 模型和所有旧数据模型之间的转换规则,如果原系统中有η种不同的数据模型,此时添加 一个新数据模型,就需要添加 η套相应的数据转换规则。
[0005] 因此,目前需要本领域技术人员迫切解决的一个技术问题就是:降低数据转换的 维护成本。


【发明内容】

[0006] 本发明实施例所要解决的技术问题是提供一种数据处理方法,以便降低数据转换 的维护成本。
[0007] 相应的,本发明实施例还提供了一种数据处理装置,用以保证上述方法的实现及 应用。
[0008] 为了解决上述问题,本发明公开了一种数据处理方法,包括:当需要将第一数据模 型库中的数据转换成第二数据模型库中的数据时,获取第一数据模型库中的数据,其中,获 取的所述数据的结构为第一数据结构;将获取的所述数据的结构从所述第一数据结构转换 成中间模型数据库的中间数据结构;将获取的所述数据的结构从所述中间数据结构转换成 所述第二数据库的第二数据结构;将转换后的具有所述第二数据结构的数据保存到所述第 二数据模型库中。
[0009] 优选地,所述中间数据结构包括:唯一标识值和与所述唯一标识值对应的数据内 容。
[0010] 优选地,当所述第一数据模型库为基于键值对的数据模型时,将获取的所述数据 的结构从所述第一数据结构转换成中间模型数据库的中间数据结构,包括:将获取的所述 数据的键映射为所述唯一标识值;将获取的所述数据的值映射为所述唯一标识值对应的数 据内容。
[0011] 优选地,当所述第一数据模型库为基于文档的数据模型时,将获取的所述数据的 结构从所述第一数据结构转换成中间模型数据库的中间数据结构,包括:将获取的所述数 据的标识ID映射为所述唯一标识值;将获取的所述数据的文档映射为所述唯一标识值对 应的数据内容。
[0012] 优选地,当所述第一数据模型库为面向列的数据模型时,将获取的所述数据的结 构从所述第一数据结构转换成中间模型数据库的中间数据结构,包括:将获取的所述数据 的行标识映射为所述唯一标识值;将获取的所述数据的一行中所有列簇的值映射为所述唯 一标识值对应的数据内容。
[0013] 优选地,将获取的所述数据的列簇的值映射为所述唯一标识值对应的数据内容, 包括:将获取的所述数据的所有列簇中的值映射为一个阵列,其中,每个列簇中的值组成一 个子阵列。
[0014] 优选地,当所述第二数据模型库为基于键值对的数据模型时,将获取的所述数据 的结构从所述中间数据结构转换成所述第二数据库的第二数据结构,包括:将获取的所述 数据的唯一标识值映射为键;将获取的所述数据的与所述唯一标识值对应的数据内容映射 为与所述键对应的值。
[0015] 优选地,当所述第二数据模型库为基于文档的数据模型时,将获取的所述数据的 结构从所述中间数据结构转换成所述第二数据库的第二数据结构,包括:将获取的所述数 据的所述唯一标识值映射为标识ID ;将获取的所述数据的与所述唯一标识值对应的数据 内容映射为与所述ID对应的文档。
[0016] 优选地,当所述第二数据模型库为面向列的数据模型时,将获取的所述数据的结 构从所述中间数据结构转换成所述第二数据库的第二数据结构,包括:将获取的所述数据 的所述唯一标识值映射为行标识;将获取的所述数据的与所述唯一标识值对应的数据内容 映射为与所述行标识对应的列簇的值。
[0017] 为了解决上述问题,本发明公开了一种数据处理装置,包括:获取单元,用于当需 要将第一数据模型库中的数据转换成第二数据模型库中的数据时,获取第一数据模型库中 的数据,其中,获取的所述数据的结构为第一数据结构;第一转换单元,用于将获取的所述 数据的结构从所述第一数据结构转换成中间模型数据库的中间数据结构;第二转换单元, 用于将获取的所述数据的结构从所述中间数据结构转换成所述第二数据库的第二数据结 构;保存单元,用于将转换后的具有所述第二数据结构的数据保存到所述第二数据模型库 中。
[0018] 优选地,所述中间数据结构包括:唯一标识值和与所述唯一标识值对应的数据内 容。
[0019] 优选地,当所述第一数据模型库为基于键值对的数据模型时,所述第一转换单元 用于:
[0020] 将获取的所述数据的键映射为所述唯一标识值;
[0021] 将获取的所述数据的值映射为所述唯一标识值对应的数据内容。
[0022] 优选地,当所述第一数据模型库为基于文档的数据模型时,所述第一转换单元用 于:
[0023] 将获取的所述数据的标识ID映射为所述唯一标识值;
[0024] 将获取的所述数据的文档映射为所述唯一标识值对应的数据内容。
[0025] 优选地,当所述第一数据模型库为面向列的数据模型时,所述第一转换单元用 于:
[0026] 将获取的所述数据的行标识映射为所述唯一标识值;
[0027] 将获取的所述数据的一行中所有列簇的值映射为所述唯一标识值对应的数据内 容。
[0028] 优选地,所述第一转换单元用于:
[0029] 将获取的所述数据的所有列簇中的值映射为一个阵列,其中,每个列簇中的值组 成一个子阵列。
[0030] 与现有技术相比,本发明实施例包括以下优点:
[0031] 在现有技术中,对多个异构数据库中的每两个数据库之间都要建立转换规则,从 而使得数据转换规则数量过多,体系复杂庞大,维护成本也较高;并且,当新增数据库时, 需要建立新增数据库和所有旧数据库之间的转换规则,从而产生较高的成本。而在本申请 中,在对数据库中的数据进行转换时,将源数据库的数据转换成中间模型数据库的数据,然 后再转换成目标数据库的数据,这样,只需要建立各个数据库到中间模型数据库的转换规 则即可,减少了数据转换规则的数量,降低了维护成本;并且,当需要新增数据库时,只需要 建立该新增数据库和中间模型数据库之间的转换规则即可,降低了新增数据库所产生的成 本。

【专利附图】

【附图说明】
[0032] 图1是本发明的一种数据处理方法实施例的步骤流程图;
[0033] 图2是现有技术中三种数据模型的数据结构示意图;
[0034] 图3是本发明的面向列数据模型到中间数据结构的转换的示意图;
[0035] 图4是本发明的一种数据处理装置实施例的结构框图。

【具体实施方式】
[0036] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。
[0037] 本发明实施例的核心构思之一在于,当需要将第一数据模型库中的数据转换成第 二数据模型库中的数据时,获取第一数据模型库中的数据,其中,获取的数据的结构为第一 数据结构;将获取的数据的结构从第一数据结构转换成中间模型数据库的中间数据结构; 将获取的数据的结构从中间数据结构转换成第二数据库的第二数据结构;将转换后的具有 第二数据结构的数据保存到第二数据模型库中。在本申请中,在对数据库中的数据进行转 换时,将源数据库的数据转换成中间模型数据库的数据,然后再转换成目标数据库的数据, 这样,只需要建立各个数据库到中间模型数据库的转换规则即可,减少了数据转换规则的 数量,降低了维护成本;并且,当需要新增数据库时,只需要建立该新增数据库和中间模型 数据库之间的转换规则即可,降低了新增数据库所产生的成本。
[0038] 参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,具体可以包括 如下步骤:
[0039] 步骤102,当需要将第一数据模型库中的数据转换成第二数据模型库中的数据时, 获取第一数据模型库中的数据,其中,获取的数据的结构为第一数据结构;
[0040] 对于不同的数据库系统,数据的格式和存储模型可能是不同的。不用的数据库具 有不同的用途,有时需要从数据库B中读取数据库A的数据,此时,就需要将数据库A中的 数据转换成数据库中的数据。在转换时,第一数据模型库为源数据库,源数据库中的数据具 有第一数据结构,第二数据模型库为目标数据库,目标数据库中的数据具有第二数据结构, 当需要将源数据库的数据转换成目标数据库中的数据时,从源数据库中获取需要转换的 数据。
[0041] 步骤104,将获取的数据的结构从第一数据结构转换成中间模型数据库的中间数 据结构;
[0042] 为了实现到中间数据结构的转换,首先需要确定出合适的中间数据结构,使得各 种数据库中的数据能够方便地转换成中间数据结构。可以通过主流的数据模型来确定出中 间数据模型库的中间数据结构。表1中列出了四种比较主流的开源非关系型数据库系统 (NoSQL)。它们都是许多大型互联网公司经常使用的数据库,相应的数据模型结构如表中所 /_J、1 〇
[0043] 表 1
[0044]

【权利要求】
1. 一种数据处理方法,其特征在于,包括: 当需要将第一数据模型库中的数据转换成第二数据模型库中的数据时,获取第一数据 模型库中的数据,其中,获取的所述数据的结构为第一数据结构; 将获取的所述数据的结构从所述第一数据结构转换成中间模型数据库的中间数据结 构; 将获取的所述数据的结构从所述中间数据结构转换成所述第二数据库的第二数据结 构; 将转换后的具有所述第二数据结构的数据保存到所述第二数据模型库中。
2. 根据权利要求1所述的方法,其特征在于,所述中间数据结构包括:唯一标识值和与 所述唯一标识值对应的数据内容。
3. 根据权利要求2所述的方法,其特征在于,当所述第一数据模型库为基于键值对的 数据模型时,将获取的所述数据的结构从所述第一数据结构转换成中间模型数据库的中间 数据结构,包括: 将获取的所述数据的键映射为所述唯一标识值; 将获取的所述数据的值映射为所述唯一标识值对应的数据内容。
4. 根据权利要求2所述的方法,其特征在于,当所述第一数据模型库为基于文档的数 据模型时,将获取的所述数据的结构从所述第一数据结构转换成中间模型数据库的中间数 据结构,包括: 将获取的所述数据的标识ID映射为所述唯一标识值; 将获取的所述数据的文档映射为所述唯一标识值对应的数据内容。
5. 根据权利要求2所述的方法,其特征在于,当所述第一数据模型库为面向列的数据 模型时,将获取的所述数据的结构从所述第一数据结构转换成中间模型数据库的中间数据 结构,包括: 将获取的所述数据的行标识映射为所述唯一标识值; 将获取的所述数据的一行中所有列簇的值映射为所述唯一标识值对应的数据内容。
6. 根据权利要求5所述的方法,其特征在于,将获取的所述数据的列簇的值映射为所 述唯一标识值对应的数据内容,包括: 将获取的所述数据的所有列簇中的值映射为一个阵列,其中,每个列簇中的值组成一 个子阵列。
7. 根据权利要求2所述的方法,其特征在于,当所述第二数据模型库为基于键值对的 数据模型时,将获取的所述数据的结构从所述中间数据结构转换成所述第二数据库的第二 数据结构,包括: 将获取的所述数据的唯一标识值映射为键; 将获取的所述数据的与所述唯一标识值对应的数据内容映射为与所述键对应的值。
8. 根据权利要求2所述的方法,其特征在于,当所述第二数据模型库为基于文档的数 据模型时,将获取的所述数据的结构从所述中间数据结构转换成所述第二数据库的第二数 据结构,包括: 将获取的所述数据的所述唯一标识值映射为标识ID ; 将获取的所述数据的与所述唯一标识值对应的数据内容映射为与所述ID对应的文 档。
9. 根据权利要求2所述的方法,其特征在于,当所述第二数据模型库为面向列的数据 模型时,将获取的所述数据的结构从所述中间数据结构转换成所述第二数据库的第二数据 结构,包括: 将获取的所述数据的所述唯一标识值映射为行标识; 将获取的所述数据的与所述唯一标识值对应的数据内容映射为与所述行标识对应的 列簇的值。
10. -种数据处理装置,其特征在于,包括: 获取单元,用于当需要将第一数据模型库中的数据转换成第二数据模型库中的数据 时,获取第一数据模型库中的数据,其中,获取的所述数据的结构为第一数据结构; 第一转换单元,用于将获取的所述数据的结构从所述第一数据结构转换成中间模型数 据库的中间数据结构; 第二转换单元,用于将获取的所述数据的结构从所述中间数据结构转换成所述第二数 据库的第二数据结构; 保存单元,用于将转换后的具有所述第二数据结构的数据保存到所述第二数据模型库 中。
11. 根据权利要求10所述的装置,其特征在于,所述中间数据结构包括:唯一标识值和 与所述唯一标识值对应的数据内容。
12. 根据权利要求11所述的装置,其特征在于,当所述第一数据模型库为基于键值对 的数据模型时,所述第一转换单元用于: 将获取的所述数据的键映射为所述唯一标识值; 将获取的所述数据的值映射为所述唯一标识值对应的数据内容。
13. 根据权利要求11所述的装置,其特征在于,当所述第一数据模型库为基于文档的 数据模型时,所述第一转换单元用于: 将获取的所述数据的标识ID映射为所述唯一标识值; 将获取的所述数据的文档映射为所述唯一标识值对应的数据内容。
14. 根据权利要求11所述的装置,其特征在于,当所述第一数据模型库为面向列的数 据模型时,所述第一转换单元用于: 将获取的所述数据的行标识映射为所述唯一标识值; 将获取的所述数据的一行中所有列簇的值映射为所述唯一标识值对应的数据内容。
15. 根据权利要求14所述的装置,其特征在于,所述第一转换单元用于: 将获取的所述数据的所有列簇中的值映射为一个阵列,其中,每个列簇中的值组成一 个子阵列。
【文档编号】G06F17/30GK104216961SQ201410415600
【公开日】2014年12月17日 申请日期:2014年8月21日 优先权日:2014年8月21日
【发明者】孙琦, 叶炜晨, 刘俊晖 申请人:北京奇艺世纪科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1