CN104781814A - 从单个表到多个表的引用数据分割 - Google Patents
从单个表到多个表的引用数据分割 Download PDFInfo
- Publication number
- CN104781814A CN104781814A CN201380059672.3A CN201380059672A CN104781814A CN 104781814 A CN104781814 A CN 104781814A CN 201380059672 A CN201380059672 A CN 201380059672A CN 104781814 A CN104781814 A CN 104781814A
- Authority
- CN
- China
- Prior art keywords
- multilist
- data
- defined file
- conversion
- script
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例能够被用于通过执行多表数据分割来提高交叉引用查找性能。根据实施例,一种多表数据分割的方法能够包括:利用多表数据加强与数据库表关联的多个定义文件中的每个定义文件。该方法还能够包括:创建多个多表。每个多表与所述多个定义文件中的一个不同定义文件关联。该方法还能够包括:基于所述多个定义文件转换存储在数据库表中的数据;以及将转换的数据从数据库表迁移到所述多个多表。
Description
背景技术
本发明的实施例一般地涉及用于提供从单个表到多个表的引用数据分割的方法和系统,并且更具体地讲,涉及通过自动地将交叉引用数据从一个表迁移到多个表中来提高交叉引用查找性能。
目前,公司使用许多不同软件应用以满足不同业务需要。例如,公司可使用用于顾客交互、账户管理、产品配送等的不同应用。每个应用可能使用它自己的特定数据模型,意味着一个应用的数据可被以不同于另一应用的数据的方式来格式化或组织。即使当应用数据在两个应用中代表相同实体时,这也能够使得难以或无法实现应用之间的应用数据的直接共享。
应用集成是能够使应用能够共享数据的处理,减少通过针对每个应用重复地手工重新输入数据而引入的负担和错误的可能性。实现应用集成的一个方式是使用交叉引用(XREF)数据库,XREF数据库链接每个应用的标识符(ID)并且具有公共格式。当在应用之间传递数据时,能够使用存储在XREF数据库中的信息来变换数据。例如,当第一应用将数据发送给第二应用时,数据能够被从与第一应用关联的第一格式变换为公共格式,然后从公共格式变换为与第二应用关联的第二格式。
XREF数据通常被存储在单个数据库表中。这个表能够变得非常大,包括数亿行。随着表的大小增加,在该表中查找XREF数据所需的时间增加,并且能够导致性能的瓶颈。
发明内容
本发明的实施例涉及通过自动地将交叉引用数据从一个表迁移到多个表来提高交叉引用查找性能的方法和系统。根据实施例,一种多表数据分割的方法能够包括:利用多表(multi-table)数据加强与数据库表关联的多个定义文件中的每个定义文件。该方法还能够包括创建多个多表。每个多表与所述多个定义文件中的不同定义文件关联。该方法还能够包括:基于所述多个定义文件转换存储在数据库表中的数据;以及将转换的数据从数据库表迁移到所述多个多表。在一些实施例中,多表数据能够包括与多表之一关联的标识符和多表标记。
在一些实施例中,能够通过下述步骤来创建所述多个多表:解析每个定义文件以确定该定义文件的表信息;自动地产生多个脚本,其中每个脚本定义多表之一,并且其中使用从定义文件中的一个不同定义文件解析的表信息产生每个脚本;以及执行所述多个脚本中的每个脚本以创建所述多个多表。另外,能够创建将每个定义文件映射到它的关联的多表的映射定义表。
在一些实施例中,转换存储在数据库表中的数据能够包括:产生用于每个定义文件的转换脚本。每个转换脚本能够定义与该定义文件关联的数据如何被分割和变换以与该定义文件的关联的多表兼容。另外,将转换的数据从数据库表迁移到所述多个多表能够包括:执行每个转换脚本以分割和变换与每个定义文件关联的数据。一旦被分割和变换,数据能够被从数据库表复制到所述多个多表。另外,在迁移完成之后,迁移的数据能够被验证。
附图说明
图1示出了根据本发明的实施例的示例性交叉引用表的摘录;
图2示出了根据本发明的实施例的用于执行多数据分割的系统;
图3示出了根据本发明的实施例的执行多数据分割的方法;
图4A、4B和4C示出了根据本发明的实施例的示例性迁移的多表;
图5示出了根据本发明的实施例的示例性监测表;
图6是表示根据本发明的某些实施例的可使用的系统环境的部件的简化方框图;和
图7是根据本发明的实施例的可使用的计算系统的简化方框图。
具体实施方式
在下面的描述中,为了解释的目的,阐述特定细节以便提供对本发明的实施例的彻底的理解。然而,将会清楚的是,可在没有这些特定细节的情况下实施本发明实施例。
本发明的实施例能够被用于通过执行多表数据分割来提高交叉引用查找性能。根据实施例,一种多表数据分割的方法能够包括:利用多表数据加强与数据库表关联的多个定义文件中的每个定义文件。该方法还能够包括创建多个多表。每个多表与所述多个定义文件中的一个不同定义文件关联。该方法还能够包括:基于所述多个定义文件转换存储在数据库表中的数据;以及将转换的数据从数据库表迁移到所述多个多表。
图1示出了本发明的示例性交叉引用表100的摘录。如图1中所示,交叉引用表能够包括用于在不同应用中创建的多个不同实体的交叉引用(XREF)数据。交叉引用表能够被用于使这些实体的标识相关,并且可能随着由业务使用的应用和实体的数量增加而变得非常大。能够通过XREF表名(XREF TABLE NAME)102和行号(ROW NUMBER)104来组织交叉引用表。XREF表名102与构成交叉引用表的多个组成假想表对应。例如,在图1中,示出的交叉引用表的部分对应于Business_Unit_ID XREF实体,并且因此在XREF表名102列下列出Business_Unit_ID XREF产物(artifact)106的路径。如以下进一步所述,每个XREF产物可以是定义与该XREF产物关联的XREF实体和交叉引用表中的其它实体的映射的XML文件。如在108所示,未示出的另外的行可与不同XREF实体的不同假想表对应。
每个行号104代表与该行的XREF_Table_Name对应的XREF实体的不同实例。因此,行号3、4和5中的每一个与Business_Unit_ID的不同实例对应。例如,如图1中所示,映射存在于两个应用标识符(ID)和Business_Unit_ID XREF实体中的每个实例的公共值(EBIZ_01110;JDEE1_01112;和COMMON 114)之间。因此,例如针对与行号3对应的实例,EBIZ_01_03、JDEE1_01_03和Common_03中的每一个彼此映射。
图2示出了根据本发明的实施例的用于执行多数据分割的系统。如图2中所示,这种系统能够包括服务器200和服务器可访问的交叉引用数据库202。根据实施例,服务器能够直接地、经局域网或经互联网与数据库通信。服务器能够是包括计算机可读介质和处理器的计算机或一群计算机。服务器能够包括在它上面执行的多表数据分割工具204。交叉引用数据库202能够包括XREF_DATA表206,XREF_DATA表206包括如以上参照图1所述的交叉引用数据。使用多表数据分割工具204,存储在XREF_DATA表206中的交叉引用数据能够被分割并且迁移到多个多表208。以下更详细地描述这个处理。
图3示出了根据本发明的实施例的执行多数据分割的方法。根据实施例,以下描述的方法能够由以上参照图2描述的多表数据分割工具执行。随着单个交叉引用表变大,查找引用所花费的增加的时间会导致性能瓶颈。在这种情况下,将所述单个交叉引用表划分为多个较小的表会是有益的,每个较小的表对应于不同XREF产物。这些较小的表中的每一个在这里被称为多表,并且将交叉引用表划分为多个多表的处理在这里被称为多数据分割。
如图3中所示,多数据分割能够包括多个步骤以确保交叉引用数据被准确地迁移并且仍然能够根据需要被快速地识别和使用。根据本发明的实施例,提供多数据分割处理以产生、整理(Regiment)、转换、迁移和验证从一个单个交叉引用表到多个交叉引用多表的数据。
在步骤300,为多表产生新的交叉引用定义。这些定义能够被用于定义将要创建的多表数据库表的结构。在步骤302,产生新的交叉引用定义能够包括:扫描数据库以识别原始交叉引用定义文件(在这里还被称为XREF产物),以及随后使用这种信息导出新的交叉引用定义。在步骤304,每个新的定义文件能够被加强以包括多表数据,并且能够基于加强的定义文件产生脚本,诸如SQL脚本。这些脚本在被执行时能够创建与加强的定义文件对应的新的多表。这个多表数据能够是另外的元数据,所述另外的元数据包括指示XREF数据已被移动到多表的标记和XREF数据已被移动到的多表的标识符。例如,如以下所示,在<table>节点下面:在这个例子中,通过使用值“specific”,“mode”属性能够被用作用于指示XREF数据已被移动到多表的标记。“dbtable”属性能够包括该多表的标识符,诸如将会在数据库中创建的对应多表的名称。
列表1.具有更新的元数据的XREF产物:
在步骤306,在产生新的交叉引用定义文件之后,能够识别和定义新的多表数据库表。根据实施例,在步骤308,通过对于每个新的交叉引用定义文件创建一个新的对应多表来把新的多表作为目标。每个新的交叉引用定义文件能够被解析以确定将要在创建新的多表时使用的合适的信息,诸如表名、列名、列的数量等。能够根据每个新的交叉引用定义文件中的“dbtable”元数据来命名每个表。利用一一对应关系,能够从每个新的交叉引用定义文件中的<column>元素中确定每个多表的细节,诸如列的数量和列名。
列表2.用于BUSINESS_UNIT_ID的新的交叉引用产物的示例性多表模式(schema)
如以上在列表2中所示,新的多表的每个行能够包括从新的交叉引用定义导出的列。另外,根据实施例,能够添加两个另外的列ROW_ID和LAST_MODIFIED。根据实施例,数据库表名或其它标识符可具有有限的长度,因此在步骤310,能够创建映射表以将定义文件中的多表标识符链接到它的对应的实际数据库表标识符。根据实施例,能够使用一个或多个SQL脚本创建每个新的多表数据库表。
在步骤312,转换XREF数据。在转换步骤期间,在步骤314,以一个或多个SQL脚本的形式产生用于在多表上分割数据的执行计划,对于每个新的交叉引用产物创建一个脚本。能够根据给定交叉引用定义的XREF数据是否被完全映射以不同方式执行转换。对于具有完全映射的数据的原始表中的每个交叉引用产物,产物的列具有为每个行号定义的值。为了迁移这些完全映射的表,数据能够被整批地转换为对应多表的格式。
非完全映射的多表可包括空值和/或一对多映射。多表中的空值是由缺少某些交叉引用产物的列的映射值的原始单个交叉引用表造成的。在这种情况下,像在完全映射的表的情况下一样,数据能够被转换以用于迁移。对于具有一对多映射的表,一个应用的ID被映射到另一应用的多个ID——即,一个列中的值可与表的另一列中的几个值对应。具有一对多映射的产物能够使它们的数据一次一行地从单个交叉引用表迁移。
在步骤316,通过执行在步骤314期间产生的脚本,XREF数据被从单个交叉引用表迁移到每个对应的多表。每个脚本将用于每个新的交叉引用产物的数据分割和变换为与该新的交叉引用产物的多表兼容的形式,然后将分割和变换的数据复制到新的多表中。如在318所示,每个脚本能够被设计用于并行执行以提高性能。
图4A、4B和4C示出了根据本发明的实施例的示例性迁移的多表。图4A示出了根据实施例的用于XREF_BUSINESS_UNIT产物的示例性迁移的完全映射的表。如图4A中所示,每个行ID(ROWID)400对应于图1中的行号104。类似地,已按照列表2中示出的模式为EBIZ_01110、JDEE1_01112和COMMON 114创建列。另外,已添加新的上次修改(LAST MODIFIED)列402,该列包括上次修改行的日期。
图4B示出了交叉引用产物包括空值的例子。如果在实体的交叉引用定义中为实体定义了列但没有值被赋予该列,则在XREF_DATA表中不显示该列。在整理步骤306期间识别包括空值的列并且包括空值的列被包括在关联的多表中。如图4B中所示,与多表404关联的实体包括三个应用ID的列:EBIZ_01406、AGILE_01408和PLM4P 410。由于没有值被赋予PLM4P,所以每个条目被指示为(空)412。
图4C示出了交叉引用产物包括一对多映射的例子。具有一对多映射的迁移的产物具有如下所获得的多表:在该多表中,一个或多个列中的单个值被映射到不同列中的多个值。如图4C中所示,对于每个不同行ID存在一个“完全”行,并且其它映射值在它们自己的行中仅具有该行ID和其它列的空值。在图4C的例子中,每个OTM_01值414映射到三个EBIZ_01值416(例如,OTM_01_1028映射到EBIZ_01_1028A、EBIZ_01_1028B和EBIZ_01_1028C)。在所获得的多表中,共享相同行ID(例如1028)的三个行组合以形成完全地定义该映射的一个“完全”行。根据实施例,替代于在多个行的每个列中重复数据,(空)能够被插入到表中,如在418所示。
返回到图3,在步骤320,验证迁移。该验证能够核查分割处理和结果的完整性。在迁移期间,监测统计数据被收集并且存储在监测表中。这使迁移能够被核查以确认已针对每个交叉引用产物完成数据分割处理而没有错误。
图5示出了根据本发明的实施例的示例性监测表。为了确保所有产物被迁移,能够在数据分割的末尾执行结果检查SQL脚本,以将与多表关联的度量和与XREF_DATA表关联的度量进行比较。如图5中所示,监测表500能够存储关于每个XREF实体和该实体的数据的迁移的信息。这能够包括XREF产物名502和在原始XREF_DATA表中与这个产物关联的行的数量504。根据实施例,该行的数量504不包括如上所述能够被单独迁移的一对多行。监测表还能够被用于跟踪已被迁移的行的数量506。以这种方式,迁移能够成批地发生,这在发生错误的情况下节省了时间和处理需求。例如,如果一百万个行将要被迁移并且发生需要所有一百万个行的回退(roll-back)的错误,则这为系统带来巨大的处理负担。然而,通过跟踪迁移进展并且以例如一万个行的批量进行,则能够利用小得多的回退来解决错误。通过存储XREF_DATA中的一对多行的数量508和已被迁移的一对多行的数量510,能够类似于“普通”行单独地跟踪一对多行。还能够为迁移记录时间戳,所述时间戳包括处理开始的时间512、一对多行识别开始的时间514和一对多行识别的总时间516。另外,“普通”行处理开始的时间518和普通行处理的总时间520;以及类似地,一对多行处理开始的时间522和一对多行处理的总时间524。如果错误发生,则能够存储异常标记526,异常标记526指示当前处理批次需要被回退和重新执行。根据实施例,为了验证迁移,能够执行一个或多个验证脚本,所述一个或多个验证脚本将迁移的产物的数量与原始XREF_DATA表中的唯一交叉引用定义的数量进行比较;为了有效,这些数量应该是相等的。另外,原始表中的行的数量能够被与迁移的行的数量进行比较,为了有效,这些数量也应该是相等的。
在一些实施例中,一种用于多表数据分割的设备包括:用于利用多表数据加强与数据库表关联的多个定义文件中的每个定义文件的装置;用于创建多个多表的装置,其中每个多表与所述多个定义文件中的一个不同定义文件关联;用于基于所述多个定义文件转换存储在数据库表中的数据的装置;和用于将转换的数据从数据库表迁移到所述多个多表的装置。
在一些实施例中,所述多表数据包括与多表之一关联的标识符和多表标记。
在一些实施例中,所述用于创建多个多表的装置还包括:用于解析每个定义文件以确定该定义文件的表信息的装置,其中表信息包括名称、列的数量和列名;用于自动地产生多个脚本的装置,其中每个脚本定义多表之一,并且其中使用从定义文件中的一个不同定义文件解析的表信息产生每个脚本;和用于执行所述多个脚本中的每个脚本以创建所述多个多表的装置。
在一些实施例中,所述设备还包括:用于创建映射定义表的装置,其中映射定义表将每个定义文件映射到它的关联的多表。
在一些实施例中,所述用于基于所述多个定义文件转换存储在数据库表中的数据的装置还包括:用于产生用于每个定义文件的转换脚本的装置,其中每个转换脚本定义与该定义文件关联的数据如何被分割和变换以与该定义文件的关联的多表兼容。
在一些实施例中,所述用于将转换的数据从数据库表迁移到所述多个多表的装置还包括:用于执行每个转换脚本以分割和变换与每个定义文件关联的数据的装置;和用于将分割和变换的数据从数据库表复制到所述多个多表的装置。
在一些实施例中,所述设备还包括:用于验证转换的数据已被成功地迁移到所述多个多表的装置。
在一些实施例中,一种用于多表数据分割的系统包括:数据库,包括多个定义文件;和服务器,以可访问方式连接到数据库并且包括多表数据分割工具,所述多表数据分割工具能用于:利用多表数据加强所述多个定义文件中的每个定义文件;创建多个多表,其中每个多表与所述多个定义文件中的一个不同定义文件关联;基于所述多个定义文件转换存储在数据库表中的数据;以及将转换的数据从数据库表迁移到所述多个多表。
在一些实施例中,所述多表数据分割工具创建多个多表,其中每个多表与所述多个定义文件中的一个不同定义文件关联,所述多表数据分割工具还能用于:解析每个定义文件以确定该定义文件的表信息,其中表信息包括名称、列的数量和列名;自动地产生多个脚本,其中每个脚本定义多表之一,并且其中使用从定义文件中的一个不同定义文件解析的表信息产生每个脚本;以及执行所述多个脚本中的每个脚本以创建所述多个多表。
在一些实施例中,所述多表数据分割工具还能用于:产生映射定义表,其中映射定义表将每个定义文件映射到它的关联的多表;以及产生存储关于迁移的数据的监测表,其中监测表能够由多表数据分割工具使用以验证迁移。
在一些实施例中,当多表数据分割工具基于所述多个定义文件转换存储在数据库表中的数据时,所述多表数据分割工具还能用于:产生用于每个定义文件的转换脚本,其中每个转换脚本定义与该定义文件关联的数据如何被分割和变换以与该定义文件的关联的多表兼容。
在一些实施例中,当多表数据分割工具将转换的数据从数据库表迁移到所述多个多表时,所述多表数据分割工具还能用于:执行每个转换脚本以分割和变换与每个定义文件关联的数据;以及将分割和变换的数据从数据库表复制到所述多个多表。
图6是表示根据本发明的某些实施例的可使用的系统环境600的部件的简化方框图。如图中所示,系统环境600包括一个或多个客户端计算装置602、604、606、608,所述一个或多个客户端计算装置602、604、606、608被构造为操作客户端应用,诸如web浏览器、专有客户端(例如Oracle Forms)等。在各种实施例中,客户端计算装置602、604、606和608可与服务器612交互。
客户端计算装置602、604、606、608可以是通用个人计算机(作为例子,包括运行各种版本的Microsoft Windows和/或AppleMacintosh操作系统的个人计算机和/或膝上型计算机)、蜂窝电话或PDA(运行诸如Microsoft Windows Mobile的软件并且启用了互联网、电子邮件、SMS、Blackberry或其它通信协议)和/或运行各种可购买得到的UNIX或像UNIX一样的操作系统(非限制性地包括各种GNU/Linux操作系统)中的任何操作系统的工作站计算机。替代地,客户端计算装置602、604、606和608可以是任何其它电子装置,诸如瘦客户端计算机、启用互联网的游戏系统和/或能够经网络(例如以下描述的网络610)通信的个人消息传送装置。虽然系统环境600被示出为具有四个客户端计算装置,但可支持任何数量的客户端计算装置。其它装置(诸如具有传感器等的装置)可与服务器612交互。可从一个或多个客户端装置接收授权请求。
系统环境600可包括网络610。网络610可以是能够支持使用各种可购买得到的协议(非限制性地包括TCP/IP、SNA、IPX、AppleTalk等)中的任何协议的数据通信的本领域技术人员熟悉的任何类型的网络。仅作为例子,网络610能够是:局域网(LAN),诸如以太网网络、令牌环网等;广域网;虚拟网络,非限制性地包括虚拟专用网(VPN);互联网;内联网;外联网;公共交换电话网络(PSTN);红外网络;无线网络(例如在本领域已知的IEEE 802.11协议组、Bluetooth协议和/或任何其它无线协议中的任何协议下操作的网络);和/或这些和/或其它网络的任何组合。
系统环境600还包括一个或多个服务器计算机612,所述一个或多个服务器计算机612可以是通用计算机、专用服务器计算机(作为例子,包括PC服务器、UNIX服务器、中程服务器、大型计算机、安装在机架上的服务器等)、服务器农场、服务器集群或任何其它合适的布置和/或组合。在各种实施例中,服务器612可适应于运行在前面的公开中描述的一个或多个服务或软件应用。
服务器612可运行操作系统,所述操作系统包括以上讨论的操作系统中的任何操作系统以及任何可购买得到的服务器操作系统。服务器612还可运行各种另外的服务器应用和/或中层应用中的任何应用,包括HTTP服务器、FTP服务器、CGI服务器、Java服务器、数据库服务器等。示例性数据库服务器非限制性地包括可从Oracle、Microsoft、Sybase、IBM等购买得到的数据库服务器。
系统环境600还可包括一个或多个数据库614、616。数据库614、616可位于各种位置。作为例子,数据库614、616中的一个或多个可位于在服务器612的本地的存储介质上(和/或位于服务器612中)。替代地,数据库614、616可相对于服务器612位于远处,并且经基于网络的连接或专用连接与服务器612通信。在一组实施例中,数据库614、616可位于本领域技术人员熟悉的存储区域网络(SAN)中。类似地,视情况而定,用于执行归属于服务器612的功能的任何所需的文件可在本地存储在服务器612上和/或远程地存储。在一组实施例中,数据库614、616可包括适应于响应于SQL格式化的命令和其它命令存储、更新和检索数据的关系数据库,诸如Oracle 10g、11g、Release 12等。在一个实施例中,被构造为控制一组资源的策略可由数据库之一存储。
图7是根据本发明的实施例的可使用的计算系统700的简化方框图。例如,可使用诸如系统700的系统实现图2中描述的系统。计算机系统700被示出为包括可经总线724以电气方式耦合的硬件元件。硬件元件可包括一个或多个中央处理单元(CPU)702、一个或多个输入装置704(例如鼠标、键盘等)和一个或多个输出装置706(例如显示装置、打印机等)。CPU可包括单核或多核CPU。计算机系统700还可包括一个或多个存储装置708。作为例子,存储装置708可包括能够可编程、可闪速更新等的装置,诸如盘驱动器、光学存储装置和固态存储装置(诸如随机存取存储器(RAM)和/或只读存储器(ROM))。
计算机系统700可另外包括计算机可读存储介质读取器712、通信子系统714(例如调制解调器、网卡(无线或有线)、红外通信装置等)和工作存储器718,工作存储器718可包括如上所述的RAM和ROM装置。在一些实施例中,计算机系统700还可包括处理加速单元716,处理加速单元716能够包括数字信号处理器(DSP)、专用处理器等。
计算机可读存储介质读取器712还能够连接到计算机可读存储介质710,一起(并且可选地结合存储装置708)全面地代表用于暂时地和/或更持久地包含计算机可读信息的远程、本地、固定和/或可移除存储装置以及存储介质。通信子系统714可允许与以上针对其系统环境描述的网络和/或任何其它计算机交换数据。
计算机系统700还可包括示出为当前位于工作存储器718内的软件元件,包括操作系统720和/或其它代码722,诸如应用程序(应用程序可以是客户端应用、Web浏览器、中层应用、RDBMS等)。在示例性实施例中,工作存储器718可包括可执行代码和关联的数据结构,诸如用于处理上述授权请求的存储结构。应该理解,计算机系统700的替代实施例可具有相对于上述实施例的许多变化。例如,还可使用定制硬件和/或在硬件、软件(包括便携式软件(诸如小应用程序))或二者中实现特定元件。另外,可采用与其它计算装置(诸如网络输入/输出装置)的连接。
用于包含代码或代码的一部分的存储介质和计算机可读介质能够包括本领域已知或使用的任何合适的介质,包括存储介质和通信介质,诸如但不限于为了存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)而以任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储介质和计算机可读介质的例子包括RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光学存储器、磁带盒、磁带、磁盘存储器或其它磁存储装置或能够被用于存储预期信息并且能够由计算机读取的任何其它存储介质。存储介质和计算机可读介质可包括非暂态存储装置。
虽然已描述本发明的特定实施例,但各种修改、改变、替代构造和等同物也被包括在本发明的范围内。本发明的实施例不限于某些特定数据处理环境内的操作,而是在多个数据处理环境内自由操作。另外,虽然已使用特定的一系列事务和步骤描述本发明的实施例,但对于本领域技术人员而言应该清楚的是,本发明的范围不限于描述的一系列事务和步骤。
另外,尽管已使用硬件和软件的特定组合描述本发明的实施例,但应该意识到,硬件和软件的其它组合也在本发明的范围内。本发明的实施例可被仅实现于硬件或仅实现于软件或使用其组合实现。
因此,在说明性而非限制性意义上看待说明书和附图。然而,将会清楚的是,可在不脱离如权利要求中所阐述的更广泛的精神和范围的情况下对其进行添加、减少、删除和其它修改和改变。修改和改变包括公开的特征的任何相关组合。
Claims (20)
1.一种用于多表数据分割的计算机实现的方法,所述方法包括:
利用多表数据加强与数据库表关联的多个定义文件中的每个定义文件;
创建多个多表,其中每个多表与所述多个定义文件中的一个不同定义文件关联;
基于所述多个定义文件转换存储在数据库表中的数据;以及
将转换的数据从数据库表迁移到所述多个多表。
2.如权利要求1所述的计算机实现的方法,其中所述多表数据包括与多表之一关联的标识符和多表标记。
3.如权利要求1或2所述的计算机实现的方法,其中创建多个多表还包括:
解析每个定义文件以确定该定义文件的表信息,其中表信息包括名称、列的数量和列名;
自动地产生多个脚本,其中每个脚本定义多表之一,并且其中使用从定义文件中的一个不同定义文件解析的表信息产生每个脚本;以及
执行所述多个脚本中的每个脚本以创建所述多个多表。
4.如权利要求1至3中任何一项所述的计算机实现的方法,还包括:
创建映射定义表,其中映射定义表将每个定义文件映射到它的关联的多表。
5.如权利要求1至4中任何一项所述的计算机实现的方法,其中基于所述多个定义文件转换存储在数据库表中的数据包括:
产生用于每个定义文件的转换脚本,其中每个转换脚本定义与该定义文件关联的数据如何被分割和变换以与该定义文件的关联的多表兼容。
6.如权利要求5所述的计算机实现的方法,其中将转换的数据从数据库表迁移到所述多个多表包括:
执行每个转换脚本以分割和变换与每个定义文件关联的数据;以及
将分割和变换的数据从数据库表复制到所述多个多表。
7.如权利要求1至6中任何一项所述的计算机实现的方法,还包括:
验证转换的数据已被成功地迁移到所述多个多表。
8.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括存储在它上面的指令,当由处理器执行所述指令时,所述指令使处理器执行下述步骤:
利用多表数据加强与数据库表关联的多个定义文件中的每个定义文件;
创建多个多表,其中每个多表与所述多个定义文件中的一个不同定义文件关联;
基于所述多个定义文件转换存储在数据库表中的数据;以及
将转换的数据从数据库表迁移到所述多个多表。
9.如权利要求8所述的非暂态计算机可读存储介质,其中所述多表数据包括与多表之一关联的标识符和多表标记。
10.如权利要求8或9所述的非暂态计算机可读存储介质,其中当由处理器执行所述指令时,所述指令使处理器执行创建多个多表的步骤,其中每个多表与所述多个定义文件中的一个不同定义文件关联,所述非暂态计算机可读存储介质还包括当被执行时使处理器执行下述步骤的指令:
解析每个定义文件以确定该定义文件的表信息,其中表信息包括名称、列的数量和列名;
自动地产生多个脚本,其中每个脚本定义多表之一,并且其中使用从定义文件中的一个不同定义文件解析的表信息产生每个脚本;以及
执行所述多个脚本中的每个脚本以创建所述多个多表。
11.如权利要求8至10中任何一项所述的非暂态计算机可读存储介质,还包括指令,当由处理器执行所述指令时,所述指令使处理器执行下述步骤:
创建映射定义表,其中映射定义表将每个定义文件映射到它的关联的多表。
12.如权利要求8至11中任何一项所述的非暂态计算机可读存储介质,其中当由处理器执行时使处理器执行基于所述多个定义文件转换存储在数据库表中的数据的步骤的指令还包括当被执行时使处理器执行下述步骤的指令:
产生用于每个定义文件的转换脚本,其中每个转换脚本定义与该定义文件关联的数据如何被分割和变换以与该定义文件的关联的多表兼容。
13.如权利要求12所述的非暂态计算机可读存储介质,其中当由处理器执行时使处理器执行将转换的数据从数据库表迁移到所述多个多表的步骤的指令还包括当被执行时使处理器执行下述步骤的指令:
执行每个转换脚本以分割和变换与每个定义文件关联的数据;以及
将分割和变换的数据从数据库表复制到所述多个多表。
14.如权利要求8至13中任何一项所述的非暂态计算机可读存储介质,还包括指令,当由处理器执行所述指令时,所述指令使处理器执行下述步骤:
验证转换的数据已被成功地迁移到所述多个多表。
15.一种用于多表数据分割的系统,包括:
计算机,包括计算机可读存储介质和处理器;
数据库,包括交叉引用数据表和多个定义文件;
多表数据分割工具,在计算机上执行,其中所述多表数据分割工具能用于:
利用多表数据加强所述多个定义文件中的每个定义文件;
创建多个多表,其中每个多表与所述多个定义文件中的一个不同定义文件关联;
基于所述多个定义文件转换存储在数据库表中的数据;以及
将转换的数据从数据库表迁移到所述多个多表。
16.如权利要求15所述的系统,其中所述多表数据包括与多表之一关联的标识符和多表标记。
17.如权利要求15或16所述的系统,其中所述多表数据分割工具还能用于:
解析每个定义文件以确定该定义文件的表信息,其中表信息包括名称、列的数量和列名;
自动地产生多个脚本,其中每个脚本定义多表之一并且其中使用从定义文件中的一个不同定义文件解析的表信息产生每个脚本;以及
执行所述多个脚本中的每个脚本以创建所述多个多表。
18.如权利要求15至17中任何一项所述的系统,还包括:
映射定义表,其中所述映射定义表将每个定义文件映射到它的关联的多表;和
监测表,存储关于迁移的数据,其中监测表能够由多表数据分割工具使用以验证迁移。
19.如权利要求15至18中任何一项所述的系统,其中当多表数据分割工具基于所述多个定义文件转换存储在数据库表中的数据时,所述多表数据分割工具还能用于:
产生用于每个定义文件的转换脚本,其中每个转换脚本定义与该定义文件关联的数据如何被分割和变换以与该定义文件的关联的多表兼容。
20.如权利要求19所述的系统,其中当多表数据分割工具将转换的数据从数据库表迁移到所述多个多表时,所述多表数据分割工具还能用于:
执行每个转换脚本以分割和变换与每个定义文件关联的数据;以及
将分割和变换的数据从数据库表复制到所述多个多表。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/633,064 US9507837B2 (en) | 2012-10-01 | 2012-10-01 | Reference data segmentation from single to multiple tables |
US13/633,064 | 2012-10-01 | ||
PCT/US2013/062698 WO2014055438A1 (en) | 2012-10-01 | 2013-09-30 | Reference data segmentation from single to multiple tables |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104781814A true CN104781814A (zh) | 2015-07-15 |
CN104781814B CN104781814B (zh) | 2019-07-05 |
Family
ID=49382602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380059672.3A Active CN104781814B (zh) | 2012-10-01 | 2013-09-30 | 从单个表到多个表的引用数据分割 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9507837B2 (zh) |
EP (1) | EP2904520B1 (zh) |
JP (2) | JP6329552B2 (zh) |
CN (1) | CN104781814B (zh) |
WO (1) | WO2014055438A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11030063B1 (en) * | 2015-03-30 | 2021-06-08 | Amazon Technologies, Inc. | Ensuring data integrity during large-scale data migration |
US10540366B2 (en) | 2017-03-09 | 2020-01-21 | Bank Of America Corporation | Transforming data structures and data objects for migrating data between databases having different schemas |
WO2018176356A1 (en) * | 2017-03-31 | 2018-10-04 | Oracle International Corporation | System and method for determining the success of a cross-platform application migration |
CN107704568B (zh) * | 2017-09-29 | 2019-03-26 | 马上消费金融股份有限公司 | 一种测试数据添加的方法及装置 |
CN110209652B (zh) * | 2019-05-20 | 2024-02-02 | 平安科技(深圳)有限公司 | 数据表迁移方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101034349A (zh) * | 2007-04-06 | 2007-09-12 | 西安万年科技实业有限公司 | 基于功能设计的数据库应用系统开发平台 |
CN101566986A (zh) * | 2008-04-21 | 2009-10-28 | 阿里巴巴集团控股有限公司 | 联机事务处理中的数据处理方法和装置 |
US7702694B1 (en) * | 2007-09-07 | 2010-04-20 | Southern Company Services, Inc. | System and method for organizing managing and accessing large quantities of data from non-homogenous data sources |
US20120185515A1 (en) * | 2007-10-03 | 2012-07-19 | Database Logic Inc. | Collaboration of plural databases by interaction through universal index |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11110262A (ja) * | 1997-10-01 | 1999-04-23 | Toshiba Corp | 情報管理システム |
US6374256B1 (en) * | 1997-12-22 | 2002-04-16 | Sun Microsystems, Inc. | Method and apparatus for creating indexes in a relational database corresponding to classes in an object-oriented application |
JPH11312150A (ja) * | 1998-04-30 | 1999-11-09 | Nippon Telegr & Teleph Corp <Ntt> | 並列処理方法および並列処理システム、ならびに並列処理プログラムを記録した記録媒体 |
AU3683700A (en) * | 1999-10-05 | 2001-05-10 | S.C. Medicarom Group S.R.L. | Database organization for increasing performance by splitting tables |
US6910115B2 (en) * | 2001-10-31 | 2005-06-21 | Hewlett-Packard Development Company, L.P. | System and method for configuring a removable storage medium |
EP1321865A3 (en) | 2001-12-19 | 2006-03-15 | Alcatel Canada Inc. | System and method for multiple-threaded access to a database |
US7739223B2 (en) * | 2003-08-29 | 2010-06-15 | Microsoft Corporation | Mapping architecture for arbitrary data models |
US7389314B2 (en) * | 2004-08-30 | 2008-06-17 | Corio, Inc. | Database backup, refresh and cloning system and method |
US7849106B1 (en) * | 2004-12-03 | 2010-12-07 | Oracle International Corporation | Efficient mechanism to support user defined resource metadata in a database repository |
JP2006293981A (ja) * | 2005-03-18 | 2006-10-26 | Hitachi Ltd | データベース格納方法、および、データベース格納システム |
US8458201B2 (en) * | 2005-04-08 | 2013-06-04 | International Business Machines Corporation | Method and apparatus for mapping structured query language schema to application specific business objects in an integrated application environment |
JP2008171225A (ja) * | 2007-01-12 | 2008-07-24 | Hitachi Information Systems Ltd | データベース自動移行システム |
US7720873B2 (en) * | 2007-06-21 | 2010-05-18 | International Business Machines Corporation | Dynamic data discovery of a source data schema and mapping to a target data schema |
US9996572B2 (en) * | 2008-10-24 | 2018-06-12 | Microsoft Technology Licensing, Llc | Partition management in a partitioned, scalable, and available structured storage |
-
2012
- 2012-10-01 US US13/633,064 patent/US9507837B2/en active Active
-
2013
- 2013-09-30 WO PCT/US2013/062698 patent/WO2014055438A1/en active Application Filing
- 2013-09-30 EP EP13777393.3A patent/EP2904520B1/en active Active
- 2013-09-30 CN CN201380059672.3A patent/CN104781814B/zh active Active
- 2013-09-30 JP JP2015534803A patent/JP6329552B2/ja active Active
-
2017
- 2017-11-29 JP JP2017229138A patent/JP6549681B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101034349A (zh) * | 2007-04-06 | 2007-09-12 | 西安万年科技实业有限公司 | 基于功能设计的数据库应用系统开发平台 |
US7702694B1 (en) * | 2007-09-07 | 2010-04-20 | Southern Company Services, Inc. | System and method for organizing managing and accessing large quantities of data from non-homogenous data sources |
US20120185515A1 (en) * | 2007-10-03 | 2012-07-19 | Database Logic Inc. | Collaboration of plural databases by interaction through universal index |
CN101566986A (zh) * | 2008-04-21 | 2009-10-28 | 阿里巴巴集团控股有限公司 | 联机事务处理中的数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP6329552B2 (ja) | 2018-05-23 |
JP2015530677A (ja) | 2015-10-15 |
JP2018060570A (ja) | 2018-04-12 |
JP6549681B2 (ja) | 2019-07-24 |
CN104781814B (zh) | 2019-07-05 |
US9507837B2 (en) | 2016-11-29 |
EP2904520B1 (en) | 2019-10-23 |
US20140095522A1 (en) | 2014-04-03 |
WO2014055438A1 (en) | 2014-04-10 |
EP2904520A1 (en) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10191926B2 (en) | Universal data pipeline | |
JP6113693B2 (ja) | Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化 | |
US10984046B2 (en) | Graph database and relational database mapping | |
CN109997126A (zh) | 事件驱动提取、变换、加载(etl)处理 | |
Holzschuher et al. | Querying a graph database–language selection and performance considerations | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN104781814A (zh) | 从单个表到多个表的引用数据分割 | |
Bahubalendruni et al. | An efficient stable subassembly identification method towards assembly sequence generation | |
CN104813318A (zh) | 用于翻译的基于上下文对消息分组的技术 | |
CN106055678A (zh) | 一种基于hadoop的全景大数据分布式存储方法 | |
CN105930354B (zh) | 存储模型转换方法和装置 | |
US20230401209A1 (en) | Columnar Cache Query Using Hybrid Query Execution Plan | |
Staves et al. | Associative CAD references in the neutral parametric canonical form | |
CN116263659A (zh) | 数据处理方法、装置、计算机程序产品、设备及存储介质 | |
Khashan et al. | An adaptive spark-based framework for querying large-scale NoSQL and relational databases | |
US20140074869A1 (en) | Autoclassifying compound documents for enhanced metadata search | |
Hoang et al. | Implement the data conversion system by using α-lightweight coreset for validation process | |
CN112732704B (zh) | 一种数据处理方法、装置及存储介质 | |
Ismail | Evaluation of Generic GraphQL Servers for Accessing Legacy Databases | |
Krishna et al. | A Unified and Scalable Data Migration Service for the Cloud Environments. | |
CN105493081B (zh) | 企业中的分布式索引 | |
WO2020187512A1 (en) | Answering requests from enterprise systems background | |
CN114254166A (zh) | 联邦式图数据库架构 | |
Fu et al. | Rapid Development Platform of NC Turrets Based on the Construction of B/S | |
WO2022083987A1 (en) | Managing artifact information method and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |