首页> 中国专利> 对于复制的数据表的表属性管理

对于复制的数据表的表属性管理

摘要

表选择器可以接收对存储从第一系统的原始表复制的数据的复制表的选择,所述复制表使用第二系统来存储而且当前正运行接收复制的数据的过程。暂停管理器可以暂停接收复制的数据的过程,而且表属性管理器可以改变所述复制表的复制表属性,同时暂停接收复制的数据的过程。暂停管理器然后可以恢复接收复制的数据的过程。

著录项

  • 公开/公告号CN104516724A

    专利类型发明专利

  • 公开/公告日2015-04-15

    原文格式PDF

  • 申请/专利权人 SAP欧洲公司;

    申请/专利号CN201310445577.9

  • 发明设计人 陈颖宇;R.李;Y.宋;

    申请日2013-09-26

  • 分类号G06F9/44;G06F17/30;G06F11/14;

  • 代理机构北京市柳沈律师事务所;

  • 代理人刘虹

  • 地址 德国瓦尔多夫

  • 入库时间 2023-12-17 03:57:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-31

    授权

    授权

  • 2016-10-12

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20130926

    实质审查的生效

  • 2015-04-15

    公开

    公开

说明书

技术领域

本说明书涉及提供数据复制。

背景技术

许多软件应用被设计成能够处理大量的数据,并因此可以与能够存储这 样的数据的一个或多个数据库相关联。例如,可能需要致力于客户关系管理 (CRM)、企业资源规划和供应链管理的业务应用,来存储和处理大量的客 户记录、财务记录、供应商数据和其他业务数据。

这样的应用可以被开发和部署为使用一个或多个平台、基础设施和/或计 算系统来运行。然而,随着时间的推移,可能希望在独立的平台、基础设施 和/或计算系统的上下文中,和/或在相同或不同的软件应用的上下文中使用所 存储的数据。例如,随着时间的推移,可以开发新的、改进的平台,该平台 可以是,例如,比最初的或先前的计算平台更快和/或更具成本效益的平台。

因此,软件应用的操作者可能希望从原始的或当前的位置转移或以其他 方式复制数据,以结合独立的计算系统来使用数据。例如,这样的复制会很 有利,例如,提高数据处理的处理速度,和/或利用在原始的/当前的系统中不 可用的独立计算系统的功能。

然而,当要转移的数据量很大时,和/或当转移延迟较高时,和/或在原始 的系统中正在收集新数据时,可能发生的是,从原始的系统向新的、独立的 系统复制数据的复制过程需要大量的(non-trivial)(或不确定的 (open-ended))转移时间。因此,在这样的转移时间期间,操作者可能希望 对在单独的接收系统处存储复制的数据的方式进行更改。遗憾的是,做出这 样的修改可能很困难而且耗费资源,尤其是在不中断转移过程的情况下。结 果,操作者可能在转移过程期间经历挫折,而且可能失去使用独立的计算系 统所期望的部分或全部好处。

发明内容

根据一个总的方面,系统可以包括记录在非临时性计算机可读介质上并 且能够由至少一个处理器执行的指令。系统可以包括表选择器,其被配置为 使所述至少一个处理器接收对存储从第一系统的原始表复制的数据的复制表 的选择,所述复制表使用第二系统存储而且当前正运行接收复制的数据的过 程。系统可以包括暂停管理器,其被配置为使所述至少一个处理器暂停接收 复制的数据的过程;以及表属性管理器,其被配置为使所述至少一个处理器 改变所述复制表的复制表属性,同时暂停接收复制的数据的过程。暂停管理 器还可以被配置为使所述至少一个处理器恢复接收复制的数据的过程。

实现方式可以包括以下特征中的一个或多个。例如,表选择器可以被配 置为:基于接收到对包括所述复制表的数据库模式的选择来选择所述复制表。 表选择器可以被配置为:基于接收到对利用所述复制表的应用的选择来选择 所述复制表。

暂停管理器可以被配置为使所述至少一个处理器暂停接收复制的数据的 过程包括:将暂停指令插入到管理数据复制作业指令的作业队列。暂停管理 器可以被配置为使所述至少一个处理器暂停接收复制的数据的过程包括:查 询状态表以确定所插入的暂停指令的状态指示接收复制的数据的过程的暂停 已经发生。暂停管理器可以被配置为使所述至少一个处理器恢复接收复制的 数据的过程包括:将恢复指令插入所述作业队列。暂停管理器可以被配置为 使所述至少一个处理器恢复接收复制的数据的过程包括:查询状态表以确定 所插入的恢复指令的状态指示接收复制的数据的过程的恢复已经发生。

复制表属性可以包括基于列的表的属性(column table attribute)、基于行 的表的属性(row table attribute)、所述复制表的分区、普通的基于列的表(plain  column table)、历史的基于列的表(history column table)、自动合并能力或文 本搜索能力中的一个或多个。表属性管理器可以包括表属性选择器,其被配 置为使所述至少一个处理器访问多个预先存储的、用于实施对复制表属性的 改变的改变程序,而且还被配置为使所述至少一个处理器从其选择相应的预 先存储的改变程序以利用所述相应的预先存储的改变程序实施对所述复制表 属性的改变。系统的视图生成器可以被配置为使所述至少一个处理器提供至 少一个图形用户界面,所述至少一个图形用户界面被配置为接收对所述复制 表的选择和对所述复制表属性的改变。

根据另一总的方面,用于执行存储在计算机可读介质上的指令的计算机 实施的方法可以包括:接收对存储从第一系统的原始表复制的数据的复制表 的选择,所述复制表使用第二系统存储而且当前正运行接收复制的数据的过 程;以及暂停接收复制的数据的过程。该方法可以包括改变所述复制表的复 制表属性,同时暂停接收复制的数据的过程;以及恢复接收复制的数据的过 程。

实现方式可以包括以下特征中的一个或多个。例如,改变所述复制表属 性可以包括:访问多个预先存储的、用于实施对复制表属性的改变的改变程 序;以及从其选择相应的预先存储的改变程序以利用所述相应的预先存储的 改变程序实施对所述复制表属性的改变。该方法可以包括提供至少一个图形 用户界面,所述至少一个图形用户界面被配置为接收对所述复制表的选择和 对所述复制表属性的改变。

根据另一总的方面,有形地具体实施在非临时性计算机可读存储介质上 的计算机程序产品可以包括指令,当该指令运行时被配置为使至少一个处理 器:接收对存储从第一系统的原始表复制的数据的复制表的选择,所述复制 表使用第二系统存储而且当前正运行接收复制的数据的过程;以及暂停接收 复制的数据的过程。当该指令运行时还可以被配置为使至少一个处理器改变 所述复制表的复制表属性,同时暂停接收复制的数据的过程;以及恢复接收 复制的数据的过程。

实现方式可以包括以下特征中的一个或多个。例如,当该指令运行时还 可以被配置为使至少一个处理器暂停接收复制的数据的过程包括:将暂停指 令插入到管理数据复制作业指令的作业队列。

当该指令运行时还可以被配置为使至少一个处理器暂停接收复制的数据 的过程包括:查询状态表以确定所插入的暂停指令的状态指示接收复制的数 据的过程的暂停已经发生。当该指令运行时还可以被配置为使至少一个处理 器恢复接收复制的数据的过程包括:将恢复指令插入所述作业队列。当该指 令运行时还可以被配置为使至少一个处理器恢复接收复制的数据的过程包 括:查询状态表以确定所插入的恢复指令的状态指示接收复制的数据的过程 的恢复已经发生。

当该指令运行时还可以被配置为使至少一个处理器访问多个预先存储 的、用于实施对复制表属性的改变的改变程序,而且还被配置为使所述至少 一个处理器从其选择相应的预先存储的改变程序以利用所述相应的预先存储 的改变程序实施对所述复制表属性的改变。当该指令运行时还可以被配置为 使至少一个处理器提供至少一个图形用户界面,所述至少一个图形用户界面 被配置为接收对所述复制表的选择和对所述复制表的复制表属性的改变。

在附图和下面的描述中阐明一个或多个实现方式的细节。从说明书和附 图以及权利要求中,其它的特征将是显而易见的。

附图说明

图1是用于管理复制的数据的复制表属性的系统的框图。

图2是示出图1的系统的示例操作的流程图。

图3是在图1的系统中使用的示例性图形用户界面的屏幕截图。

图4是示出图1的系统的更具体的示范性实施方式中的架构组件和相关 联的过程流的框图。

图5是示出图4的系统的示例性操作的流程图。

图6是示出在图4和图5的具体示范性实施方式的上下文中,图4和图 5的例子的更详细的示例性操作的流程图。

具体实施方式

图1是用于在数据复制期间管理复制表属性的系统100的框图。更具体 地,在图1的例子中,复制管理器102与第一系统104和第二系统106交互, 从而将第一系统104的原始表108的数据复制到第二系统106的复制表110。 在这样做时,如本文详细描述的,复制管理器102可以被配置为便于改变复 制表110的表属性,即使当从原始表108向复制表110复制数据的复制过程 正在进行的时候。此外,复制管理器102便于以对于系统100的操作者来说 简单和方便的方式对复制表110的表属性做出这样的改变,并且确保最小程 度地干扰整体数据复制过程。

在图1的例子中,第一系统104可以被认为在概念上代表可以实施或利 用原始表108的几乎任何计算系统和关联的软件/硬件。例如,第一系统104 可以代表用于运行上面所提到的业务应用类型的特定硬件/软件平台,或者代 表可以利用来自原始表108的数据的几乎任何软件应用。

同时,第二系统106可以被理解为在概念上代表几乎任何计算系统,其 可以被系统100的操作者考虑用于在处理或以其他方式利用原始表108中的 数据方面提供某些优势。例如,如上所提到的,第二系统106可以代表新的 可用的计算系统,其在设计和部署第一系统104时还不可用。在附加的或可 替换的例子中,第二系统106可以提供对原始表108中的数据的更快和/或更 具成本效益的处理。另外,第二系统106可以提供用于处理复制表110的应 用112,该应用112可以或不能用于在第一系统104处对原始表108的数据的 处理。

在一些实施方式中,原始表108的数据可以被永久地转移、迁移或以其 他方式复制到复制表110。在附加的或可替换的例子中,原始表108的数据 可以由第一系统104不断地收集,即使当在第二系统106处对来自复制表110 的复制的数据的处理不断发生时。

因此,如在下面更详细描述的,复制管理器102可以使用第一系统104 和第二系统106之一或两者来部分或完全运行。此外,虽然为了简单起见在 图1的例子中没有明确地示出,但是复制管理器102可以被配置为将数据从 多个原始系统复制到一个或多个接收系统,或者从一个原始系统复制到两个 或更多个接收系统。

在示例性实施例中,诸如下面相对于图4至图6描述的实施方式中,第 二系统106可以代表内存数据库,其能够非常迅速地处理大量的数据。在下 面描述的例子中,通过相对于由SAP AG提供的且已知为HANA的内存数据 库这样的具体的、非限制性的例子来描述第二系统106。然而,如本文所述, 可以理解的是,第二系统106可以代表系统100的操作者可能期望用于从原 始表108接收复制的数据以便使用第二系统106的应用112进行处理的几乎 任何系统。

在实践中,系统100的操作者可以利用复制管理器102来选择原始表108 的数据以复制到复制表110内。因此,例如,复制管理器102可以向系统100 的操作者提供指定用于复制到第二系统106的原始表108的数据的能力。此 外,复制管理器102可以提供复制表110及其关联的表属性的生成,从而使 得能够从原始表108进行期望的数据转移。例如,复制管理器102可以简单 地确保复制表110的表属性完全对应原始表108的相应的表属性。例如,复 制管理器102可以确保复制表110包括与原始表108相同的格式和原始表108 的其他属性。从而,从原始表108到复制表110的后续的数据复制可以以简 单的方式进行。

然而,在实践中,可能频繁发生的是,系统100的操作者希望相对于原 始表108的表属性改变复制表110的表属性。例如,出于实施复制表110的 目的,系统100的操作者可能希望将原始表108从行表改变为列表。这样的 复制表的属性的各种其它例子在本文中详细提供,或将显而易见。然而,在 一般情况下,可以理解的是,这样的复制表的属性指代复制表110的几乎任 何特性和方面,其定义或表征复制表110的格式或结构。

如上面提到的,一旦复制管理器102已经被配置为执行所描述的从原始 表108到复制表110复制数据的复制过程,复制管理器102然后就可以开始 在例如几分钟、几小时或几天的时间段内、或者持续不断地(其中在复制表 110处不断地接收和复制第一系统104接收到的且使用原始表108存储的数 据)执行所配置的复制。在这样的发生复制的复制处理时间期间,系统100 的操作者可能希望修改或以其他方式管理复制表110的表属性,如上所述。

为了方便对于复制表的属性的这样的管理,复制管理器102可以包括表 选择器114,其被配置为使系统100的操作者能够从使用第二系统106存储 的多个复制表当中选择复制表110。类似地,表属性管理器116可以被配置为 使系统100的操作者能够选择将被改变的所选择的复制表110的特定表属性, 并且此后执行所请求的变化。

具体而言,如图所示,表属性管理器116可以包括表属性选择器118, 其可以向系统100的操作者提供选择复制表110现有的、所期望的复制表的 属性并且指定用于对其进行替换(或对其增加)的新的、不同的表属性的能 力。为了执行所请求的表属性变化,可以存储多个表属性改变程序120,其 被配置为运行被设计为实施各个表属性变化的预定义的命令。例如,改变程 序120可以代表被设计为执行特定表属性改变的结构化查询语言(SQL)语 句的离散集合(discrete collections)。以这种方式,系统100的操作者不需要具 有实际执行所希望的表属性变化的详细知识或技术。

视图生成器122可以被配置为使能系统100的操作者和表选择器114之 间、以及系统100的操作者与表属性管理器116之间的交互。例如,如下面 相对于图3更详细地示出和描述的,视图生成器122可以向操作者提供图形 用户界面(GUI),从而使操作者能够容易地选择复制表110,并且此后选择 将被改变的当前复制表属性。

为了实际实施对于复制表110所请求的表属性变化,表属性管理器116 可以利用暂停管理器124。更具体地,暂停管理器124可以被配置为在属性 管理器116实施所希望的表属性变化的时间段期间,暂停对于正在从原始表 108复制到复制表110的数据的数据复制。一旦复制表110的表属性变化已经 完成,暂停管理器124然后就可以实施继续从原始表108向目前修改的复制 表110复制数据。

为了以这种方式暂停数据复制,在图1的例子中,暂停管理器124可以 利用作业队列126和状态表128。具体来说,作业队列126可以包括与从原 始表108的数据到复制表110的数据复制相关联的、所有当前计划的作业的 列表。因此,作业队列126作为第一系统104和第二系统106之间接口的点, 因为要从原始表108复制的数据被作为当前作业包括在作业队列126内,而 第二系统106访问作业队列126以确定将被复制和存储在复制表110内的数 据。

同时,状态表128可以被配置为存储状态信息,其反映作业队列126内 的每个作业的当前状态。例如,如在下面详细描述的,状态表128可以被用 来评估特定数据复制作业是否已经被暂停,从而可以进行对于复制表110的 相关表属性的修改而不影响所计划的数据复制。

因此,在实践中,响应于通过表选择器114对复制表110的选择、以及 通过表属性选择器118对将被改变的复制表属性的相应选择,表属性管理器 116可以请求暂停管理器124暂停可以与所请求的复制表属性变化相关联或 受其影响的数据复制作业。然后,暂停管理器124可以发送命令到作业队列 126以暂停所有这样的相关数据复制作业。状态表128可以被查考以确认作 业队列126事实上已经被修改为反映指定数据复制作业的暂停状态,于是表 属性管理器16可以开始改变复制表110的指定的复制表属性(例如,使用改 变程序120中的相应改变程序,基于操作者的相应选择)。

一旦已经做出了所请求的表属性变化时,表属性管理器116就可以指示 暂停管理器124解除相应数据复制作业的暂停。暂停管理器124然后可以相 应地修改作业队列126,而且通过状态表128请求确认对作业队列126的相 应变化。以这种方式,先前计划的从原始表108到复制表110的数据复制可 以继续。

在图1的例子中,复制管理器102被示出为使用至少一个计算装置130 来实施,至少一个计算装置130本身包括至少一个处理器132和非临时性计 算机可读存储介质134。例如,如上面提到的,至少一个计算装置130可以 代表复制服务器,其与第一系统104和第二系统106通信,并且被配置为实 施对于一个或多个表(诸如原始表108)执行的数据复制。

在附加的或可替换的实施方式中,至少一个计算装置130可以在第一系 统104和/或第二系统106之一或两者处实施复制管理器102,或者可以与两 者分离且与之通信。因此,例如,至少一个计算装置130可以被理解为代表 至少两个计算设备,其可以通过网络彼此通信。

同时,至少一个处理器132可以代表并行运行的两个或更多个处理器。 此外,计算机可读存储介质134可以代表能够存储用于运行复制管理器102 的指令以及结合复制管理器102的运行被存储的任何相关联的数据的几乎任 何非临时性计算机可读存储介质。

此外,可以理解,虽然复制管理器102的各种组件和模块114至128被 示为单独的、独立的组件/模块,但是示出的架构仅仅出于示例和说明的目的 被提供而且并非旨在限制复制管理器102可以实施的方式。例如,复制管理 器102的任意两个或更多个元件可以被组合以实施为单一元件。相反,复制 管理器102的任意给定元件可以被运行为被设计为提供相同、相似或相关功 能的两个或更多个子元件。

图2是示出图1的系统100的示例操作的流程图200。在图2的例子中, 操作202至208被示出为单独的、顺续的操作。然而,可以理解,在附加的 或可替换的实施方式中,操作202至208中的任意两个或更多个可以以部分 或完全重叠或并行的方式、和/或以嵌套、迭代、循环或分支的方式运行。另 外,在任何这样的实施方式中,可能发生的是,可以包括附加的或可替换的 操作,和/或可以省略一个或多个操作。

在图2的例子中,可以接收对存储从第一系统的原始表复制的数据的复 制表的选择,该复制表使用第二系统来存储而且当前正运行接收复制的数据 的过程(202)。例如,在图1的系统100的操作者希望改变复制表110的表 属性的情景中,表选择器114可以在第二系统106处接收对复制表110的选 择。如上所述,在从第一系统的原始表108到复制表110的数据复制的持续 过程期间,可以发生对复制表110的这样的选择以用于修改其表属性。

可以暂停接收复制的数据的过程(204)。例如,暂停管理器124可以被 配置为指示作业队列126暂停与复制表110有关的任何待处理的(pending)数 据复制作业,并可以使用状态表128来确认所请求的暂停已经发生。

可以改变复制表的复制表属性,同时暂停接收复制的数据的过程(206)。 例如,表属性管理器116可以被配置为根据通过表属性选择器118从系统100 的操作者接收到的表属性选择来修改复制表110的属性。如所描述的,可以 使用改变程序120中的相应改变程序来实施所请求的复制表属性变化的实际 执行。

然后可以恢复接收复制的数据的过程(208)。例如,当完成所请求的对 复制表110的复制表属性的改变时,表属性管理器116可以指示暂停管理器 124恢复复制表110的暂停的数据复制作业。再次地,暂停管理器124可以 向作业队列126提供相应指令,并且可以通过状态表128确认指定的数据复 制作业已重新开始。

图3是可以用在图1的系统100中的图形用户界面(GUI)300的例子。 例如,GUI300可以由视图生成器122提供,并且可以用于提供例如表选择 器114和表属性选择器118的输入管理行为。当然,可以理解的是,GUI300 是可以由视图生成器122提供的一种或多种类型的用户界面的简化的、概念 性的例子,而且并非旨在提供这样的用户界面的相关功能的详尽或完整列表。

在图3的例子中,提供了下拉菜单302,以使得系统100的操作者能够 选择与复制表相关联的应用。例如,下拉列表302可以包括诸如第二系统106 内的应用112的应用的列表。如上所提到的,可能发生的是,第二系统106 目前正在实施多个这样的应用,因此必须具体指定应用112。然而,在其他 示例性实施方式中,可能发生的是,第二系统106目前仅运行单一应用,和/ 或复制表110与两个或更多个这样的应用相关联。

此外,在图3中,提供了下拉列表304,其中列出了用于下拉列表302 的所选择应用的所有相关的数据库模式。也就是说,例如,应用112和复制 表110可以相对于多个数据库模式表征相关联的数据。例如,多种类型的数 据可以与执行应用的特定功能有关,而且可以根据第一数据库模式来组织, 而数据的其他部分可以与不同功能相关联,而且可以与不同的数据库模式相 关联。通过使用下拉列表304选择所希望的模式,操作者可以同时选择与所 选择的模式相关联的所有复制表。例如,与需要操作者逐个表地选择复制表 相比,这样的能力可以为系统100的操作者提供便利。

同时,第三下拉列表306向系统100的操作者提供逐个表地选择复制表 的能力。例如,系统100的操作者可以使用下拉列表306来选择一个或多个 单独的复制表,与任何所选择的模式无关。在其他示例性实施方式中,下拉 列表306可以使系统100的操作者能够限制或扩大使用下拉列表304所选择 的复制表的列表。换句话说,例如,系统100的操作者可以使用下拉列表304 选择特定的数据库模式和相关联的复制的数据表的组,并且可以使用下拉列 表306增加与所选择的数据库模式无关联的一个或多个单独的复制表。在其 他例子中,系统100的操作者可以使用下拉列表304选择特定的数据库模式 和所有相关联的复制表,并且然后可以使用下拉列表306从与该数据库模式 相关联的组中限制或者过滤单独的复制表。

使用下拉列表308,系统100的操作者可以选择一个或多个所选择的复 制表的表属性。也就是说,系统100的操作者可以选择当前的现有的复制表 属性。例如,操作者可以选择将复制表110指定为基于行的表的表属性。

然后,使用下拉列表310,操作者可以选择新的或所希望的复制表属性。 换句话说,下拉列表310允许选择新的表属性,从而下拉列表308的当前的 现有的表属性可以被改变或替换。例如,继续上面的例子,下拉列表310可 以用来选择新的表属性,其指定复制表110被组织为基于列的表。

在这样的例子中,可以实施各种优化。例如,使用下拉列表308选择特 定的表属性可以导致对下拉列表310所提供的可用的表属性的相应限制,从 而下拉列表310内可用的选择只反映可以对应于所选择的下拉列表308的当 前表属性的那些表属性。换句话说,下拉列表310可以响应于使用下拉列表 308做出的选择被过滤,从而对下拉列表310的选择只反映改变程序120中 的对应于所选择的下拉列表308的表属性的那些改变程序。

图3的GUI将下拉列表302至310示出为用于所描述的相对于下拉列表 做出各种选择的技术。然而,当然,可以理解,也可以使用用于以图形方式 表示从其接收选择的选项的任何其它已知或未来的技术。例如,对于下拉列 表302至310中给定的下拉列表,GUI300可以包括可用于选择的列表,从 而系统100的操作者可以简单地指定所列出的选项之一。此外,GUI300示 出了单一屏幕,而在其他示例性实施方式中,可以使用多个屏幕,从而例如, 基于系统100的操作者在与前面的屏幕交互期间做出的选择,视图生成器122 可以提供不同的屏幕。

在所有这样的实施方式中,可以理解,GUI300或其各种实例向系统100 的操作者提供与表选择器114和表属性管理器116交互的简单方便的方式, 而不需要操作者具备技术知识。例如,操作者不需要能够构造或实施改变程 序120的具体SQL命令以获得复制表110的表属性的所希望的变化。

图4是图1的系统100的示范性实施方式的框图,其示出架构的交互组 件的操作的顺序。更具体地,系统400示出了示例性场景,其中,具有原始 数据库404的客户402利用SAP全景变换(SAP Landscape Transformation, SLT)工具将来自原始数据库404的数据复制和同步到HANA系统408,从 而创建复制表410。因此,图4(以及下面的图5和图6)示出了特定的示范 性实施方式,其中HANA系统408的SLT复制406向客户402提供以方便和 简单的方式实施定制的需求以实现特定的业务场景的能力。

如以上所提到的,而且从图4至图6的例子可以理解,当应用针对HANA 系统408来构造和部署时,客户402的原始数据库404可以,例如,相对于 客户402的其他数据库或其他客户而改变。例如,举几个例子,原始数据库 404可以与SQL服务器、现有的SAP应用或平面文件系统相关联。可以使用 将客户的原始数据404复制到HANA系统408的客户402的SLT复制406, 例如,由此提供实时或接近实时的数据复制。

在图4的例子中,最常见地,由SLT复制406生成的目标复制表可以被 生成为,例如,没有任何可定制的特征的、基于列的表(column table),从而, 在某些情况下,复制表410可能不具备或无法实现它们首先被复制到HANA 系统408的业务需求。此外,由于在复制过程期间SLT复制406通常原始数 据库404的表结构和复制表410进行比较,所以用于修改复制表410的表属 性的任何手动和/或不正确的程序都可以导致SLT复制过程406的失败。

因此,为了避免这样的结果,并且为了使客户402能够管理复制表410 的属性,根据以上所提供的图1至图3的描述,并在图4所示的具体例子中, 框412示出图1的系统100的组件之间的操作和交互的顺序。具体而言,如 图所示,框414示出,数据复制的暂停可以通过向作业队列表416发出暂停 命令来实现。更具体地,在SLT复制406中,表RS_ORDER可以代表作业 队列表416。此外,当向作业队列表416发出暂停命令时,通过与状态表417 通信可以发生对在作业队列表416内实施暂停指令的确认,所述状态表417 被配置为监视作业队列表416以确定其中所包含的一个或多个指令的当前状 态。例如,在SLT复制406中,表RS_STATUS可以用来实现状态表417。

当状态表417提供对作业队列表416反映从原始数据库404到一个或多 个复制表410的数据复制的暂停的确认时,然后如框418所示,可以进行复 制表410的复制表属性的改变。例如,可以理解,框418指代并且包括客户 402与例如GUI300交互的操作,并且因此反映客户402通过与视图生成器 122的交互,关于指导表选择器114和表属性管理器116的动作。以这种方式, 如所描述的,客户402被提供有定制目标复制表410的能力,从而在这个例 子中充分利用HANA系统408的可用特征和功能。

此外,如上相对于图3所提到的,客户402可以能够,例如,以批处理 格式改变不同表的不同的表属性,即使所选择的复制表中的一些或全部包括 在两个或更多个不同的数据库模式内。因此,例如,客户402可以无需在不 同模式内逐个表地定制复制表。

如上面提到的,可以改变的复制表属性的类型和性质可以包括相对于复 制表410可以存在的几乎任何表属性,而且可以在一定程度上依赖于原始数 据库404的性质和/或实施复制表的系统(例如,图4的HANA系统408)的 性质。但是,对于上面的例子,这样的表属性的附加或可替换的例子可以包 括分区属性,诸如基于列的表的增加的或新的分区。在进一步的例子中,普 通列表(plain column table)可以被改为列历史表(column history table)。另 外,表属性可以包括与给定的复制表相关联的功能。例如,自动合并功能或 文本搜索功能/能力可以开启/关闭或修改。

图5是示出图4的例子的更详细的示例性操作的流程图500。在图5的 例子中,用户输入被接收(502)。具体而言,从上面图1至图4的讨论中可 以理解,这样的用户输入可以指定一个或多个应用和/或相关联的复制表将被 改变。因此,例如,用户输入可以被解析以确定用户输入是否请求针对特定 数据库模式的表属性改变操作,在这种情况下,可以从例如图4的HANA系 统408的适当的系统表中检索各种相关联的表的信息,而且之后将其转换成 表的列表。以这种方式,例如,所标识的表的集合的结果列表可以与指定的 希望的表属性改变操作的列表相结合,从而形成单一列表。另外,如果用户 输入指定特定模式以及一个或多个附加的单独表,则该模式可以被解析而且 所标识的表可以连同将被实施的复制表属性改变操作的列表一起,结合未标 识的各个表的列表,被添加到该列表内。

当编译表和表属性改变操作的列表时,可以查询RS_STATUS表417 (504)。在图5的例子中,参照图6的更具体的例子,示例性复制表MYTEST (我的测试)被认为代表图4的复制表410(或图1的复制表110)。

因此,在图5的例子中,可以检查示例性表MYTEST的状态(506),以 确定表MYTEST当前是否处于数据复制的过程中。换句话说,系统首先检查 所标识的示例性MYTEST当前是否正在经历数据复制。如果没有,则如图所 示,表RS_STATUS的查询可以继续(504),直到对RS_STATUS表内的 MYTEST表的状态的检查(506)确定示例性表MYTEST的复制状态指示数 据复制的过程正在发生。

在具体的例子,下面的表1可以用于记录复制过程的状态:

表1

因此表1使能跟踪和检查复制表状态,其中,在表2中提供用于表示相 应复制表的状态的单独的状态码:

状态码 定义 注释 P 进行中 已开始的复制的最终状态 X 运行 非连续操作的最终状态 E 错误 任何错误情况下的最终状态 O 获得 信号复制软件已经检索到请求的临时状态 B 被阻止 临时状态

表2

因此,相对于操作506,可以理解的是,表1和表2可以用于确保示例 性表MYTEST的当前复制状态被设置为(P),如表2的例子所示,其指示复 制正在进行中。

当复制过程被确定为活动时,如刚才所述,用于暂停数据复制过程的暂 停指令可以被发送到表RS_ORDER(508)。如上面所提到的,表RS_ORDER, 例如,图4的作业队列表416(或图1的作业队列126)可以由图4的SLT 复制406用于使能HANA系统408和SLT系统406的复制软件之间的通信。

例如,表3示出,RS_ORDER表可以用于按照名称、动作和指令标识符 或ID来标识各个表,所述动作表示由SLT复制软件当前正在执行的动作, 所述指令标识符或ID唯一地标识与相应动作相关联的消息。

数据类型 注释 TABLENAME(表名称) NVARCHAR(128) ERP表的名称 ACTION(动作) NVARCHAR(1) 由复制软件执行的当前动作 ORDER ID(指令ID) INTEGER(整数) 消息的可选的唯一标识符

表3

因此,如上面提到的,为了操纵SLT复制系统406,相应的记录可以被 插入到表3的RS_ORDER表,从而将采取相应的行动。表4示出了示例性动 作代码,其可以被用于标识表3的上下文中的各个指令的动作。如所示,例 如,动作码“S”与暂停现有的数据复制相关联,而动作码“W”与随后唤醒 先前暂停的复制相关联。

动作码 定义 注释 R 复制 包括初始加载 C 取消复制 需要运行的复制 L 加载(w/o复制) 需要空的/不存在的表 N 创建新的目标模式   S 暂停复制 需要运行的复制 T 创建表 需要不存在的表 W 唤醒复制 需要暂停的复制 Q 只复制 无初始加载 M 仅用于复制的记录 仅开始复制记录,但不执行复制

表4

因此,返回参考图5,当具有操作代码“S”的指令被插入到RS_ORDER 表中时,可以查询RS_STATUS表(510)以跟踪和确认所指令的动作被用掉。 因此,如果状态被检查和确定为未改变(512),则对RS_STATUS表的查询 可以继续进行,直到对RS_STATUS表的检查(512)指示相应的状态已经改 变(例如,表2中的状态码“P”所表示的状态“进行中”已经被改变为表2 中的状态码“B”所表示的状态“被阻止”)。

于是,可以根据最初接收到的用户输入来改变所指定的复制表属性 (514)。如已经描述的,预先存储的改变程序120可以被用于执行表属性改 变操作。还如所描述的,这样的改变程序120可以是可高度定制的,以使能 任意大量的复制表属性改变操作,其然后可以以自动和无错误的方式运行, 而不需要客户402具备高度专业技术知识。此外,随着时间的推移,可以将 附加的改变程序增加到改变程序120,以便系统100、400可以被理解为是可 高度定制的并且适应性强。

当所指定的复制表属性已经以期望的方式被改变时,恢复指令可以被发 送到RS_ORDER表(516)。例如,如所提到的,动作码“W”可以被插入到 表3中。

此后,可以查询RS_STATUS表(518)。如果随后的检查确定状态并没 有改变(520),则对表RS_STATUS的查询可以继续(518),直到状态已经 改变(520),从而完成流程图500的操作(522)。

图6是示出用于实施图4和图5的例子的特定示例性操作的流程图600。 如所示出和描述的,在图6的例子中,上面所提到的示例性表MYTEST被认 为包括在模式(schema)SLT内,而且被改变成历史的基于列的表(history  column table)。

在图6的例子中,暂停表MYTEST(602)。具体而言,查询状态表 RS_STATUS并且检索表MYTEST的状态。例如,相应的状态语句可以被构 建为:SELECT top1*FROM RS_STATUS WHERE TABLENAME=’ MYTEST’ORDER BY STARTTIME DESC。该查询可以被重复直到状态被反 映为表4中的“R”,其指示当前的复制状态。

为了继续暂停复制表MYTEST,作业被添加到作业队列表RS_ORDER 以执行暂停。例如,增加作业指令的语句看可以被表示为:INSERT INTO "SLT"."RS_ORDER"VALUES('INSTANCE_NAME',‘SERVER_NAME’, 'MYTEST',0,'S');。当如通过重复地查询状态表RS_STATUS所确定的、复制 表MYTEST的状态相对于“暂停”动作/指令被改变为“运行”时,则操作 可以继续进行。

例如,下面的语句可以被使用,其中记录的返回指示成功的暂停,否则 (在空(null)的情况下)暂停可以被认为尚未发生:SELECT TOP1*from "SLT"."RS_STATUS"WHERE"TABLENAME"='MYTEST'and"STATUS"= 'X'and"ACTION"='S'order by"STARTTIME"DESC。然后,复制表MYTEST 可以被重新命名为MYTEST_BAK(604)。例如,下面的语句可以被使用: RENAME MYTEST TO MYTEST_BAK。

然后,MYTEST_BAK可以被复制到被命名为MYTEST的新的历史的基 于列的表(new history column table)(606)。也就是说,可以使用下面的语句 来创建具有与原始的MYTEST相同的模式和数据的历史的基于列的表 MYTEST CREATE HISTORY COLUMN TABLE MYTEST LIKE  MYTEST_BAK WITH DATA。

然后,可以使用语句:DROP TABLE MYTEST_BAK来丢弃 MYTEST_BAK表(608)。然后,作业可以被添加到作业队列表RS_ORDER 以恢复对复制表MYTEST的数据复制。例如,可以使用语句:INSERT INTO "SLT"."RS_ORDER"VALUES('INSTANCE_NAME',‘SERVER_NAME’, 'MYTEST',0,'W');。通过这种方式,复制表MYTEST的恢复可以发生(610)。 如上所述,通过重复查询状态表RS_STATUS可以检查表MYTEST是否已经 成功恢复数据复制。具体来说,如果状态被成功改变为“P”,则将为以下语 句:SELECT TOP1*from"SLT"."RS_STATUS"WHERE"TABLENAME"= 'MYTEST'and"STATUS"='P'and"ACTION"='W'order by"STARTTIME" DESC返回记录。否则,将不返回结果,而且查询将继续直到数据复制的恢 复已经被确认。

如所描述的,以上所提供的各种SQL语句1-8可以被打包在单个的所存 储的改变程序内,所述单个的所存储的改变程序被包括在图1的改变程序120 中,而且包括所有必要的变量和参数。因此,如所描述的,最终的改变程序 可以完全基于使用例如相应的GUI(诸如图3的GUI300)从客户402接收 到的用户输入来运行。以这种方式,如所描述的,客户402可以被提供一种 快速、方便、可靠的技术,以选择和改变图1和图4的系统内的特定的复制 表属性及其变体。

这里描述的各种技术的实现方式可以被实施在数字电子电路中,或者实 施在计算机硬件、固件、软件,或者它们的组合中。实现方式可以实施为计 算机程序产品,即有形地具体实施在信息载体(例如机器可读存储设备或者 传播的信号)中的计算机程序,以供数据处理装置执行或者控制数据处理装 置的操作,所述数据处理装置例如可编程处理装置、计算机或多个计算机。 计算机程序,诸如上面描述的(多个)计算机程序,可以用任何形式的编程 语言编写,包括汇编语言或解释语言,并且,它可以被以任何形式部署,包 括作为独立的程序或者作为模块、组件、子程序或其他适于在计算环境中使 用的单元。计算机程序可以被部署为在一个计算机上执行或在位于一个地点 或跨过多个地点分布并被通信网络互连起来的多个计算机上执行。

方法步骤可以被一个或多个可编程处理器执行,所述可编程处理器执行 计算机程序,以便通过对输入数据操作和产生输出来执行功能。方法步骤还 可以被专用逻辑电路执行,而且装置可以被实施为专用逻辑电路,所述专用 逻辑电路例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

作为例子,适于执行计算机程序的处理器包括通用和专用微处理器,以 及任何类型的数字计算机的任意一个或多个处理器。一般来说,处理器将从 只读存储器或随机存取存储器接收指令和数据,或者从两者都接收指令和数 据。计算机的元件可以包括至少一个用于执行指令的处理器,和用于存储指 令和数据的一个或多个存储器设备。一般来说,计算机还可以包括,或者被 可操作地连接,以从一个或多个用于存储数据的海量储存设备接收数据,或 把数据传送到海量储存设备,或者二者皆有,所述海量储存设备例如:磁盘、 磁光盘或光盘。适于具体实施计算机程序指令和数据的非临时性信息载体包 括所有形式的非易失性存储器,作为例子,包括半导体存储器器件,例如: EPROM、EEPROM和闪存设备、磁盘,例如内置硬盘或可移动磁盘、磁光 盘和CD-ROM以及DVD-ROM盘。处理器和存储器可以以专用逻辑电路补 充,或者被包含在专用逻辑电路中。

为了提供和用户的交互,实现方式可以在具有显示设备和键盘以及定点 设备的计算机上实施,显示设备例如阴极射线管(CRT)或液晶显示器(LCD) 监视器,用于向用户显示信息,键盘和指示设备例如鼠标或轨迹球,用户利 用它们可以提供到计算机的输入。其他种类的设备也可以被用来提供和用户 的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反 馈、听觉反馈或触觉反馈,并且,可以以任何形式接收来自用户的输入,包 括声音、语音或触觉输入。

实现方式可以被在包括后端组件或包括中间件组件或包括前端组件的计 算系统中实施,或者在这些后端、中间件、前端组件的任意组合中实施,后 端组件例如数据服务器,中间件组件例如应用服务器,前端组件例如具有图 形用户界面,或Web浏览器的客户端计算机,通过图形用户界面或Web浏览 器,用户可以和实现方式进行交互。可以利用数字数据通信的任何形式或介 质互连组件,数字数据通信介质例如通信网络。通信网络的例子包括:局域 网(LAN)和广域网(WAN),例如因特网。

虽然如这里所描述的那样已经示出了所描述的实现方式的某些特征,但 是本领域普通技术人员现在应当想到很多修改、替换、变化或等同物。因此 应当理解,所附权利要求旨在覆盖落入实施例的实质精神内的所有这样的修 改和变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号