基于用户数据访问模式的数据库表格式转换的方法和系统的制作方法

文档序号:6509574阅读:530来源:国知局
基于用户数据访问模式的数据库表格式转换的方法和系统的制作方法【专利摘要】提供了一种用于在联网计算环境中基于用户数据访问模式在数据库格式之间进行转换(例如,从关系数据库格式转换到散列表或“大表”数据库格式)的方法。基于存储在计算机存储装置中的访问模式集合来识别具有第一格式的第一数据库表集合。然后可以提供(例如,访问、扩大和/或产生)与第一数据库表集合对应的具有第二数据库格式的第二数据库表集合。然后可以创建第一数据库表集合与第二数据库表集合之间的映射。然后可以基于查询集合的至少一个条件来产生列集合。然后可以使用该列集合作为用于第二数据库表集合的关键字。【专利说明】基于用户数据访问模式的数据库表格式转换的方法和系统【
技术领域
】[0001]总的来讲,本发明涉及数据库表格式转换。具体地讲,本发明的实施例涉及联网计算环境(例如,云计算环境)下基于用户访问模式(例如,查询、插入、更新或删除)从一个或多个关系数据库表产生散列表(又名“大表”)数据库表。【
背景技术
】[0002]联网计算环境(例如,云计算环境)是前身网格环境的增强形式,由此可以通过一个或多个附加抽象层(例如,云层)来进一步增强多个网格和其他计算资源,从而使得不同装置对于终端消费者表现为单个无缝资源池。这些资源可以包括比如物理或逻辑计算引擎、服务器和装置、装置存储器和存储装置等这样的东西。[0003]云计算模型提供用于应用程序托管的方便工具。然而,因为云环境中托管的许多数据库遵循表格数据库模型,所以在将云计算模型应用于数据库架构时可能存在挑战。也就是说,传统的关系数据库模型可能不能应用于设计将在云环境中被托管的应用程序。因此,它通常依赖于用户/消费者理解表格数据库格式所涉及的概念。就这点而论,通常手动地执行从关系数据库格式到表格数据库格式的转换,这可能很耗时而且容易出错。【
发明内容】[0004]总的来讲,本发明的实施例涉及在联网计算环境(例如,云计算环境)中基于用户数据访问模式(例如,查询、插入、更新或删除的集合)在数据库格式之间进行转换(例如,从关系数据库格式转换到散列表或“大表”数据库格式)的方法。在典型的实施例中,基于存储在计算机存储装置中的访问模式集合来识别具有第一格式的第一数据库表集合。然后可以提供(例如,访问、扩大和/或产生)与第一数据库表集合对应的具有第二数据库格式的第二数据库表集合。然后可以创建第一数据库表集合与第二数据库表集合之间的映射。然后可以基于访问模式集合的至少一个条件来产生列集合。然后可以使用该列集合作为用于第二数据库表集合的关键字。[0005]本发明的第一方面提供一种用于在联网计算环境中基于用户数据访问模式转换数据库格式的计算机实现方法,该方法包括:基于存储在计算机存储装置中的访问模式集合来识别第一数据库表集合,第一数据库表集合具有第一格式,访问模式集合指示对存储在第一数据库表集合中的数据的用户数据查询、插入、更新或删除的集合;提供与第一数据库表集合对应的具有第二数据库格式的第二数据库表集合;创建第一数据库表集合与第二数据库表集合之间的映射;并且基于访问模式集合的至少一个条件来产生用于第二数据库表集合的关键字。[0006]本发明的第二方面提供一种用于在联网计算环境中基于用户数据访问模式转换数据库格式的系统,该系统包括:存储器介质,包括指令;总线,与存储器介质耦合;以及处理器,与总线耦合,当执行这些指令时使该系统执行以下步骤:基于存储在计算机存储装置中的一组查询来识别第一数据库表集合,第一数据库表集合具有第一格式,访问模式集合指示对存储在第一数据库表集合中的数据的用户数据查询、插入、更新或删除的集合;提供与第一数据库表集合对应的具有第二数据库格式的第二数据库表集合;创建第一数据库表集合与第二数据库表集合之间的映射;并且基于访问模式集合的至少一个条件来产生用于第二数据库表集合的关键字。[0007]本发明的第三方面提供一种用于在联网计算环境中基于用户数据访问模式转换数据库格式的计算机程序产品,该计算机程序产品包括计算机可读存储介质和存储在该计算机可读存储介质上的程序指令,以:基于存储在计算机存储装置中的访问模式集合来识别第一数据库表集合,第一数据库表集合具有第一格式,访问模式集合指示对存储在第一数据库表集合中的数据的用户数据查询、插入、更新或删除的集合;提供与第一数据库表集合对应的具有第二数据库格式的第二数据库表集合;创建第一数据库表集合与第二数据库表集合之间的映射;并且基于访问模式集合的至少一个条件来产生用于第二数据库表集合的关键字。[0008]本发明的第四方面提供一种用于部署用于在联网计算环境中基于用户数据访问模式转换数据库格式的系统的方法,该方法包括:提供可操作为执行以下步骤的计算机基础设施:基于存储在计算机存储装置中的访问模式集合来识别第一数据库表集合,第一数据库表集合具有第一格式,访问模式集合指示对存储在第一数据库表集合中的数据的用户数据查询、插入、更新或删除的集合;提供与第一数据库表集合对应的具有第二数据库格式的第二数据库表集合;创建第一数据库表集合与第二数据库表集合之间的映射;并且基于访问模式集合的至少一个条件来产生用于第二数据库表集合的关键字。【专利附图】【附图说明】[0009]从以下结合附图对本发明的各方面进行的详细描述,本发明的这些特征和其他特征将更易于理解,其中:[0010]图1表示根据本发明一实施例的云计算节点;[0011]图2表示根据本发明一实施例的云计算环境;[0012]图3表示根据本发明一实施例的抽象模型层;[0013]图4表不根据本发明一实施例的系统图;[0014]图5表示根据本发明一实施例的处理/组件流程图;[0015]图6表示根据本发明一实施例的方法流程图。[0016]附图不一定按比例绘制。附图仅仅是示意性表示,并非意图描绘本发明的特定参数。附图意在于仅表示本发明的典型实施例,因此不应被认为限制本发明的范围。在附图中,相似的编号表示相似的元件。【具体实施方式】[0017]现在将在本文中参照附图更充分地描述说明性实施例,在附图中显示了实施例。然而,本公开可以以许多不同的形式实施,不应被解读为限于本文所阐述的实施例。相反,提供这些实施例,以使得本公开将是透彻的、完整的,并且将把本公开的范围充分传达给本领域的技术人员。在描述中,可以省略公知的特征和技术的细节,以避免不必要地模糊所给出的实施例。[0018]本文所使用的术语仅仅是出于描述特定示例实施例的目的,并非意图限制本公开。如本文所使用的,单数形式“一”和“该”意图也包括复数形式,除非上下文另有明确的指示。此外,术语“一”等的使用不表示数量的限制,而是表示所引用的项目中的至少一个的存在。术语“集合”意在于意指至少一个的数量。将进一步理解,术语“包括”和/或“包含”在本说明书中被使用时表明所陈述的特征、区域、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、区域、整数、步骤、操作、元件、组件和/或它们的组合的存在或添加。[0019]本发明的实施例涉及用于在联网计算环境(例如,云计算环境)下基于用户数据访问模式(例如,查询集合)在数据库格式之间进行转换(例如,从关系数据库格式转换到散列表或“大表”数据库格式)的方法。在典型的实施例中,基于存储在计算机存储装置中的访问模式集合来识别具有第一格式的第一数据库表集合。然后可以提供(例如,访问、扩大和/或产生)与第一数据表集合对应的具有第二数据库格式的第二数据库表集合。然后可以创建第一数据库表集合与第二数据库表集合之间的映射。然后可以基于访问模式集合的至少一个条件来产生列集合。然后可以使用该列集合作为用于第二数据库表集合的关键字。[0020]总的来讲,散列表或“大表”数据库格式将两个任意的字符串值(例如,行关键字和列关键字)和时间戳(因此,三维映射)映射到相关联的任意的字节阵列。大表格式可以被定义为稀疏的、分布式的多维排序映射。大表格式通常被设计为在大量机器之间缩放并且使得在没有重大重构的情况下增加更多的机器更加方便。每个表可以具有多个维度(例如,其中一个维度是关于允许版本管理和“垃圾”收集的时间的字段)。可以通过将表划分为多个小块(tablet)(例如,可以沿着被选择为使得小块将是某一大小(例如,大约200兆字节)的行来划分这些表的表段)来针对各种文件系统对这些表进行优化。[0021]当表的大小具有增长超过指定限制的可能性时,可以使用各种算法(例如,BMDiff、Zippy压缩算法(开源为Snappy))来压缩小块。小块中的位置可以被记录为多个专用小块中的数据库条目,这些专用小块被称为“META1”小块。可以通过查询“ΜΕΤΑ0”小块来找到METAl小块,“ΜΕΤΑ0”小块通常驻留在它自己的服务器上,因为客户端可能通常向它查询“META1”小块的位置。按照这些原则,METAO服务器通常不是一个瓶颈,因为发现并发送METAl位置所必需的处理器时间和带宽通常为最小,并且客户端可以高速缓存位置以使查询最少。[0022]首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。[0023]云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。[0024]特征包括:[0025]按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。[0026]广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。[0027]资源池:提供者的计算资源被归入资源池并通过多租户(mult1-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。[0028]迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。[0029]可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。[0030]服务模型如下:[0031]软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础结构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础结构。[0032]平台即服务(PaaS):向消费者提供的能力是在云基础结构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础结构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。[0033]基础结构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础结构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。[0034]部署模型如下:[0035]私有云:云基础结构单独为某个组织运行。云基础结构可以由该组织或第三方管理并且可以存在于该组织内部或外部。[0036]共同体云:云基础结构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。[0037]公共云:云基础结构向公众或大型产业群提供并由出售云服务的组织拥有。[0038]混合云:云基础结构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。[0039]云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础结构。[0040]现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。[0041]云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12—起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等坐寸ο[0042]计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。[0043]如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。[0044]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。[0045]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。[0046]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。[0047]本发明的实施例可以被实现为计算机可读信号介质,该计算机可读信号介质可以包括其中包含计算机可读程序代码的传播数据信号(例如,基带信号或者作为载波的一部分的信号)。这样的传播信号可以米取各种形式中的任何一种形式,包括,但不限于,电磁形式、光学形式或者它们的任何合适组合。计算机可读信号介质可以是不是计算机可读存储介质的、可以传送、传播或传输程序的任何计算机可读介质,该程序供指令执行系统、设备或装置使用或者与指令执行系统、设备或装置结合使用。[0048]可以使用任何合适的介质(包括,但不限于,无线、有线、光纤电缆、射频(RF)等或前述介质的任何合适组合)来发送计算机可读介质上包含的程序代码。[0049]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。[0050]计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12—起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统坐寸ο[0051]现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础结构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。[0052]现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:[0053]硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如IBM?zSeries?;系统;基于Rise(精简指令集计算机)体系结构的服务器,例如IBMpSeries?系统;ibmxSeries?系统;ibmBladeCenter?系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如ibmWebSphere?应用服务器软件;数据库软件,例如IBMDB2?数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。[0054]虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。[0055]在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能--为根据SLA预测的对云计算资源未来需求提供预先安排和供应。在管理层进一步示出的是数据库格式转换,其表示基于本发明的实施例提供的功能。[0056]工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及消费者数据存储和备份。如以上所提及的,关于图3所描述的前述所有示例仅仅是说明性的,本发明不限于这些示例。[0057]要理解,可以通过数据库格式转换功能(管理层64的数据库格式转换功能,其可以被有形地实施为程序/实用程序40(图1)的程序代码42的模块)来执行如本文典型地描述的本发明的所有功能。然而,情况不需要如此。相反,可以通过图3中所示的层60-66中的任何一个来执行/实现和/或启用本文记载的功能。[0058]重申,尽管本公开包括关于云计算的详细描述,但是本文记载的教导的实现不限于云计算环境。事实上,本发明的实施例意图用现在已知或以后开发的任何类型的联网计算环境来实现。[0059]如以上所记载的,本发明的实施例使得能够基于关系数据库模型(例如,用ddl或xml模式文件表达)和数据访问模式来创建大表。总的来讲,本发明的实施例将权衡利用用户数据访问模式(例如,查询、插入、更新或删除)来创建大表。也就是说,查询、插入、更新或删除中所涉及的数据(来自表和结点的数据)被检查/分析,并被使用来构造大表。[0060]现在参照图4,示出了描述本文所讨论的根据本发明一实施例的功能的系统图。要理解,可以在任何类型的联网计算环境86(例如,云计算环境50)内实施本文记载的教导。图4中示出了可以被实现为单机计算机系统或联网计算机系统的计算机系统/服务器12。在联网计算环境86中实施本文记载的教导的情况下,每个客户端无需具有数据库格式转换引擎(引擎70)。事实上,可以在与客户端通信(例如,无线通信)以向其提供数据库格式转换的服务器或有服务器能力的装置上加载引擎70。不管怎样,如所描绘的,引擎70被示出在计算机系统/服务器12内。一般来讲,引擎70可以被实现为图1的计算机系统12上的程序/实用程序40,并且可以能够实现本文记载的功能。如进一步所示出的,引擎70(在一个实施例中)包括规则和/或计算引擎,该规则和/或计算引擎对一组(至少一个)规则/逻辑72进行处理和/或据此提供数据库格式转换。[0061]按照这些原则,引擎70可以执行与通用计算机类似的多种功能。具体地讲,除了其他功能之外,引擎70可以(除了其他方面之外):基于访问模式集合74A-N(例如,尽管未示出,但是访问模式集合74A-N还可以从一个或多个计算机存储装置被访问和/或存储)来识别具有第一格式(例如,关系数据库)的第一数据库表集合80A-N(例如,被存储在一个或多个计算机存储装置78中),访问模式集合74A-N是对存储在第一数据库表集合80A-N中的数据的用户数据查询、插入、更新和/或删除集合;提供与第一数据库表集合80A-N对应的具有第二数据库格式(例如,大表/散列表数据库格式)的第二数据库表集合82A-N;从第一数据库表集合80A-N产生非规范化表集合;扩大第一数据库表集合80A-N中的至少一个表,以得到第二数据库表集合82A-N;创建第一数据库表集合80A-N与第二数据库表集合82A-N之间的映射76;基于访问模式集合的至少一个条件来产生用于第二数据库表集合的关键字;基于访问模式集合74A-N的至少一个条件来产生列集合;使用该列集合作为用于第二数据库表集合82A-N的关键字;和/或基于下列中的至少一个来将至少一个数据操作(例如,数据删除操作、数据插入操作等)传播到第二数据库表集合82A-N:所述关键字、所述映射或所述至少一个条件。[0062]现在参照图5,示出了根据本发明一实施例的组件流程图。要提前理解的是,图5中所示的组件中的一个或多个可以通过图1-4的任一组件(例如,图1的程序40、图4的引擎70和/或计算机存储装置78等)来实现或者与任一组件结合实现。不管怎样,如所示的,图5概括地示出了以下组件:[0063]关系数据模型和访问模式100:关系数据模型可以用数据定义语言(DDL)表示。访问模式概括地表示对于关系数据模型的一个或多个操作(例如,查询、数据插入操作、数据更新操作、数据删除操作等)。[0064]大表解(solution)产生器102:通过将关系数据模型和访问模式取作输入,可以产生两个或更多个对象,比如:定义大表名称、表结构的云数据表储存库配置和散列表定义104(例如,散列表定义、关键字定义等);和/或数据服务应用程序编程接口(API)定义和实现逻辑106(例如,实现访问模式的方法和/或逻辑)。[0065]云数据服务器110:通过部署数据服务API定义和实现逻辑106,云数据服务器110可以为一个或多个客户端应用程序108提供数据服务。这样的服务可以包括访问模式中所描述的操作。[0066]云数据储存库112:包含客户端应用程序所利用的数据的计算机存储装置。[0067]总的来讲,通过图5的组件的处理可以如下进行:[0068]步骤Pl:基于关系数据模型和访问模型100,大表解产生器102可以创建云数据储存库配置和散列表定义104以及数据服务API定义和实现逻辑106。[0069]步骤P2:将云数据储存库配置和散列表定义104部署到云数据储存库112中。[0070]步骤P3:将数据服务API定义和实现逻辑106部署到云数据服务器110中。[0071]步骤P4:客户端应用程序108通过云数据服务器110中部署的API来发出数据服务请求。[0072]步骤P5:云数据服务器110促成对存储在云数据储存库112中的数据的访问。[0073]步骤P6:云数据储存库112将被请求的数据传送给云数据服务器110。[0074]步骤P7:云数据服务器110将服务请求结果返回给客户端应用程序108。[0075]说明件示例[0076]本节将描述用于实现本发明的至少一个实施例的说明性算法/处理。该算法将利用以下输入和/或输出:[0077]输入:ER模型和访问模式(例如,查询、插入、更新或删除等)[0078]输出:大表模型[0079]步骤1:[0080]对于每个查询,[0081](I)基于“FROM(从)”子句中指定的表来识别对应的关系表。[0082](1.1)如果现存的大表涵盖所识别的关系表,则进入步骤(2)。[0083](1.2)如果现存的大表部分地涵盖所识别的关系表(例如,大表/散列表通过表A与表B结合而形成,所识别的关系表包括表A、表B和表C),则应当通过所识别的没有被涵盖的表(比如,表C)来扩大现存的大表。[0084](1.3)否则,从这些所识别的关系表产生非规范化表,该非规范化表形成新的大表。[0085]另外,创建每个所识别的关系表与所更新的或新产生的大表之间的映射。[0086](2)对指定的查询条件(包括“=条件)中所提及的列创建列族。另外,需要对应的辅助索引来确保搜索性能。例如,在比如“StudentID=’001’”的条件下,应当在列StudentID上构建辅助索引。[0087](3)利用列族作为用于大表的关键字。[0088]可以注意到的是,在这个步骤结束时,如果关系数据库表还未被映射到大表,则将创建具有该表的大表,并且将创建对应的映射。[0089]步骤2:[0090]对于每个删除操作:[0091](I)识别针对删除操作中涉及的关系表映射的大表。[0092](2)对于每个大表,检查删除操作的条件[0093](2.1)如果访问大表的关键字可以支持条件运行,则进入下一个大表;[0094](2.2)否则,如以上步骤I中所描述的那样创建访问大表的关键字。[0095]可以注意到的是,一旦映射被创建,就可以如下插入一个或多个数据操作:[0096]对于每个插入操作:[0097](I)识别针对插入操作中所涉及的关系表映射的大表。[0098](2)对于每个所识别的大表[0099](2.1)对于大表中的每个记录,检查待插入记录与大表记录之间的兼容性。例如,假设这个大表通过表A与表B之间的结合而形成,结合条件是A.StudentID=B.StudentID。假设现在我们需要将记录插入到表A中。那么,我们需要检查新插入的记录中的StudentID列是否具有与大表记录中的StudentID字段相同的值。如果它们是兼容的,则我们可以将新记录插入到大表中,其中,待插入记录与大表记录中的其余字段结合。[0100](2.2)如果大表中没有与待插入记录兼容的记录,则我们将把新记录插入到仅具有待插入记录的字段的大表中。[0101]可以通过删除和插入来进行更新,所以它的操作类似于插入和删除。[0102]现在参照图6,示出了根据本发明一实施例的方法流程图。在步骤SI中,基于存储在计算机存储装置中的用户访问模式集合来识别具有第一格式(例如,关系数据库格式)的第一数据库表集合(例如,用户访问模式集合指示对存储在第一数据库表集合中的数据的用户数据检索操作集合)。在步骤S2中,提供与第一数据库表集合对应的具有第二数据库格式(例如,大表格式)的第二数据库表集合。在步骤S3中,创建第一数据库表集合与第二数据库表集合之间的映射。在步骤S4中,基于用户访问模式集合的至少一个条件来产生列集合。在步骤S5中,使用该列集合作为用于第二数据库表集合的关键字。[0103]尽管在本文中被示出和描述为数据库格式转换解决方案,但是要理解本发明还提供各种替代实施例。例如,在一个实施例中,本发明提供一种计算机可读/可用介质,该计算机可读/可用介质包括使计算机基础架构能够提供如本文所讨论的数据库格式转换功能的计算机程序代码。在这种意义上,计算机可读/可用介质包括实现本发明的各种处理中的每种处理的程序代码。要理解,术语计算机可读介质或计算机可用介质包括程序代码的任何类型的物理实施例中的一个或多个。特别地,计算机可读/可用介质可以包括包含在一个或多个便携式存储制品(例如,光盘、磁盘、磁带等)上、在计算装置的一个或多个数据存储部分(比如,存储器28(图1)和/或存储系统34(图1)(例如,固定盘、只读存储器、随机存取存储器、高速缓冲存储器等))上的程序代码。[0104]在另一个实施例中,本发明提供一种在订阅、广告和/或费用的基础上执行本发明的处理的方法。也就是说,服务提供者(比如,解决方案整合者)可以对提供数据库格式转换功能进行报价。在这种情况下,服务提供者可以创建、维护、支持(等等其他)如下计算机基础架构(比如,计算机系统12(图1)),该计算机基础架构为一个或多个消费者执行本发明的处理。作为回报,服务提供者可以根据订阅和/或费用协议接收来自消费者的付款,和/或服务提供者可以通过将广告内容出售给一个或多个第三方来接收付款。[0105]在又一个实施例中,本发明提供一种用于数据库格式转换的计算机实现方法。在这种情况下,可以提供计算机基础架构(比如,计算机系统12(图1)),并且可以获得(例如,创建、购买、使用、修改等)用于执行本发明的处理的一个或多个系统并将这些系统部署到该计算机基础架构。在这种意义上,系统的部署可以包括下列中的一个或多个:(I)从计算机可读介质将程序代码安装在计算装置(比如,计算机系统12(图1))上;(2)将一个或多个计算装置添加到计算机基础架构;以及(3)合并和/或修改计算机基础架构的一个或多个现存系统以使得计算机基础架构能够执行本发明的处理。[0106]如本文所使用的,要理解术语“程序代码”和“计算机程序代码”是同义的,并且意指以任何语言、代码或标注对指令集的任何表达,这些指令意图使具有信息处理能力的计算装置直接执行特定功能或者在以下操作中的任一操作或两个操作之后执行特定功能:(a)转换为另一种语言、代码或标注;和/或(b)以不同的有形形式再现。在这种意义上,程序代码可以被实施为下列中的一个或多个:应用程序/软件程序、组件软件/功能库、操作系统、用于特定计算装置的基本装置系统/驱动器等。[0107]适合于存储和/或执行程序代码的数据处理系统可以依此提供,并且可以包括通过系统总线与存储器元件直接地或间接地通信耦合的至少一个处理器。存储器元件可以包括,但不限于,在实际执行程序代码期间所利用的本地存储器、大容量储存器、以及提供至少一些程序代码的临时存储以便减少执行期间必须从大容量储存器检索代码的次数的高速缓存。输入/输出和/或其他外部装置(包括,但不限于,键盘、显示器、定点装置等河以直接与系统耦合,或者通过介于中间的装置控制器与系统耦合。[0108]网络适配器也可以与系统耦合以使得数据处理系统能够通过介于中间的私有网络或公共网络的任何组合变为与其他数据处理系统、远程打印机、存储装置等耦合。说明性网络适配器包括,但不限于,调制解调器、电缆调制解调器和以太网卡。[0109]已出于说明和描述的目的给出了本发明的各方面的前述描述。意图不在于穷举或者使本发明限于所公开的精确形式,并且显然,许多修改和变化是可能的。对于本领域技术人员可以显而易见的这样的修改和变化意图包括在如所附权利要求所限定的本发明的范围内。【权利要求】1.一种用于在联网计算环境中基于用户数据访问模式转换数据库格式的计算机实现方法,包括:基于存储在计算机存储装置中的访问模式集合来识别第一数据库表集合,所述第一数据库表集合具有第一格式,所述访问模式集合指示对存储在第一数据库表集合中的数据的用户数据查询、插入、更新或删除的集合;提供与第一数据库表集合对应的具有第二数据库格式的第二数据库表集合;创建第一数据库表集合与第二数据库表集合之间的映射;以及基于所述访问模式集合的至少一个条件来产生用于第二数据库表集合的关键字。2.根据权利要求1所述的计算机实现方法,所述第一格式是关系数据库格式,所述第二格式是散列表格式。3.根据权利要求1所述的计算机实现方法,所述产生包括:基于所述访问模式集合的所述至少一个条件来产生列集合;以及使用所述列集合作为用于第二数据库表集合的关键字。4.根据权利要求1所述的计算机实现方法,所述提供包括从第一数据库表集合产生非规范化表集合。5.根据权利要求1所述的计算机实现方法,所述提供包括扩大第一数据库表集合的至少一个表以得到第二数据库表集合。6.根据权利要求1所述的计算机实现方法,还包括基于下列中的至少一个将至少一个数据操作传播到第二数据库表集合:所述关键字、所述映射或所述至少一个条件。7.根据权利要求6所述的计算机实现方法,所述至少一个数据操作是下列操作中的至少一个:数据查询操作、数据更新操作、数据删除操作或数据插入操作。8.一种用于在联网计算环境中基于用户数据访问模式转换数据库格式的系统,包括:存储器介质,所述存储器介质包括指令;总线,所述总线与所述存储器介质耦合;以及处理器,所述处理器与所述总线耦合,当执行所述指令时使所述系统执行以下步骤:基于存储在计算机存储装置中的访问模式集合来识别第一数据库表集合,所述第一数据库表集合具有第一格式,所述访问模式集合指示对存储在第一数据库表集合中的数据的用户数据查询、插入、更新或删除的集合;提供与第一数据库表集合对应的具有第二数据库格式的第二数据库表集合;创建第一数据库表集合与第二数据库表集合之间的映射;以及基于所述访问模式集合的至少一个条件来产生用于第二数据库表集合的关键字。9.根据权利要求8所述的系统,所述第一格式是关系数据库格式,所述第二格式是散列表格式。10.根据权利要求8所述的系统,所述存储器介质进一步包括用于使所述系统执行以下步骤的指令:基于所述访问模式集合的所述至少一个条件来产生列集合;以及使用所述列集合作为用于第二数据库表集合的关键字。11.根据权利要求8所述的系统,所述存储器介质进一步包括用于使所述系统从第一数据库表集合产生非规范化表集合的指令。12.根据权利要求8所述的系统,所述存储器介质进一步包括用于使所述系统扩大第一数据库表集合的至少一个表以得到第二数据库表集合的指令。13.根据权利要求8所述的系统,所述存储器介质进一步包括用于使所述系统基于下列中的至少一个将至少一个数据操作传播到第二数据库表集合的指令:所述关键字、所述映射或所述至少一个条件。14.根据权利要求13所述的系统,所述至少一个数据操作是下列操作中的至少一个:数据查询操作、数据更新操作、数据删除操作或数据插入操作。15.一种用于部署用于在联网计算环境中基于用户数据访问模式转换数据库格式的系统的方法,包括:提供能够操作为执行以下步骤的计算机基础设施:基于存储在计算机存储装置中的访问模式集合来识别第一数据库表集合,所述第一数据库表集合具有第一格式,所述访问模式集合指示对存储在第一数据库表集合中的数据的用户数据查询、插入、更新或删除的集合;提供与第一数据库表集合对应的具有第二数据库格式的第二数据库表集合;创建第一数据库表集合与第二数据库表集合之间的映射;以及基于所述访问模式`集合的至少一个条件来产生用于第二数据库表集合的关键字。【文档编号】G06F17/30GK103678442SQ201310386726【公开日】2014年3月26日申请日期:2013年8月30日优先权日:2012年8月30日【发明者】L·S·德卢卡,邓豫,李姗姗,曾梁赵申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1