首页> 中国专利> 基于用户数据访问模式的数据库表格式转换的方法和系统

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

摘要

提供了一种用于在联网计算环境中基于用户数据访问模式在数据库格式之间进行转换(例如,从关系数据库格式转换到散列表或“大表”数据库格式)的方法。基于存储在计算机存储装置中的访问模式集合来识别具有第一格式的第一数据库表集合。然后可以提供(例如,访问、扩大和/或产生)与第一数据库表集合对应的具有第二数据库格式的第二数据库表集合。然后可以创建第一数据库表集合与第二数据库表集合之间的映射。然后可以基于查询集合的至少一个条件来产生列集合。然后可以使用该列集合作为用于第二数据库表集合的关键字。

著录项

  • 公开/公告号CN103678442A

    专利类型发明专利

  • 公开/公告日2014-03-26

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201310386726.9

  • 申请日2013-08-30

  • 分类号G06F17/30;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人罗银燕

  • 地址 美国纽约

  • 入库时间 2023-12-17 01:00:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-20

    授权

    授权

  • 2014-04-23

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20130830

    实质审查的生效

  • 2014-03-26

    公开

    公开

说明书

技术领域

总的来讲,本发明涉及数据库表格式转换。具体地讲,本发明的 实施例涉及联网计算环境(例如,云计算环境)下基于用户访问模式 (例如,查询、插入、更新或删除)从一个或多个关系数据库表产生 散列表(又名“大表”)数据库表。

背景技术

联网计算环境(例如,云计算环境)是前身网格环境的增强形式, 由此可以通过一个或多个附加抽象层(例如,云层)来进一步增强多 个网格和其他计算资源,从而使得不同装置对于终端消费者表现为单 个无缝资源池。这些资源可以包括比如物理或逻辑计算引擎、服务器 和装置、装置存储器和存储装置等这样的东西。

云计算模型提供用于应用程序托管的方便工具。然而,因为云环 境中托管的许多数据库遵循表格数据库模型,所以在将云计算模型应 用于数据库架构时可能存在挑战。也就是说,传统的关系数据库模型 可能不能应用于设计将在云环境中被托管的应用程序。因此,它通常 依赖于用户/消费者理解表格数据库格式所涉及的概念。就这点而论, 通常手动地执行从关系数据库格式到表格数据库格式的转换,这可能 很耗时而且容易出错。

发明内容

总的来讲,本发明的实施例涉及在联网计算环境(例如,云计算 环境)中基于用户数据访问模式(例如,查询、插入、更新或删除的 集合)在数据库格式之间进行转换(例如,从关系数据库格式转换到 散列表或“大表”数据库格式)的方法。在典型的实施例中,基于存 储在计算机存储装置中的访问模式集合来识别具有第一格式的第一数 据库表集合。然后可以提供(例如,访问、扩大和/或产生)与第一数 据库表集合对应的具有第二数据库格式的第二数据库表集合。然后可 以创建第一数据库表集合与第二数据库表集合之间的映射。然后可以 基于访问模式集合的至少一个条件来产生列集合。然后可以使用该列 集合作为用于第二数据库表集合的关键字。

本发明的第一方面提供一种用于在联网计算环境中基于用户数据 访问模式转换数据库格式的计算机实现方法,该方法包括:基于存储 在计算机存储装置中的访问模式集合来识别第一数据库表集合,第一 数据库表集合具有第一格式,访问模式集合指示对存储在第一数据库 表集合中的数据的用户数据查询、插入、更新或删除的集合;提供与 第一数据库表集合对应的具有第二数据库格式的第二数据库表集合; 创建第一数据库表集合与第二数据库表集合之间的映射;并且基于访 问模式集合的至少一个条件来产生用于第二数据库表集合的关键字。

本发明的第二方面提供一种用于在联网计算环境中基于用户数据 访问模式转换数据库格式的系统,该系统包括:存储器介质,包括指 令;总线,与存储器介质耦合;以及处理器,与总线耦合,当执行这 些指令时使该系统执行以下步骤:基于存储在计算机存储装置中的一 组查询来识别第一数据库表集合,第一数据库表集合具有第一格式, 访问模式集合指示对存储在第一数据库表集合中的数据的用户数据查 询、插入、更新或删除的集合;提供与第一数据库表集合对应的具有 第二数据库格式的第二数据库表集合;创建第一数据库表集合与第二 数据库表集合之间的映射;并且基于访问模式集合的至少一个条件来 产生用于第二数据库表集合的关键字。

本发明的第三方面提供一种用于在联网计算环境中基于用户数据 访问模式转换数据库格式的计算机程序产品,该计算机程序产品包括 计算机可读存储介质和存储在该计算机可读存储介质上的程序指令, 以:基于存储在计算机存储装置中的访问模式集合来识别第一数据库 表集合,第一数据库表集合具有第一格式,访问模式集合指示对存储 在第一数据库表集合中的数据的用户数据查询、插入、更新或删除的 集合;提供与第一数据库表集合对应的具有第二数据库格式的第二数 据库表集合;创建第一数据库表集合与第二数据库表集合之间的映射; 并且基于访问模式集合的至少一个条件来产生用于第二数据库表集合 的关键字。

本发明的第四方面提供一种用于部署用于在联网计算环境中基于 用户数据访问模式转换数据库格式的系统的方法,该方法包括:提供 可操作为执行以下步骤的计算机基础设施:基于存储在计算机存储装 置中的访问模式集合来识别第一数据库表集合,第一数据库表集合具 有第一格式,访问模式集合指示对存储在第一数据库表集合中的数据 的用户数据查询、插入、更新或删除的集合;提供与第一数据库表集 合对应的具有第二数据库格式的第二数据库表集合;创建第一数据库 表集合与第二数据库表集合之间的映射;并且基于访问模式集合的至 少一个条件来产生用于第二数据库表集合的关键字。

附图说明

从以下结合附图对本发明的各方面进行的详细描述,本发明的这 些特征和其他特征将更易于理解,其中:

图1表示根据本发明一实施例的云计算节点;

图2表示根据本发明一实施例的云计算环境;

图3表示根据本发明一实施例的抽象模型层;

图4表示根据本发明一实施例的系统图;

图5表示根据本发明一实施例的处理/组件流程图;

图6表示根据本发明一实施例的方法流程图。

附图不一定按比例绘制。附图仅仅是示意性表示,并非意图描绘 本发明的特定参数。附图意在于仅表示本发明的典型实施例,因此不 应被认为限制本发明的范围。在附图中,相似的编号表示相似的元件。

具体实施方式

现在将在本文中参照附图更充分地描述说明性实施例,在附图中 显示了实施例。然而,本公开可以以许多不同的形式实施,不应被解 读为限于本文所阐述的实施例。相反,提供这些实施例,以使得本公 开将是透彻的、完整的,并且将把本公开的范围充分传达给本领域的 技术人员。在描述中,可以省略公知的特征和技术的细节,以避免不 必要地模糊所给出的实施例。

本文所使用的术语仅仅是出于描述特定示例实施例的目的,并非 意图限制本公开。如本文所使用的,单数形式“一”和“该”意图也 包括复数形式,除非上下文另有明确的指示。此外,术语“一”等的 使用不表示数量的限制,而是表示所引用的项目中的至少一个的存在。 术语“集合”意在于意指至少一个的数量。将进一步理解,术语“包 括”和/或“包含”在本说明书中被使用时表明所陈述的特征、区域、 整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他 特征、区域、整数、步骤、操作、元件、组件和/或它们的组合的存在 或添加。

本发明的实施例涉及用于在联网计算环境(例如,云计算环境) 下基于用户数据访问模式(例如,查询集合)在数据库格式之间进行 转换(例如,从关系数据库格式转换到散列表或“大表”数据库格式) 的方法。在典型的实施例中,基于存储在计算机存储装置中的访问模 式集合来识别具有第一格式的第一数据库表集合。然后可以提供(例 如,访问、扩大和/或产生)与第一数据表集合对应的具有第二数据库 格式的第二数据库表集合。然后可以创建第一数据库表集合与第二数 据库表集合之间的映射。然后可以基于访问模式集合的至少一个条件 来产生列集合。然后可以使用该列集合作为用于第二数据库表集合的 关键字。

总的来讲,散列表或“大表”数据库格式将两个任意的字符串值 (例如,行关键字和列关键字)和时间戳(因此,三维映射)映射到 相关联的任意的字节阵列。大表格式可以被定义为稀疏的、分布式的 多维排序映射。大表格式通常被设计为在大量机器之间缩放并且使得 在没有重大重构的情况下增加更多的机器更加方便。每个表可以具有 多个维度(例如,其中一个维度是关于允许版本管理和“垃圾”收集 的时间的字段)。可以通过将表划分为多个小块(tablet)(例如,可 以沿着被选择为使得小块将是某一大小(例如,大约200兆字节)的 行来划分这些表的表段)来针对各种文件系统对这些表进行优化。

当表的大小具有增长超过指定限制的可能性时,可以使用各种算 法(例如,BMDiff、Zippy压缩算法(开源为Snappy))来压缩小块。 小块中的位置可以被记录为多个专用小块中的数据库条目,这些专用 小块被称为“META1”小块。可以通过查询“META0”小块来找到 META1小块,“META0”小块通常驻留在它自己的服务器上,因为 客户端可能通常向它查询“META1”小块的位置。按照这些原则, META0服务器通常不是一个瓶颈,因为发现并发送META1位置所 必需的处理器时间和带宽通常为最小,并且客户端可以高速缓存位置 以使查询最少。

首先应当理解,尽管本公开包括关于云计算的详细描述,但其中 记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知 或以后开发的任何其它类型的计算环境而实现。

云计算是一种服务交付模式,用于对共享的可配置计算资源池进 行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本 或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可 以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和 服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少 四个部署模型。

特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互 的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的 计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这 种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例 如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户 (multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源 和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚 至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定 位置(例如国家、州或数据中心),因此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力, 以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于 部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任 意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、 带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优 化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和 消费者双方提供透明度。

服务模型如下:

软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础 结构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如 基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定 于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务 器、操作系统、存储、乃至单个应用能力等的底层云基础结构。

平台即服务(PaaS):向消费者提供的能力是在云基础结构上部署 消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言 和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统 或存储的底层云基础结构,但对其部署的应用具有控制权,对应用托 管环境配置可能也具有控制权。

基础结构即服务(IaaS):向消费者提供的能力是消费者能够在 其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络 和其他基础计算资源。消费者既不管理也不控制底层的云基础结构, 但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组 件(例如主机防火墙)可能具有有限的控制权。

部署模型如下:

私有云:云基础结构单独为某个组织运行。云基础结构可以由该 组织或第三方管理并且可以存在于该组织内部或外部。

共同体云:云基础结构被若干组织共享并支持有共同利害关系(例 如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云 可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内 部或外部。

公共云:云基础结构向公众或大型产业群提供并由出售云服务的 组织拥有。

混合云:云基础结构由两个或更多部署模型的云(私有云、共同 体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和 应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡 的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模 块性和语意的互操作性。云计算的核心是包含互连节点网络的基础结 构。

现在参考图1,其中显示了云计算节点的一个例子。图1显示的 云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实 施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用 来实现和/或执行以上所述的任何功能。

云计算节点10具有计算机系统/服务器12,其可与众多其它通用 或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/ 服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于: 个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或 膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网 络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统 的分布式云计算技术环境,等等。

计算机系统/服务器12可以在由计算机系统执行的计算机系统可 执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以 包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目 标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通 过通信网络链接的远程处理设备执行任务的分布式云计算环境中实 施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地 或远程计算系统存储介质上。

如图1所示,云计算节点10中的计算机系统/服务器12以通用计 算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于: 一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统 组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者 存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线 结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但 不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总 线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外 围组件互连(PCI)总线。

计算机系统/服务器12典型地包括多种计算机系统可读介质。这 些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质, 包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介 质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算 机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/ 非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读 写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动 器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例 如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如 CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些 情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18 相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例 如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例 的功能。

本发明的实施例可以被实现为计算机可读信号介质,该计算机可 读信号介质可以包括其中包含计算机可读程序代码的传播数据信号 (例如,基带信号或者作为载波的一部分的信号)。这样的传播信号 可以采取各种形式中的任何一种形式,包括,但不限于,电磁形式、 光学形式或者它们的任何合适组合。计算机可读信号介质可以是不是 计算机可读存储介质的、可以传送、传播或传输程序的任何计算机可 读介质,该程序供指令执行系统、设备或装置使用或者与指令执行系 统、设备或装置结合使用。

可以使用任何合适的介质(包括,但不限于,无线、有线、光纤 电缆、射频(RF)等或前述介质的任何合适组合)来发送计算机可读 介质上包含的程序代码。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存 储在存储器28中,这样的程序模块42包括但不限于操作系统、一个 或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一 个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发 明所描述的实施例中的功能和/或方法。

计算机系统/服务器12也可以与一个或多个外部设备14(例如键 盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能 与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系 统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例 如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O) 接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20 与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或 公共网络,例如因特网)通信。如图所示,网络适配器20通过总线 18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未 示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作, 包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动 阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

现在参考图2,其中显示了示例性的云计算环境50。如图所示, 云计算环境50包括云计算消费者使用的本地计算设备可以与其相通 信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字 助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/ 或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包 括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们 的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组 (图中未显示)。这样,云的消费者无需在本地计算设备上维护资源 就能请求云计算环境50提供的基础结构即服务(IaaS)、平台即服务 (PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算 设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以 与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如 使用网络浏览器)通信。

现在参考图3,其中显示了云计算环境50(图2)提供的一组功 能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示 意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应 功能:

硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主 机,例如系统;基于RISC(精简指令集计算机)体 系结构的服务器,例如IBM系统;IBM系统;IBM 系统;存储设备;网络和网络组件。软件组件的例子包 括:网络应用服务器软件,例如IBM应用服务器软件; 数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries, xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全 世界各地的注册商标)。

虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子: 虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用 和操作系统,以及虚拟客户端。

在一个示例中,管理层64可以提供下述功能:资源供应功能:提 供用于在云计算环境中执行任务的计算资源和其它资源的动态获取; 计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为 此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。 安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提 供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的 访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必 需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA 预测的对云计算资源未来需求提供预先安排和供应。在管理层进一步 示出的是数据库格式转换,其表示基于本发明的实施例提供的功能。

工作负载层66提供云计算环境可能实现的功能的示例。在该层 中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开 发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理; 以及消费者数据存储和备份。如以上所提及的,关于图3所描述的前 述所有示例仅仅是说明性的,本发明不限于这些示例。

要理解,可以通过数据库格式转换功能(管理层64的数据库格式 转换功能,其可以被有形地实施为程序/实用程序40(图1)的程序代 码42的模块)来执行如本文典型地描述的本发明的所有功能。然而, 情况不需要如此。相反,可以通过图3中所示的层60-66中的任何一 个来执行/实现和/或启用本文记载的功能。

重申,尽管本公开包括关于云计算的详细描述,但是本文记载的 教导的实现不限于云计算环境。事实上,本发明的实施例意图用现在 已知或以后开发的任何类型的联网计算环境来实现。

如以上所记载的,本发明的实施例使得能够基于关系数据库模型 (例如,用ddl或xml模式文件表达)和数据访问模式来创建大表。 总的来讲,本发明的实施例将权衡利用用户数据访问模式(例如,查 询、插入、更新或删除)来创建大表。也就是说,查询、插入、更新 或删除中所涉及的数据(来自表和结点的数据)被检查/分析,并被使 用来构造大表。

现在参照图4,示出了描述本文所讨论的根据本发明一实施例的 功能的系统图。要理解,可以在任何类型的联网计算环境86(例如, 云计算环境50)内实施本文记载的教导。图4中示出了可以被实现为 单机计算机系统或联网计算机系统的计算机系统/服务器12。在联网计 算环境86中实施本文记载的教导的情况下,每个客户端无需具有数据 库格式转换引擎(引擎70)。事实上,可以在与客户端通信(例如, 无线通信)以向其提供数据库格式转换的服务器或有服务器能力的装 置上加载引擎70。不管怎样,如所描绘的,引擎70被示出在计算机 系统/服务器12内。一般来讲,引擎70可以被实现为图1的计算机系 统12上的程序/实用程序40,并且可以能够实现本文记载的功能。如 进一步所示出的,引擎70(在一个实施例中)包括规则和/或计算引擎, 该规则和/或计算引擎对一组(至少一个)规则/逻辑72进行处理和/ 或据此提供数据库格式转换。

按照这些原则,引擎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:所述关键 字、所述映射或所述至少一个条件。

现在参照图5,示出了根据本发明一实施例的组件流程图。要提 前理解的是,图5中所示的组件中的一个或多个可以通过图1-4的任 一组件(例如,图1的程序40、图4的引擎70和/或计算机存储装置 78等)来实现或者与任一组件结合实现。不管怎样,如所示的,图5 概括地示出了以下组件:

关系数据模型和访问模式100:关系数据模型可以用数据定义语 言(DDL)表示。访问模式概括地表示对于关系数据模型的一个或多 个操作(例如,查询、数据插入操作、数据更新操作、数据删除操作 等)。

大表解(solution)产生器102:通过将关系数据模型和访问模式 取作输入,可以产生两个或更多个对象,比如:定义大表名称、表结 构的云数据表储存库配置和散列表定义104(例如,散列表定义、关 键字定义等);和/或数据服务应用程序编程接口(API)定义和实现 逻辑106(例如,实现访问模式的方法和/或逻辑)。

云数据服务器110:通过部署数据服务API定义和实现逻辑106, 云数据服务器110可以为一个或多个客户端应用程序108提供数据服 务。这样的服务可以包括访问模式中所描述的操作。

云数据储存库112:包含客户端应用程序所利用的数据的计算机 存储装置。

总的来讲,通过图5的组件的处理可以如下进行:

步骤P1:基于关系数据模型和访问模型100,大表解产生器102 可以创建云数据储存库配置和散列表定义104以及数据服务API定义 和实现逻辑106。

步骤P2:将云数据储存库配置和散列表定义104部署到云数据储 存库112中。

步骤P3:将数据服务API定义和实现逻辑106部署到云数据服 务器110中。

步骤P4:客户端应用程序108通过云数据服务器110中部署的 API来发出数据服务请求。

步骤P5:云数据服务器110促成对存储在云数据储存库112中的 数据的访问。

步骤P6:云数据储存库112将被请求的数据传送给云数据服务器 110。

步骤P7:云数据服务器110将服务请求结果返回给客户端应用程 序108。

说明性示例

本节将描述用于实现本发明的至少一个实施例的说明性算法/处 理。该算法将利用以下输入和/或输出:

输入:ER模型和访问模式(例如,查询、插入、更新或删除等)

输出:大表模型

步骤1:

对于每个查询,

(1)基于“FROM(从)”子句中指定的表来识别对应的关系表。

(1.1)如果现存的大表涵盖所识别的关系表,则进入步骤(2)。

(1.2)如果现存的大表部分地涵盖所识别的关系表(例如,大 表/散列表通过表A与表B结合而形成,所识别的关系表包括表A、 表B和表C),则应当通过所识别的没有被涵盖的表(比如,表C) 来扩大现存的大表。

(1.3)否则,从这些所识别的关系表产生非规范化表,该非规 范化表形成新的大表。

另外,创建每个所识别的关系表与所更新的或新产生的大表之间 的映射。

(2)对指定的查询条件(包括“=”、“>”、“<”条件)中所提 及的列创建列族。另外,需要对应的辅助索引来确保搜索性能。例如, 在比如“StudentID='001'”的条件下,应当在列StudentID上构建辅 助索引。

(3)利用列族作为用于大表的关键字。

可以注意到的是,在这个步骤结束时,如果关系数据库表还未被 映射到大表,则将创建具有该表的大表,并且将创建对应的映射。

步骤2:

对于每个删除操作:

(1)识别针对删除操作中涉及的关系表映射的大表。

(2)对于每个大表,检查删除操作的条件

(2.1)如果访问大表的关键字可以支持条件运行,则进入下一 个大表;

(2.2)否则,如以上步骤1中所描述的那样创建访问大表的关 键字。

可以注意到的是,一旦映射被创建,就可以如下插入一个或多个 数据操作:

对于每个插入操作:

(1)识别针对插入操作中所涉及的关系表映射的大表。

(2)对于每个所识别的大表

(2.1)对于大表中的每个记录,检查待插入记录与大表记录之 间的兼容性。例如,假设这个大表通过表A与表B之间的结合而形成, 结合条件是A.StudentID=B.StudentID。假设现在我们需要将记录插 入到表A中。那么,我们需要检查新插入的记录中的StudentID列是 否具有与大表记录中的StudentID字段相同的值。如果它们是兼容 的,则我们可以将新记录插入到大表中,其中,待插入记录与大表记 录中的其余字段结合。

(2.2)如果大表中没有与待插入记录兼容的记录,则我们将把 新记录插入到仅具有待插入记录的字段的大表中。

可以通过删除和插入来进行更新,所以它的操作类似于插入和删 除。

现在参照图6,示出了根据本发明一实施例的方法流程图。在步 骤S1中,基于存储在计算机存储装置中的用户访问模式集合来识别具 有第一格式(例如,关系数据库格式)的第一数据库表集合(例如, 用户访问模式集合指示对存储在第一数据库表集合中的数据的用户数 据检索操作集合)。在步骤S2中,提供与第一数据库表集合对应的具 有第二数据库格式(例如,大表格式)的第二数据库表集合。在步骤 S3中,创建第一数据库表集合与第二数据库表集合之间的映射。在步 骤S4中,基于用户访问模式集合的至少一个条件来产生列集合。在步 骤S5中,使用该列集合作为用于第二数据库表集合的关键字。

尽管在本文中被示出和描述为数据库格式转换解决方案,但是要 理解本发明还提供各种替代实施例。例如,在一个实施例中,本发明 提供一种计算机可读/可用介质,该计算机可读/可用介质包括使计算 机基础架构能够提供如本文所讨论的数据库格式转换功能的计算机程 序代码。在这种意义上,计算机可读/可用介质包括实现本发明的各种 处理中的每种处理的程序代码。要理解,术语计算机可读介质或计算 机可用介质包括程序代码的任何类型的物理实施例中的一个或多个。 特别地,计算机可读/可用介质可以包括包含在一个或多个便携式存储 制品(例如,光盘、磁盘、磁带等)上、在计算装置的一个或多个数 据存储部分(比如,存储器28(图1)和/或存储系统34(图1)(例 如,固定盘、只读存储器、随机存取存储器、高速缓冲存储器等)) 上的程序代码。

在另一个实施例中,本发明提供一种在订阅、广告和/或费用的基 础上执行本发明的处理的方法。也就是说,服务提供者(比如,解决 方案整合者)可以对提供数据库格式转换功能进行报价。在这种情况 下,服务提供者可以创建、维护、支持(等等其他)如下计算机基础 架构(比如,计算机系统12(图1)),该计算机基础架构为一个或 多个消费者执行本发明的处理。作为回报,服务提供者可以根据订阅 和/或费用协议接收来自消费者的付款,和/或服务提供者可以通过将 广告内容出售给一个或多个第三方来接收付款。

在又一个实施例中,本发明提供一种用于数据库格式转换的计算 机实现方法。在这种情况下,可以提供计算机基础架构(比如,计算 机系统12(图1)),并且可以获得(例如,创建、购买、使用、修 改等)用于执行本发明的处理的一个或多个系统并将这些系统部署到 该计算机基础架构。在这种意义上,系统的部署可以包括下列中的一 个或多个:(1)从计算机可读介质将程序代码安装在计算装置(比如, 计算机系统12(图1))上;(2)将一个或多个计算装置添加到计算机 基础架构;以及(3)合并和/或修改计算机基础架构的一个或多个现存系 统以使得计算机基础架构能够执行本发明的处理。

如本文所使用的,要理解术语“程序代码”和“计算机程序代码” 是同义的,并且意指以任何语言、代码或标注对指令集的任何表达, 这些指令意图使具有信息处理能力的计算装置直接执行特定功能或者 在以下操作中的任一操作或两个操作之后执行特定功能:(a)转换为另 一种语言、代码或标注;和/或(b)以不同的有形形式再现。在这种意义 上,程序代码可以被实施为下列中的一个或多个:应用程序/软件程序、 组件软件/功能库、操作系统、用于特定计算装置的基本装置系统/驱 动器等。

适合于存储和/或执行程序代码的数据处理系统可以依此提供,并 且可以包括通过系统总线与存储器元件直接地或间接地通信耦合的至 少一个处理器。存储器元件可以包括,但不限于,在实际执行程序代 码期间所利用的本地存储器、大容量储存器、以及提供至少一些程序 代码的临时存储以便减少执行期间必须从大容量储存器检索代码的次 数的高速缓存。输入/输出和/或其他外部装置(包括,但不限于,键 盘、显示器、定点装置等)可以直接与系统耦合,或者通过介于中间 的装置控制器与系统耦合。

网络适配器也可以与系统耦合以使得数据处理系统能够通过介于 中间的私有网络或公共网络的任何组合变为与其他数据处理系统、远 程打印机、存储装置等耦合。说明性网络适配器包括,但不限于,调 制解调器、电缆调制解调器和以太网卡。

已出于说明和描述的目的给出了本发明的各方面的前述描述。 意图不在于穷举或者使本发明限于所公开的精确形式,并且显然,许 多修改和变化是可能的。对于本领域技术人员可以显而易见的这样的 修改和变化意图包括在如所附权利要求所限定的本发明的范围内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号