CN105930428A - 用于执行多租户存储中的交叉存储连接的方法和系统 - Google Patents

用于执行多租户存储中的交叉存储连接的方法和系统 Download PDF

Info

Publication number
CN105930428A
CN105930428A CN201610244849.2A CN201610244849A CN105930428A CN 105930428 A CN105930428 A CN 105930428A CN 201610244849 A CN201610244849 A CN 201610244849A CN 105930428 A CN105930428 A CN 105930428A
Authority
CN
China
Prior art keywords
data
storage
subquery
relation data
relation
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
Application number
CN201610244849.2A
Other languages
English (en)
Other versions
CN105930428B (zh
Inventor
比尔·C·艾德森
克雷格·韦斯曼
凯文·奥利弗
詹姆斯·泰勒
西蒙·Z·费尔
多诺万·A·谢奈德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shuo Power Co
Original Assignee
Salesforce com Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Salesforce com Inc filed Critical Salesforce com Inc
Publication of CN105930428A publication Critical patent/CN105930428A/zh
Application granted granted Critical
Publication of CN105930428B publication Critical patent/CN105930428B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述了用于执行多租户存储中的交叉存储连接的方法和系统。在一个实施例中,这种方法包括:从具有关系数据存储和非关系数据存储的多租户数据库系统中检索数据;接收指定需从多租户数据库系统中检索的数据的请求;基于请求,检索需检索的数据的一个或多个位置;基于请求生成数据库查询,其中数据库查询指定需检索的多个数据元素,多个数据元素包括存在于非关系数据存储内的一个或多个数据元素和存在于关系数据存储内的一个或多个其它数据元素;以及对多租户数据库系统运行数据库查询,以检索数据。

Description

用于执行多租户存储中的交叉存储连接的方法和系统
本申请是于2013年6月20日提交的申请号为201180061441.7(PCT/US2011/032631)的标题为“用于执行多租户存储中的交叉存储连接的方法和系统”的专利申请的分案申请。
优先权声明
本申请涉及2010年12月20日提交的、标题为“METHODS AND SYSTEMS FORPERFORMING CROSS STORE JOINS IN A MULTI-TENANT STORE(用于执行多租户存储中的交叉存储连接的方法和系统)”的、具有申请号12/973,668和代理人案号No.8956P006/320US的美国专利申请,以及2010年4月19日提交的、标题为“METHODS AND SYSTEMS FOR PERFORMING CROSS STORE JOINS IN AMULTI-TENANT STORE(用于执行多租户存储中的交叉存储连接的方法和系统)”的、具有申请号61/325,709和代理人案号No.8956P006Z/320PROV的临时实用申请,并且要求这两个申请的优先权,这两个申请的全部内容通过引用并入本申请;并且本申请进一步涉及2010年4月20日提交的、标题为“METHODS AND SYSTEMS FOROPTIMIZING QUERIES IN A MULTI-TENANT STORE(用于优化多租户存储中的查询的方法和系统)”的、具有申请号61/325,951和代理人案号No.8956P007Z/321PROV的临时实用申请,并且要求这个临时实用申请的优先权,该申请的全部内容通过引用并入本申请。
著作权通告
本专利文档的公开内容的一部分包含受到著作权保护的材料。当本专利文档或本专利公开内容在专利和商标局的专利文件或记录中出现时,著作权的所有者不反对任何人复制本专利文档或本专利公开内容,但除此以外,著作权的所有者无论怎样都保留所有著作权的权利。
技术领域
本申请中描述的主题大体涉及计算领域,更具体地,涉及用于执行多租户存储中的交叉存储连接的方法和系统。
背景技术
在本背景技术部分中讨论的主题不应该只因其在本背景技术部分中提及而被臆断为现有技术。类似地,在本背景技术部分中提及的问题或者与本背景技术部分的主题相关的问题不应当被臆断为以前已经在现有技术中被认知。本背景技术部分中的主题仅仅代表不同方法,这些不同的方法本身还可以对应于要求保护的主题的实施例。
在计算环境中,可以选择各种数据存储环境来持久地存储数据。例如,可以将数据存储在由操作系统管理的文件系统中,操作系统将文件系统数据持久地存储在硬驱上,或者可以将数据持久地存储在数据库中。各种类型的数据库是可利用的,每种数据库均具有其自身特定的益处和缺陷。例如,所谓的关系数据库利用由该数据库中每个数据表共享的公共特性,提供使该数据库中的各个数据表彼此“关联”的能力。例如,在关系数据库中,职工标识符可以被用作关联一个以上的表的公共特性。然而,这种数据库结构具有特定缺陷,缺陷之一是这些关系使高的计算开支花费水平和高的计算复杂程度成为必需,这限制了关系数据库能够扩展的范围。
还存在非关系数据库模型和实现,并且非关系数据库模型和实现共同地表现出更好的可扩展性,但是也表现出与关系数据库模型和实现不相关联的不同缺陷。例如,非关系数据库实现经常对存储大文件或大对象表现出改善的可扩展性,但是非关系数据库实现可能不太适于其它方面,例如对选择性的数据集进行分类或者为快速改变数据集实现数据保障。
不幸的是,对来自多个数据存储的信息同时进行参考的数据库查询是非常低效的,并且从否则可能从多个数据存储的实现中得到的优点中减损优点。此外,对多样数据库模型的不同实现进行同时参考的数据库查询,可能是利用从前的数据库查询机制完全无法实现的。
附图说明
实施例被图示作为示例,而不作为限制,并且当结合附图思考下面的具体实施方式时,对照下面的具体实施方式能够更全面地理解实施例,其中:
图1图示在其中实施例可以操作的示例性体系结构;
图2图示在其中实施例可以操作的可替代示例性体系结构;
图3图示在其中实施例可以操作的可替代示例性体系结构;
图4图示在其中实施例可以操作的可替代示例性体系结构;
图5图示在其中实施例可以操作、被安装、被集成或被配置的系统的图解表示;
图6是图示根据一个实施例的用于执行多租户存储中的交叉存储连接的方法的流程图;以及
图7图示根据一个实施例的呈计算机系统的示例性形式的机器的图解表示。
具体实施方式
本申请中描述的是用于执行多租户存储中的交叉存储连接的系统、装置和方法。在一个实施例中,这种方法包括从具有关系数据存储和非关系数据存储的多租户数据库系统中检索数据。例如,在这种方法中,用于多租户数据库系统的主系统接收指定需从多租户数据库系统中检索的数据的请求;经由主系统基于请求,检索需检索的数据的一个或多个位置;在主系统处,基于请求生成数据库查询,其中数据库查询指定需检索的多个数据元素,多个数据元素包括存在于非关系数据存储中的一个或多个数据元素和存在于关系数据存储中的一个或多个其它数据元素;以及对多租户数据库系统运行数据库查询,以检索数据,。
联邦查询(其是搜索或参考一个以上数据库的查询)可能是很低效的,尤其当在数据库的最低行层次参考数据(例如通过请求在不同数据存储中存储的表格之间的连接操作)时,由于操作耗用如此多网络带宽,以至于这样的连接操作不能很好地扩展,因此不能在较大的数据库实现上可行地实现。当在对多样模型进行操作的数据库实现之间请求数据连接时(如在例如关系数据库实现和非关系数据库实现之间的连接),对这样的连接操作的挑战进一步加重。本申请中描述的方法论以在更大的数据库系统上能够可行地实现的方式以及特别地以在影响对多样操作模型(如关系模型和非关系模型)进行操作的多种数据存储实现的系统上能够可行地实现的方式,促进执行这样的连接操作的能力。
例如,利用本申请中描述的方法论,在一个或多个外键父(foreign key parent)是存储在关系型数据库实现(例如OracleTM)中的对象的情况下,可以通过对非关系数据库存储的对象发起非关系数据库查询来执行连接操作。举例来说,存储在非关系数据库中的子表可以具有存储在OracleTM中的“帐户”表作为其主表,尽管非关系数据库存储的对象持续在非关系数据库实现中且OracleTM存储的对象持续在关系数据库实现中。
在下面的描述中,提出许多特定细节,诸如特定系统、语言、组件等的示例,以便提供对各实施例的充分理解。然而,将对本领域技术人员清楚的是,这些特定细节不需要被用来实践所公开的实施例。在其它情况下,为了避免不必要地模糊所公开的实施例,尚未详细描述众所周知的材料或方法。
除在附图中绘出的和在本申请中描述的各硬件组件以外,实施例进一步包括下面描述的各操作。根据这样的实施例描述的操作可以通过硬件组件执行,或者可以包含在机器可运行指令中,这可以用来引起用这些指令编程的通用或专用处理器执行这些操作。可替代地,操作可以由硬件和软件的结合执行。
实施例还涉及用于执行本申请中的操作的系统或设备。所公开的系统或设备置可以是为所需用途而特别地构建的,或者其可以包括通用计算机,该通用计算机由存储在该通用计算机中的计算机程序选择性地激活或重新配置。这种计算机程序可以存储在非瞬态计算机可读存储介质中,例如但不限于包括软盘、光盘、CD-ROM和磁光盘在内的任何类型的磁盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光学卡或者适于存储非瞬态电子指令的任何类型的介质,它们每个均联接至计算机系统总线。在一个实施例中,其上存储有指令的计算机可读存储介质引起多租户数据库环境中的一个或多个处理器执行本申请中描述的方法和操作。在另一实施例中,执行这样的方法和操作的指令被存储在非瞬态计算机可读介质中以供后来运行。
本申请中呈现的算法和显示内在不涉及任何特定的计算机或其它设备,关于任何特定编程语言描述的实施例也不涉及。将理解,各种编程语言可以用来实现本申请中描述的实施例的教导。
图1图示在其中实施例可以操作的示例性体系结构100。体系结构100描绘出主系统110,主系统110经由网络125与若干个客户组织(105A、105B和105C)可通信地接合。在主系统110中是多租户数据库系统130,在多租户数据库系统130内具有实现主系统110中的数据库功能和代码执行环境的多个底层硬件、软件和逻辑元件120,并且其中,多租户数据库系统130的硬件、软件和逻辑元件120与多个客户组织(105A、105B和105C)分离且不同,多个客户组织(105A、105B和105C)通过经由网络125与主系统110可通信地接合来利用由主系统110提供的服务。在这种实施例中,每个分离且不同的客户组织(105A-105C)可以位于远离主组织的位置,该主组织经由在内部运行多租户数据库系统130的主系统110向客户组织(105A-105C)提供服务。可替代地,客户组织105A-105C中的一个或多个客户组织可以与主系统110共处一地,例如在提供持久地存储底层数据的多租户数据库系统130的同一个主组织中。
在一个实施例中,多租户数据库系统130的硬件、软件和逻辑元件120至少包括非关系数据存储150和关系数据存储155,非关系数据存储150和关系数据存储155根据实现主系统110中的数据库功能和代码运行环境的硬件、软件和逻辑元件120而操作。主系统110可以进一步经由网络接收来自多个客户组织105A-105C中的一个或多个客户组织的请求115。例如,进入的请求115可以对应于对服务的请求,或对应于在多租户数据库系统130中检索或存储代表客户组织105A-105C之一的数据的请求。
图2图示在其中实施例可以操作的可替代示例性体系结构200。在一个实施例中,主系统110实现从具有关系数据存储155和非关系数据存储150的多租户数据库系统130中检索数据的方法。
例如,在这种实施例中,在用于多租户数据库系统130的主系统110处接收请求115,请求115指定需从多租户数据库系统130中检索的数据218。在一些实施例中,在主系统110中操作的不同的网页(web)服务器210经由网络125接收进入的请求115。例如,网页服务器210可以负责经由网络125接收来自各客户组织105A-105C的请求115。网页服务器210可以向发起请求115(例如位于客户组织105A-105C中的终端用户客户机装置)的终端用户客户机提供基于网页(web)的接口,请求115构成对来自在像主系统110这样的提供例如远程实现的云计算服务的主组织内操作的多租户数据库系统130的服务的请求。根据特定的实施例,优化器代理245还可以提供额外功能,例如开发预查询和优化数据查询。
在一个实施例中,主系统110基于请求115检索需检索的数据218的一个或多个位置216。在一个实施例中,客户概要240描述需检索的数据218的一个或多个位置216,其中客户概要240将需检索的数据218的多个数据元素中的每个数据元素指定为存在于非关系数据存储150内或存在于关系数据存储155内,或者指定为从非关系数据存储150和关系数据存储155中均可获得。在一个实施例中,主系统110响应于接收请求115,检索客户概要240。可替代地,主系统110从客户概要240中检索需检索的数据218的一个或多个位置216。
例如,在特定的实施例中,将需检索的数据218的一个或多个位置216存储在客户概要240中,并且从客户概要240中检索需检索的数据218的一个或多个位置216,客户概要240指定构成需检索的数据218的多个数据元素中的每个数据元素在多租户数据库系统130中位于哪里。这样的客户概要240可以经由例如全局缓存层访问,全局缓存层向主系统110中实现或提供所描述的多租户存储能力的各元件提供快速高效的访问。在可替代实施例中,可以通过主系统110、通过优化器代理245、通过主系统110的查询层260或通过主系统110中负责确定需从多租户数据库系统130中检索的跨多样数据库实现散布的数据218(例如如图所示跨非关系数据存储150和关系数据存储155散布的具有多个数据元素的数据218)的位置216的其它元件,从客户概要240中检索需检索数据218的一个或多个位置216。
在一个实施例中,主系统110基于请求115生成数据库查询217,其中数据库查询217指定需检索的多个数据元素,多个数据元素包括存在于非关系数据存储150中的一个或多个数据元素和存在于关系数据存储155中的一个或多个其它数据元素。在特定实施例中,数据库查询217进一步基于需检索的数据218的被检索的一个或多个位置216。这样的数据库查询217可以进一步由主系统110生成或委派,去由主系统110的子系统(例如查询层260或优化器代理245)生成。
在一个实施例中,主系统110对多租户数据库系统130运行所生成的数据库查询217来检索数据218,例如图2所示,指向多租户数据库系统130的多个下层硬件、软件和逻辑元件120的朝向下的箭头表示数据库查询217被传递给多租户数据库系统130的实现功能,并且数据218响应性地被多租户数据库系统130返回,这由向上弯曲的箭头表示,这样将从多样的数据存储(非关系数据存储150和关系数据存储155)中的每个数据存储发出的多个数据元素送回至主系统110。
在一个实施例中,数据库查询217包括多个子查询。在这样的实施例中,多个子查询中的至少一个子查询旨在从非关系数据存储150中检索存在于非关系数据存储150内的一个或多个数据元素,并且多个子查询中的至少第二子查询旨在从关系数据存储155中检索存在于关系数据存储155内的一个或多个其它数据元素。例如图2所示的,在数据库查询217的放大图中的是数个子查询串,例如“从非关系数据存储(例如150)中检索数据元素‘a’”、“从关系数据存储(例如155)中检索数据元素‘b’”以及另一子查询串,该另一子查询串表述反映一般结构化查询语言(SQL)型查询的“select‘x’from‘y’where‘z’(在‘z’条件下,从‘y’中选择‘x’)”。依赖所选择的实现查询语言或句法,这种查询可能适合于或者可能不适合于查询底层数据存储(例如150和155)。
因此,根据这样的实施例,对多租户数据库系统130运行数据库查询217包括对存储在关系数据存储155中和存储在非关系数据存储150中的数据元素进行参考,以便检索所需的数据218。
图3图示在其中实施例可以操作的可替代示例性体系结构300。特别地,更加详细示出的是根据特定实施例的由数据库查询217指定的连接操作。
例如,根据一个实施例,连接操作305由数据库查询217指定。
在特定实施例中,连接操作305包括多个子查询。例如,在这样的实施例中,将对非关系数据存储150运行第一子查询306,并且第一子查询306识别存在于非关系数据存储150中的一个或多个数据元素,这由指向非关系数据存储150的虚线弯曲箭头表示。
在这样的实施例中,将对关系数据存储155运行第二子查询307,并且第二子查询307确定第一子查询306识别的存在于非关系数据存储150内的一个或多个数据元素和存在于关系数据存储155内的一个或多个其它数据元素之间的数据增量(data delta)310。
在该实施例中,将对关系数据存储155和非关系数据存储150运行第三子查询308,其中第三子查询308把与所确定的数据增量310相对应的数据从关系数据存储155复制至非关系数据存储150。例如,这样的第三子查询308可以检索存在于关系数据存储155中的一个或多个其它数据元素,将它们拖入例如临时表格、文件、临时缓存的数据等中,然后,这样的第三子查询308可以对非关系数据存储150发出对应于数据增量310的被检索的数据的插入或写入命令,导致将数据增量310的数据写入、存入或插入非关系数据存储150中,从而完成复制且因此进一步导致之前不获得的存在于关系数据存储155中的数据元素现在可从非关系数据存储150中获得。参照图3的虚线,图3的虚线示出对两个数据存储(关系数据存储155和非关系数据存储150)运行的第三子查询308,以将所识别的数据增量310从关系数据存储155复制至非关系数据存储150。
从一个数据存储向另一数据存储复制或同步数据的确定可以基于各种考虑。例如,从关系数据存储155向非关系数据存储150复制的决定可以基于将较小的数据集从其原始位置复制至具有较大数据集的位置的确定或策略。例如,从网络带宽角度看进行从关系数据存储155向非关系数据存储150的复制时,复制属于所请求的数据的一部分的一个或多个数据元素可以比在进行从非关系数据存储150向关系数据存储155的复制时更高效。
在一些实施例中,相反情况可以同样是实际的,因此,数据的复制可以在从非关系数据存储150向关系数据存储155的另一方向上进行。这样的确定可以由例如优化器代理245进行或操纵。在利用非关系数据库实现(例如150)的特定实施例中,在关系数据存储155(例如OracleTM)中存储的关系数据库型对象经由指定连接操作305的一个子查询被复制至非关系数据存储150,然后因为复制导致所有所需数据都变成可从非关系数据存储150中获得,所以指定数据检索操作的另一子查询可以从非关系数据存储150拖拽所有需求数据,尽管在这种示例中至少一些数据被持久地存储在关系数据库存储器155(例如OracleTM)中且最初仅可从关系数据存储155中获得。
其它复制决定和考虑可以类似地考虑并通过优化器代理245实现。例如,一个复制策略可以基于复制操作提供的一致性保证,例如被复制的数据是否总是同步或者总是保证同步,或者某种偏差是否是可接受的风险。
例如,拿需要从关系数据存储155向非关系数据存储150复制一千万个“帐户”表的复制操作使得能够从非关系数据存储150中查询十亿个子行为例。在这样的示例的情况下,非关系数据库查询引擎可以被用来经由JDBC(Java数据库连接)进行批量调出(bulk callout),以检索OracleTM数据(例如关系)数据。在这样的示例中,OracleTM RAC(Oracle真正应用集群)可以用来或者基于OracleTM11g数据保护的保证机制可以用来提供必要的一致性,这里一致性保证是重要的考虑并且正在发起非常大量的数据复制。这样的大量复制可以最适当地预先执行,因为在查询时如此做,对数据的进入请求的响应性运行期间(on-the-fly)可能在对进入请求做出响应或在完成进入请求时需要不可接受的长延迟。
相反地,拿小表格和相应地少的数据转移为例。在这样的示例中,例如响应于对数据的进入请求,存在于具有当前数据的关系数据存储155(例如OracleTM)中的小表格或数个小表格的全部内容可以在查询时间被复制至非关系数据存储150,在数据中至少一部分数据存在于小表格中并由关系数据存储155(例如OracleTM)持久地存储。这种策略可以适于大的分析,这里如由例如优化器代理245确定的,这种查询和复制的固定成本不显著。
依赖于例如与每个特定的组织相关联的表格或对象的尺寸,另一考虑可以基于逐个OrgID。例如,可以采用下面的策略,即与大组织的介质对应的数据(例如基于预定的尺寸阈值)被预先复制。在一个实施例中,预先复制可以利用表面表格复制码(skinny table replication code),该表面表格复制码捕获关系数据存储155中的指定对象的改变并将这些改变推送至另一表格,例如非关系数据存储150中预复制的表格(例如在选择预先复制的情况下)。
在特定的实施例中,特定的组织可以触发大量改变,因此,实时同步可能并不是必须的或者并不适于每个改变,而仍允许对非关系数据存储150执行所请求的分析。因此,在这样的实施例中,提供了以特定间隔同步更新的选项(例如经由优化器代理245和下面介绍的基于硬件的查询层代理501和734)。在这样的实施例中,允许以特定间隔更新的策略提供更高效的写入和更新,虽然有可能悬空参考和其它“杂乱数据(sloppy data)”的结果,该“杂乱数据”可以是可接受的偏差或者可以依赖于数据库查询的所采用的复制策略或底层对象而需要后续的数据检查和验证。
关于复制的另一考虑可以是数据存储统计,例如表格的基数。可以由优化器代理245产生统计,通过优化器代理245使统计可以是可用的,或者可以由优化器代理245收集统计。例如,在需要相对小的一组行的特定实施例中,当确定正在被处理的全体数据库查询217大且发送整组所查询的行构成合理的传输成本(例如基于预定的大小比例或固定阈值等)时,子查询(例如306-309)可以从关系数据存储155中查询所需的整组行并将整组所查询的行发送至非关系数据存储150。这种策略可以避免在还没有接收到对数据的实际需求的情况下预复制或进行预先复制的必要,并且这种策略可以进一步避免上面描述的数据不一致性问题。
将数据持久地存储至哪里的考虑和由此从哪里检索数据的考虑可以进一步基于特定数据存储的底层实现硬件。例如,针对大的平面文件和二进制文件在例如每千兆字节的成本方面廉价的存储器上的存储,可以优化非关系数据存储150。这样的底层硬件实现可能可行的,因为非关系数据存储(例如150)是针对压缩的平面文件和二进制文件的批量读取而优化的,因此非关系数据存储(例如150)相对于像OracleTM这样的关系模型数据存储(例如155)对每千兆字节处理请求而言,在计算上更廉价。由于关系数据存储155实现例如对所有存储的数据的强制性分析、像事务处理这样的企业级数据保护和还原能力的要求,像OracleTM这样的关系数据存储155可能需要在每千兆字节上更昂贵的存储器硬件。如果在最终完成以前数据库事务失效或被中断,则相比于有可能将缺少事务处理的数据存储处在不一致状态下的直接插入模式,这样的企业级数据保护进一步在失效的情况下通过事务处理具有“重做”特定事务的能力。
因此,在特定的实施例中,对所存储的数据的近期编辑被实现分析、事务处理和还原的关系数据存储155进行事务处理和存储,并且向关系数据存储155写入的更新中的至少一部分更新随后被复制、移动、事务处理或迁移至非关系数据存储150,以便降低持久地存储相应数据的每千兆字节开支的成本。以这种方式,主系统110可以影响与特定关系数据存储155相关联的企业级数据保护,并且同时受益于经由一些非关系数据存储150可用的较廉价的持久存储。
在一个实施例中,由于优化器代理245既具有来自非关系数据存储150又具有来自关系数据存储155的可用数据的“视野”,所以当与对数据218的进入请求115相对应的特定数据元素可以以一种以上的方式从一个以上的源中得到时,优化器代理245能够生成“选择性查询”。优化器代理245能够进一步生成需发出的多个子查询的改进序列或排序,以便完成这样的请求115。
因此,根据特定实施例并鉴于各种可用的考虑,在连接操作305中进一步包括第四子查询309并且将对非关系数据存储150运行第四子查询309,其中第四子查询309通过既取得存在于非关系数据存储150中的一个或多个数据元素又取得从关系数据存储155复制至非关系数据存储150并因此可从非关系数据存储150中获得的一个或多个其它数据元素,从非关系数据存储150中取得需检索的数据。以这种方式,尽管在由连接操作305触发数据复制以前多个数据元素315中的一些数据元素最初不可从非关系数据存储150中获得,但是可以完全从数据存储之一(例如从非关系数据存储150)中检索多个数据元素315。
在一些实施例中,作为在持久地存储被请求数据的一个或多个数据元素的数据存储之间复制数据的替代方式,可以采用一策略来将所有数据元素检索到与持久地存储数据的正被查询的两个或两个以上数据存储(例如150和155)中的每个数据存储分离的位置中。例如,可以利用存储器内连接操作将数据检索至查询层260中,或者经由存储器内连接操作将数据检索至全局缓存层(例如图5的要素550)。这种存储器内连接操作可以基于可从优化器代理245中获得的已知统计或基于指定大小阈值(例如行数、数据在大小(例如数据的兆字节)上的数量、所请求的数据的基数等)来选择。
基于例如主系统110中已知的统计和分析可以获得的其它考虑可以包括对例如从用于特定查询的已知挑选列表量中导出的特定数据库查询217或子查询(例如306-309)的查询成本,在该特定查询中最大数量的元素是已知的并且因此最大查询成本或估计查询成本是可确定的或者是从优化器代理245中已知的和可获得的。可以进一步基于已经进行的分析获知或者可以经由优化器代理245确定(例如通过一个或多个预查询),多个可用数据存储(例如150和155)中哪些数据存储能够在最少量的时间内或利用/消耗最少的计算资源生成具有最少数量的行的结果。例如,在大数据库查询217情况下,可能可取的是,对来自每个数据存储(例如150和155)的所需数据的一小部分进行预查询来确定哪些预查询导致更高效的结果,然后基于这样的确定,生成实现以更高效的数据存储(例如依赖于预查询的结果是150或155)为目标的主数据库查询217所需的各子查询(306-309)。在优化器代理245提前进行适当分析的情况下,可以简单地请求查询策略,而不需要发出预查询,例如可以经由客户概要240对数据的一个或多个位置做出这样的分析确定并且随后存储和指定这样的分析确定。
在可替代实施例中,可以执行不同的或附加的连接操作305。例如,在一个实施例中,经由数据库查询217对多租户数据库系统130运行的连接操作305可以包括从由以下连接操作构成的一组连接操作305中选择的连接操作305:指定来自关系数据存储155的两个或两个以上关系表格的连接操作305;指定来自关系数据存储155的至少一个关系表格和存在于非关系数据存储150中的至少一个或多个数据结构的连接操作305;以及指定存在于非关系数据存储150中的两个或两个以上分离且不同的数据结构的连接操作305,其中两个或两个以上分离且不同的数据结构中的每个数据结构均缺乏重叠的共享键,例如共享特征、字符串、二进制或字母数字键,用这些关联或者以其它方式联系非关系数据存储150中的两个不同的数据结构。
例如,在一个实施例中,非关系数据存储150提供存储许多数据结构、文件、对象和其它这种信息的能力,但是不实现“联系”这样的数据结构、文件、对象和其它信息的功能。然而,指定两个不同的数据结构中每个数据结构的连接操作305能够,通过依赖于在所实现的非关系数据存储150外部的功能和逻辑(例如多租户数据库130中的多个底层硬件、软件和逻辑元件120),识别和链接或关联每个这样的数据结构,多个底层硬件、软件和逻辑元件120能够对非关系数据存储150运行适当形成的连接操作305以形成例如单个数据结构,该单个数据结构具有所有期望的但之前未关联的信息或者将由这种连接操作指定的期望信息检索和临时缓存在可替代的位置。
在可替代实施例中,指定的连接操作305包括:需对非关系数据存储150运行的第一子查询(例如306),其中第一子查询(例如306)需检索存在于非关系数据存储150中的一个或多个数据元素;需对关系数据存储155运行的第二子查询(例如307),其中第二子查询(例如307)确定存在于非关系数据存储150中的一个或多个数据元素和存在于关系数据存储155中的一个或多个其它数据元素之间的数据增量310;以及需对关系数据存储155运行的第三子查询(例如308),其中第三子查询(例如308)需基于所确定的数据增量310检索存在于关系数据存储155中的一个或多个其它数据元素。
在这样的实施例中,基于所确定的数据增量310检索存在于关系数据存储155中的一个或多个其它数据元素的第三子查询(例如308)可以包括基于时间的查询过滤机制或基于记录的过滤机制。
例如,在一个实施例中,基于时间的子查询需对关系数据存储155运行,其中基于关系数据存储155中具有比与存在于非关系数据存储150中的一个或多个数据元素中的那些数据元素相对应的任何时间戳晚的时间戳的那些数据元素,基于时间的子查询指定需从关系数据存储155中检索的一个或多个其它数据元素。
在可替代实施例中,基于记录标识符的子查询需对关系数据存储155运行,其中基于关系数据存储155中具有在数值上比与存在于非关系数据存储150中的一个或多个数据元素中的那些数据元素相对应的任何记录标识符大的记录标识符的那些数据元素,基于记录标识符的子查询指定需从关系数据存储155中检索的一个或多个其它数据元素。
图4图示在其中实施例可以操作的可替代示例性体系结构400。特别地,以附加细节示出的是根据特定实施例的由多租户数据库系统130接收的新事务的处理。
例如,在特定实施例中,被写入或插入多租户数据库系统130内去持久存储的新信息,可以被指定为当前长期存储在非关系数据存储150中,但仍可以临时被写至关系数据存储155。例如,对临时性地将数据写至一个数据存储(例如关系数据存储155)以及然后将该数据迁移至另一数据存储(例如非关系数据存储150)的考虑可以包括例如对一个数据存储相对于另一数据存储的改善的写入响应时间以及然而来自交替数据存储的改善的检索时间。一个数据存储可以与较低的计算成本或较低的操作成本相关联。像非关系数据存储150这样的特定数据存储可以对很少更新但经常被检索的数据更高效地操作。可替代地,相对于前面的具有很少被更新的数据的示例,像关系数据存储155这样的另一数据存储可能对很零碎的数据或很频繁被更新或被添加的数据呈现出更好的操作效率。
因此,根据特定实施例,在多租户数据库系统130处接收的新事务415(例如在之前示出的请求115中)包括或指定需被写至非关系数据存储150的新数据416。在一些实施例中,尽管有新数据416需被写至非关系数据存储150的指示,但是新数据416被写至关系数据存储155的附加日志410。将新数据416写至哪里的这种指示可以由新事务415指定,例如由新事务415中的目标419属性指定。可替代地,可以基于由例如优化器代理245确定的新数据416的特性或基于与对应于新事务415的OrgID相关联的标记或存储偏好,由主系统110做出确定。
在一些实施例中,包括基于确定的数据增量(例如310)检索存在于关系数据存储155中的一个或多个其它数据元素的子查询的连接操作(例如305)包括:从关系数据存储155的附加日志410中检索存在于关系数据存储155中的一个或多个其它数据元素的子查询。例如,可以检索被写至附加日志的新数据416,或者可以检索存储在附加日志中的新数据416的元素。
在一个实施例中,主系统110触发附加日志410的刷新,从而在附加日志410到达刷新阈值时把被写至关系数据存储155的附加日志410的新数据416刷新至非关系数据存储150,这导致例如新数据然后存在于非关系数据存储150中作为被刷新的数据417并且对应于之前存在于关系数据存储155的附加日志410中的新数据416。
不同类型的数据可以由多租户数据库系统130存储。例如,在一个实施例中,存在于非关系数据存储150中的一个或多个数据元素对应于多个压缩的平面文件或多个二进制文件或压缩的平面文件和二进制文件的组合。这样的文件可以经由非关系数据库体系结构(例如150)更高效地存储。
在另一实施例中,关系数据存储155根据关系数据库管理系统(RDBMS)实现关系数据库,其中,关系数据库的多个关系表格通过关系数据库中的两个或两个以上的关系表格中的每个关系表格的一个或多个重叠的公共特性相互关联,从而形成与关系型数据存储155一般地关联的“关系”。
在一个实施例中,非关系数据存储150实现具有多个底层硬件存储装置的分布式结构化数据库,每个底层硬件存储装置均为非关系数据存储150提供总存储容量的至少一部分。在这样的实施例中,非关系数据存储150中的数据元素是在主键(primary key)基础上可参考的,但在两个或两个以上关系表格之间的一个或多个重叠的公共特性基础上是不可参考的,例如关系数据存储155中的数据元素的情况。
在一个实施例中,关系数据存储155实现从以下数据库实现中选择的关系数据库模型:Oracle兼容数据库实现、IBM DB2企业服务器兼容关系数据库实现、MySQL兼容关系数据库实现和微软SQL Server兼容关系数据库实现。
在一个实施例中,非关系数据存储150实现从以下数据库实现中选择的NoSQL非关系数据库实现:Vampire兼容非关系数据库实现、Apache Cassandra兼容非关系数据库实现、BigTable兼容非关系数据库实现和HBase兼容非关系数据库实现。
在一个实施例中,非关系数据存储150包括多个分布式计算节点,每个计算节点均包括至少一个存储器、一个或多个处理器以及一个或多个可通信地接合的硬盘驱动器。在这样的实施例中,每个分布式计算节点可以进一步包括隔离的非关系数据库示例,该隔离的非关系数据库示例具有在没有来自集中式事务许可的授权或控制情况下读取、写入和更新非关系数据库事务的功能。
在特定的实施例中,关系数据存储155实现包括存储器和处理器的单体关系数据库实例,存储器和处理器与集中式事务许可协调计算资源,集中式事务许可控制是否将单体关系数据库实例的更新或改变交付给可通信地与单体关系数据库实例接合并由单体关系数据库实例控制的持久存储装置上的持久存储器。
图5示出在其中实施例可以操作、被安装、被集成或被配置的系统500的图解表示。
在一个实施例中,系统500包括存储器595和处理器或多个处理器590。例如,存储器595可以存储需运行的指令,处理器590可以运行这样的指令。系统500包括总线515,以在可通信地与总线515接合的多个外围装置之间传递事务和系统500中的数据。系统500进一步包括网页服务器525,以例如接收请求、返回响应以及以别的方式与远程客户机(例如位于客户组织105A-105C内的客户机装置)接合。
系统500进一步被示出为具有优化器代理535,优化器代理535被设计为优化数据库查询和数据库子查询并可选地协调预查询,以确定查询底层数据存储的最优方法或优选方法。系统500进一步包括全局缓存层550,以向可通信地接合的装置和系统提供缓存服务以及特别地提供客户概要数据(例如元数据等)的缓存。客户概要数据由与全局缓存层550协作操作的客户概要530提供,全局缓存层550指定例如所需的数据元素是由多租户数据库系统中的关系数据库还是由多租户数据库系统中的非关系数据库实现存储还是由关系数据库和非关系数据库实现存储,并且全局缓存层550为构成相应请求的数据集的一个或多个数据元素指定底层数据存储中的位置。客户概要530可以存储在硬盘驱动器、持久数据存储或系统500中的其它存储位置上。
在系统500中不同的是基于硬件的查询层代理501,基于硬件的查询层代理501包括请求处理器570、客户概要处理器575、子查询生成器580和查询运行器585。根据一个实施例,请求处理器570接收指定需检索的数据的请求(例如从网页服务器525、从前面所述的主系统110或直接从连接的网络接口)。请求处理器570与客户概要处理器575协调,以检索需从底层数据存储中检索的所请求数据的一个或多个位置。请求处理器570进一步与子查询处理器580协调来开发和生成必要的子查询,以基于上述数据的所确定的一个或多个位置从适当的底层数据存储中检索所请求的一个或多个数据元素,或者请求处理器570生成必要的子查询来发起导致数据子集从一个数据存储被同步至、被刷新至或被复制至另一数据存储的连接操作,使得后续的子查询能够从单独的数据存储中检索完整的所请求的数据集。由子查询生成器580生成的这样的子查询可以依赖于可从优化器代理535获得的统计和预查询结果。查询运行器585对可通信地接合的数据库实现运行所生成的查询和子查询。
图6是图示根据一个实施例用于执行多租户存储中的交叉存储连接的方法600的流程图,该方法包括根据特定实施例指定和执行由数据库查询(例如217)指定的连接操作。方法600可以由处理逻辑执行,处理逻辑可以包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等)、软件(例如在处理装置上运行的、执行诸如读取、写入、更新、优化、发起预查询、开发子查询等各种查询操作的指令)或软件和硬件的结合。在一个实施例中,由像在图5的要素501处示出的基于硬件的查询层代理这样的硬件逻辑执行方法600。以下列出的框和/或操作中的一些框和/或操作根据特定实施例是可选的。所呈现的框的编号是为了清晰目的,而不旨在规定各个框必须发生的操作顺序。
方法600从处理逻辑开始,处理逻辑在用于多租户数据库系统的主系统处接收请求,该请求指定需从多租户数据库系统中检索的数据(框605)。在框610处,经由主系统基于该请求,处理逻辑检索需检索的数据的一个或多个位置。
在框615处,经由主系统,处理逻辑响应于接收请求检索客户概要。例如客户概要可以描述需检索的数据的一个或多个位置,客户概要指定数据的多个数据元素中的每个数据元素为存在于非关系数据存储中或存在于关系数据存储中或者既可从非关系数据存储又可从关系数据存储中获得。
在框620处,在主系统处,处理逻辑基于请求生成数据库查询。例如,数据库查询可以指定需检索的多个数据元素,多个数据元素包括存在于非关系数据存储中的一个或多个数据元素和存在于关系数据存储中的一个或多个其它数据元素。数据库查询可以进一步包括多个子查询。在一个实施例中,数据库查询经由子查询之一指定连接操作。清除、刷新、同步或复制操作可以类似地经由子查询指定。
在框625处,处理逻辑对多租户数据库系统运行数据库查询,以检索数据。
在框630处,处理逻辑在多租户数据库系统处接收新事务,每个新事务均指定需写至非关系数据存储的新数据,在框635处,处理逻辑将新数据写至关系数据存储的附加日志。例如,在一个实施例中,数据库查询的子查询指定将从关系数据存储的附加日志中检索需检索的数据。
在框640处,当附加日志达到刷新阈值时,处理逻辑把被写至关系数据存储的附加日志的新数据刷新至非关系数据存储。
图7图示根据一个实施例的呈计算机系统的示例性形式的机器700的图解表示,在机器700中可以运行用于导致机器700执行本申请介绍的方法中的任意一个或多个方法的一组指令。在可替代实施例中,机器可以连接(例如联网)至局域网(LAN)、内联网、外联网或互联网中的其它机器。机器可以在客户机—服务器网络环境中的服务器或客户机机器的容量下操作,或者在对等(或分布式)网络环境中作为对等机器操作,或者在请求式服务环境(包括提供多租户数据库存储服务的请求式环境)中作为服务器或一系列服务器操作。机器的特定实施例可以是以下形式:个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、web工具、服务器、网络路由器、交换机或网桥、计算系统或能够运行指定需由该机器采取的动作的(顺序的或其它方式的)一组指令的任何机器。进一步,尽管只图示单个机器,但是术语“机器”还应当被认为包括单独地或共同地运行一组(或多组)指令以执行本申请中介绍的方法中的任意一个或多个方法的任何机器集合(例如计算机)。
示例性计算机系统700包括处理器702、主存储器704(例如只读存储器(ROM)、闪存、像同步DRAM(SDRAM)或存储器总线式(Rambus)DRAM(RDRAM)等这样的动态随机存取存储器(DRAM)、像闪存这样的静态存储器、静态随机存取存储器(SRAM)、易失性但高数据速率RAM等)以及次存储器718(例如包括硬盘驱动器和持久多租户数据库实现的持久存储装置),处理器702、主存储器704和次存储器718经由总线730彼此通信。主存储器704包括客户概要724(例如指定构成两个或两个以上多样数据存储中指定数据或数据集的数据或数据元素的一个或多个位置,例如跨越关系数据存储和非关系数据存储散布的且可经由例如基于硬件的查询层代理734检索的数据元素的位置)。主存储器704进一步包括全局缓存层732,例如系统广度可访问的全局缓存层,以提供较大数据集的多个数据元素之间的元数据和其它关联或对应信息,例如经由客户概要724提供的那类信息。主存储器704和其子要素(如723和724)可与处理逻辑726和处理器702协作操作,以执行本申请中介绍的方法。
处理器702表示一个或多个通用处理装置,例如微处理器、中央处理单元等。更特别地,处理器702可以是复杂指令集计算(CISC)微处理器、简化指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现其它指令集的处理器或实现指令集组合的处理器。处理器702还可以是一个或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理器702被配置为运行处理逻辑726,以执行本申请中介绍的操作和功能。
计算机系统700可以进一步包括网络接口卡708。计算机系统700还可以包括用户界面710(例如视频显示单元、液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入装置712(例如键盘)、光标控制装置714(例如鼠标)以及信号生成装置716(例如集成的扬声器)。计算机系统700可以进一步包括外围设备736(例如无线或有线通信装置、存储器装置、存储装置、音频处理装置、视频处理装置等)。计算机系统700可以进一步包括基于硬件的查询层代理734,基于硬件的查询层代理734管理数据库查询和子查询并与底层数据存储(例如多租户数据库系统)协调事务。
次存储器718可以包括非瞬态机器可读存储介质(或更特别地,非瞬态机器可存取存储介质)731,在非瞬态机器可读存储介质上存储有体现本申请中描述的方法或功能中的任意一个或多个方法或功能的一个或多个指令集(例如软件722)。软件722在其由计算机系统700运行过程中还可以完全地或至少部分地存在于主存储器704和/或存在于处理器702中,主存储器704和处理器702还构成机器可读存储介质。软件722可以进一步在网络720上经由网络接口卡708发送或接收。
尽管已经通过示例和关于具体实施例描述了本申请中公开的主题,但应当理解,所请求保护的实施例不限于所公开的明确列举的实施例。相反,本公开内容旨在覆盖对本领域技术人员来说显然的各种改变和类似布置。因此,所附权利要求的范围应与最宽的解释相一致,以便包含所有这样的修改和类似布置。要理解,上面的描述旨在是图解性的而不是限制性的。当本领域技术人员阅读和理解上面的描述时,许多其它实施例将对本领域技术人员来说是明显的。因此,所公开主题的范围应参照所附权利要求连同权利要求享有权利的等价物的全部范围来确定。

Claims (21)

1.一种优化具有关系数据存储和非关系数据存储的数据库系统中的数据库查询的方法,所述方法包括:
在用于所述数据库系统的主系统处接收请求,所述请求指定需从所述数据库系统中检索的数据;
基于经由所述主系统的所述请求,检索需检索的所述数据的一个或多个位置;
在所述主系统处,基于所述请求生成数据库查询,其中所述数据库查询指定需检索的多个数据元素,所述多个数据元素包括存在于所述非关系数据存储内的一个或多个数据元素和存在于所述关系数据存储内的一个或多个其它数据元素;
优化所述数据库查询,以至少包括子查询或预查询;
对所述数据库系统执行所优化的数据库查询,以检索所述数据,
其中优化所述数据库查询包括:(i)识别对关系数据存储内的表的第一子查询,所述第一子查询对应于需检索的所述数据的第一部分,(ii)识别对所述非关系数据存储的第二子查询,所述第二子查询对应于需检索的所述数据的第二部分,(iii)将所述关系数据存储内的所述表复制至所述非关系数据存储,以及(iv)生成具有一个或多个子查询的经优化的数据库查询,以从所述非关系数据存储取得需检索的所述数据的所述第一部分和需检索的所述数据的所述第二部分;并且
其中所述数据库查询包括在所述关系数据存储中存储一个或多个外键父的情况下,通过对所述非关系数据存储发起非关系数据库查询而执行的连接操作。
2.根据权利要求1所述的方法,其中所述数据库系统进一步包括由多个分离且不同的客户组织共享的硬件和软件单元,所述分离且不同的客户组织中的每个客户组织均位于距离主组织远程的位置,所述主组织具有在其内运行的所述数据库系统。
3.根据权利要求1所述的方法,其中所述数据库查询包括多个子查询;
其中所述多个子查询中的至少一个子查询旨在从所述非关系数据存储中检索存在于所述非关系数据存储中的所述一个或多个数据元素;并且
其中所述多个子查询中的至少第二子查询旨在从所述关系数据存储中检索存在于所述关系数据存储中的所述一个或多个其它数据元素。
4.根据权利要求1所述的方法,其中优化所述数据库查询包括:请求查询策略,而不需要发出预查询,使得经由客户概要对数据的一个或多个位置做出分析确定并且随后存储和指定所述分析确定。
5.根据权利要求1所述的方法,其中所述数据库查询指定连接操作。
6.根据权利要求5所述的方法,其中所述连接操作包括多个子查询,所述多个子查询基于经由所述主系统的优化器代理能获得的查询优化而生成,所述查询优化选自包括如下的组:
对所述多个子查询的指定排序;
用于运行相应子查询的目标数据存储;
基于需检索的数据的一个或多个预查询评估;
从所述关系数据存储至所述非关系数据存储的复制顺序;
存储器内连接操作,指定需从所述关系数据存储和所述非关系数据存储中的每个数据存储中检索的、且被置于所述优化器代理可存取的存储器中的所述多个数据元素中的至少一个或多个数据元素,并且指定相应的子查询,以在完成所述请求时从所述优化器代理可存取的所述存储器中检索所述多个数据元素中的所述至少一个或多个数据元素。
7.根据权利要求5所述的方法,其中所述连接操作包括:
需对所述非关系数据存储运行的第一子查询,其中所述第一子查询识别存在于所述非关系数据存储中的所述一个或多个数据元素;
需对所述关系数据存储运行的第二子查询,其中所述第二子查询确定所述第一子查询识别的存在于所述非关系数据存储中的所述一个或多个数据元素和存在于所述关系数据存储中的所述一个或多个其它数据元素之间的数据增量;
需对所述关系数据存储和所述非关系数据存储运行的第三子查询,其中所述第三子查询将与所确定的数据增量对应的数据从所述关系数据存储复制至所述非关系数据存储;以及
需对所述非关系数据存储运行的第四子查询,其中所述第四子查询通过取得存在于所述非关系数据存储中的所述一个或多个数据元素和取得从所述关系数据存储复制至所述非关系数据存储并因此能从所述非关系数据存储中获得的所述一个或多个其它数据元素,取得需从所述非关系数据存储中检索的数据。
8.根据权利要求5所述的方法,其中所述连接操作选自包括以下的组:
指定来自所述关系数据存储的两个或两个以上关系表格的连接操作;
指定来自所述关系数据存储的至少一个关系表格和存在于所述非关系数据存储中的至少一个或多个数据结构的连接操作;
指定存在于所述非关系数据存储中的两个或两个以上分离且不同的数据结构的连接操作,其中所述两个或两个以上分离且不同的数据结构中的每个数据结构均缺少重叠的共享键。
9.根据权利要求5所述的方法,其中所述连接操作包括:
需对所述非关系数据存储运行的第一子查询,其中所述第一子查询检索存在于所述非关系数据存储中的所述一个或多个数据元素;
需对所述关系数据存储运行的第二子查询,其中所述第二子查询确定存在于所述非关系数据存储中的所述一个或多个数据元素和存在于所述关系数据存储中的所述一个或多个其它数据元素之间的数据增量;以及
需对所述关系数据存储运行的第三子查询,其中所述第三子查询基于所确定的数据增量检索存在于所述关系数据存储中的所述一个或多个其它数据元素。
10.根据权利要求1所述的方法,其中所述数据库查询包括多个子查询;并且
其中优化所述数据库查询进一步包括:利用存储器内连接操作将所述数据检索至查询层中,或者利用存储器内连接操作将所述数据检索至全局缓存层中,所述存储器内连接操作基于从优化器代理中可获得的已知统计来选择。
11.根据权利要求1所述的方法,其中优化所述数据库查询进一步包括:
识别对所述非关系数据存储的第一子查询;
识别对所述关系数据存储的第二子查询,其中所述第二子查询包括针对在对所述非关系数据存储的所述第一子查询的范围内的尚未从所述关系数据存储的附加日志刷新至所述非关系数据存储的新数据元素或被更新的数据元素,对所述关系数据存储的所述附加日志的数据增量查询;并且
对所述关系数据存储执行刷新,以将所述关系数据存储的所述附加日志内的所述新数据元素或被更新的数据元素刷新至所述非关系数据存储。
12.根据权利要求1所述的方法,其中所述关系数据存储包括根据关系数据库管理系统(RDBMS)实现的关系数据库,其中所述关系数据库的多个关系表格通过所述关系数据库中的两个或两个以上关系表格中每个关系表格的一个或多个重叠的公共特性彼此相互关联。
13.根据权利要求1所述的方法,其中所述非关系数据存储包括具有多个底层硬件存储装置的分布式结构化数据库,每个底层硬件存储装置均为所述非关系数据存储提供全部存储容量的至少一部分,并且其中所述非关系数据存储中的数据元素基于主键是能参考的,并且基于两个或两个以上关系表格之间的一个或多个重叠的公共特性是不能参考的。
14.根据权利要求1所述的方法,
其中所述非关系数据存储包括多个分布式计算节点,每个所述分布式计算节点均至少包括存储器、一个或多个处理器以及一个或多个可通信地接合的硬盘驱动器,并 且其中每个所述分布式计算节点均包括隔离的非关系数据库实例,所述隔离的非关系数据库示例具有在没有来自集中式事务许可的授权或控制的情况下读取、写入和更新非关系数据库事务的功能;并且
其中所述关系数据存储包括单体关系数据库实例,所述单体关系数据库实例包括与集中式事务许可协调计算资源的存储器和处理器,所述集中式事务许可控制是否将所述单体关系数据库实例的更新或改变交付给可通信地与所述单体关系数据库实例接合并由所述单体关系数据库实例控制的持久存储装置上的持久存储器。
15.一种用于优化具有关系数据存储和非关系数据存储的数据库系统中的数据库查询的计算机实现的装置,其中所述计算机实现的装置包括:
接收模块,用于在用于数据库系统的主系统处接收请求,所述请求指定需从所述数据库系统中检索的数据;
检索模块,用于基于经由所述主系统的所述请求,检索需检索的所述数据的一个或多个位置;
生成模块,用于在所述主系统处,基于所述请求生成数据库查询,其中所述数据库查询指定需检索的多个数据元素,所述多个数据元素包括存在于所述非关系数据存储内的一个或多个数据元素和存在于所述关系数据存储内的一个或多个其它数据元素;
优化模块,用于优化所述数据库查询,以至少包括子查询或预查询;
运行模块,用于对所述数据库系统执行所优化的数据库查询,以检索所述数据,
其中优化所述数据库查询包括:(i)用于识别对关系数据存储内的表的第一子查询的模块,所述第一子查询对应于需检索的所述数据的第一部分,(ii)用于识别对所述非关系数据存储的第二子查询的模块,所述第二子查询对应于需检索的所述数据的第二部分,(iii)用于将所述关系数据存储内的所述表复制至所述非关系数据存储的模块,以及(iv)用于生成具有一个或多个子查询的经优化的数据库查询的模块,以从所述非关系数据存储取得需检索的所述数据的所述第一部分和需检索的所述数据的所述第二部分;并且
其中所述数据库查询包括在所述关系数据存储中存储一个或多个外键父的情况下,通过对所述非关系数据存储发起非关系数据库查询而执行的连接操作。
16.一种系统,包括:
处理器和存储器;
与数据库系统的通信接口,所述数据库系统具有在其内实现的关系数据存储和非关系数据存储;
请求处理器,在所述数据库系统的主系统处接收请求,所述请求指定需从所述数据库系统中检索的数据;
客户概要处理器,基于所述请求,检索需检索的所述数据的一个或多个位置;
查询层代理,基于所述请求生成数据库查询,其中所述数据库查询指定需检索的多个数据元素,所述多个数据元素包括存在于非关系数据存储内的一个或多个数据元素和存在于关系数据存储内的一个或多个其它数据元素;
查询优化器,优化所述数据库查询,以至少包括子查询或预查询,
其中所述查询层代理对所述数据库系统执行所优化的数据库查询,以检索所述数据,
其中所述查询优化器进一步:(i)识别对关系数据存储内的表的第一子查询,所述第一子查询对应于需检索的所述数据的第一部分,(ii)识别对所述非关系数据存储的第二子查询,所述第二子查询对应于需检索的所述数据的第二部分,(iii)将所述关系数据存储内的所述表复制至所述非关系数据存储,以及(iv)生成具有一个或多个子查询的经优化的数据库查询,以从所述非关系数据存储取得需检索的所述数据的所述第一部分和需检索的所述数据的所述第二部分,并且
其中所述数据库查询包括在所述关系数据存储中存储一个或多个外键父的情况下,通过对所述非关系数据存储发起非关系数据库查询而执行的连接操作。
17.根据权利要求15所述的系统,其中所述子查询生成器基于所述请求生成数据库查询包括:所述子查询生成器基于所述请求生成多个子查询来完成所述请求,所述子查询包括:
需对所述非关系数据存储运行的第一子查询,其中所述第一子查询识别存在于所述非关系数据存储中的所述一个或多个数据元素;
需对所述关系数据存储运行的第二子查询,其中所述第二子查询确定所述第一子查询识别的存在于所述非关系数据存储中的所述一个或多个数据元素和存在于所述关系数据存储中的所述一个或多个其它数据元素之间的数据增量;
需对所述关系数据存储和所述非关系数据存储运行的第三子查询,其中所述第三子查询将与所确定的数据增量对应的数据从所述关系数据存储复制至所述非关系数据存储;以及
需对所述非关系数据存储运行的第四子查询,其中所述第四子查询通过取得存在于所述非关系数据存储中的所述一个或多个数据元素和取得从所述关系数据存储复制至所述非关系数据存储并因此能从所述非关系数据存储中获得的所述一个或多个其它数据元素,取得需从所述非关系数据存储中检索的数据。
18.根据权利要求16所述的系统,
其中所述数据库查询包括多个子查询;
其中所述多个子查询中的至少一个旨在从所述非关系数据存储中检索存在于所述非关系数据存储内的所述一个或多个数据元素;并且
其中所述多个子查询中的至少第二子查询旨在从所述关系数据存储中检索存在于所述关系数据存储内的所述一个或多个其它数据元素。
19.根据权利要求16所述的系统,其中所述查询优化器请求查询策略,而不需要发出预查询,使得经由客户概要对数据的一个或多个位置做出分析确定并且随后存储和指定所述分析确定。
20.根据权利要求16所述的系统,其中所述数据库查询指定连接操作。
21.根据权利要求20所述的系统,其中所述连接操作包括多个子查询,所述多个子查询基于经由所述优化器代理能获得的查询优化而生成,所述查询优化选自包括如下的组:
对所述多个子查询的指定排序;
用于运行相应子查询的目标数据存储;
基于需检索的数据的一个或多个预查询评估;
从所述关系数据存储至所述非关系数据存储的复制顺序;
存储器内连接操作,指定需从所述关系数据存储和所述非关系数据存储中的每个数据存储中检索的、且被置于所述优化器代理可存取的存储器中的所述多个数据元素中的至少一个或多个数据元素,并且指定相应的子查询,以在完成所述请求时从所述优化器代理可存取的所述存储器中检索所述多个数据元素中的所述至少一个或多个数据元素。
CN201610244849.2A 2010-12-20 2011-04-15 用于执行多租户存储中的交叉存储连接的方法和系统 Active CN105930428B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/973,668 2010-12-20
US12/973,668 US10162851B2 (en) 2010-04-19 2010-12-20 Methods and systems for performing cross store joins in a multi-tenant store
CN201180061441.7A CN103299267B (zh) 2010-12-20 2011-04-15 用于执行多租户存储中的交叉存储连接的方法和系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201180061441.7A Division CN103299267B (zh) 2010-12-20 2011-04-15 用于执行多租户存储中的交叉存储连接的方法和系统

Publications (2)

Publication Number Publication Date
CN105930428A true CN105930428A (zh) 2016-09-07
CN105930428B CN105930428B (zh) 2019-07-30

Family

ID=46318748

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201180061441.7A Active CN103299267B (zh) 2010-12-20 2011-04-15 用于执行多租户存储中的交叉存储连接的方法和系统
CN201610244849.2A Active CN105930428B (zh) 2010-12-20 2011-04-15 用于执行多租户存储中的交叉存储连接的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201180061441.7A Active CN103299267B (zh) 2010-12-20 2011-04-15 用于执行多租户存储中的交叉存储连接的方法和系统

Country Status (6)

Country Link
US (1) US10162851B2 (zh)
JP (3) JP5710782B2 (zh)
CN (2) CN103299267B (zh)
AU (1) AU2011345318B8 (zh)
CA (1) CA2820867C (zh)
WO (1) WO2012087366A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968598A (zh) * 2018-09-29 2020-04-07 北京京东尚科信息技术有限公司 数据请求管理方法、系统及装置
US12093727B2 (en) 2021-04-12 2024-09-17 Salessforce, Inc. Process flow builder customization

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386471B2 (en) * 2010-05-27 2013-02-26 Salesforce.Com, Inc. Optimizing queries in a multi-tenant database system environment
US20120036146A1 (en) * 2010-10-26 2012-02-09 ParElastic Corporation Apparatus for elastic database processing with heterogeneous data
US8965879B2 (en) * 2011-06-03 2015-02-24 Microsoft Technology Licensing, Llc Unique join data caching method
US9176949B2 (en) * 2011-07-06 2015-11-03 Altamira Technologies Corporation Systems and methods for sentence comparison and sentence-based search
US8996350B1 (en) 2011-11-02 2015-03-31 Dub Software Group, Inc. System and method for automatic document management
EP2836920A4 (en) * 2012-04-09 2015-12-02 Vivek Ventures Llc PROCESSING CLASSIFIED INFORMATION AND SEARCH USING A BRIDGE BETWEEN STRUCTURED AND UNSTRUCTURED DATABASES
US9383988B2 (en) 2012-07-03 2016-07-05 Salesforce, Inc. System and method for using directed acyclic graph (DAG) for application updates
US10579634B2 (en) * 2012-08-30 2020-03-03 Citus Data Bilgi Islemleri Ticaret A.S. Apparatus and method for operating a distributed database with foreign tables
CN102929933A (zh) * 2012-09-21 2013-02-13 北京世纪高通科技有限公司 数据处理的方法和装置
US9081843B2 (en) * 2012-11-06 2015-07-14 Tibco Software Inc. Data replication protocol with steady state data distribution and quorum formation
US9418130B2 (en) * 2012-11-06 2016-08-16 Tibco Software, Inc. Data replication protocol with efficient update of replica machines
US9111012B2 (en) 2012-11-26 2015-08-18 Accenture Global Services Limited Data consistency management
US10496640B2 (en) 2012-12-19 2019-12-03 Salesforce.Com, Inc. Querying a not only structured query language (NoSQL) database using structured query language (SQL) commands
US9596279B2 (en) 2013-02-08 2017-03-14 Dell Products L.P. Cloud-based streaming data receiver and persister
US9141680B2 (en) 2013-02-11 2015-09-22 Dell Products L.P. Data consistency and rollback for cloud analytics
US9442993B2 (en) 2013-02-11 2016-09-13 Dell Products L.P. Metadata manager for analytics system
US9191432B2 (en) 2013-02-11 2015-11-17 Dell Products L.P. SAAS network-based backup system
US9454767B2 (en) * 2013-03-13 2016-09-27 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a related command with a predictive query interface
CN104090873A (zh) * 2013-04-01 2014-10-08 袁晓东 NoSQL数据库的高性能关系运算系统
US9953054B2 (en) 2013-04-22 2018-04-24 Salesforce.Com, Inc. Systems and methods for implementing and maintaining sampled tables in a database system
US10257259B2 (en) 2013-10-25 2019-04-09 Salesforce.Com, Inc. Manifest schema to provide application flows
US10366056B2 (en) 2013-11-15 2019-07-30 Salesforce.Com, Inc. Asynchronous search for big objects
CN104657364B (zh) * 2013-11-18 2018-02-23 华为技术有限公司 一种日志结构数据库系统查询请求消息处理方法及装置
CN103605805B (zh) * 2013-12-09 2016-10-26 冶金自动化研究设计院 一种海量时序数据的存储方法
US8914323B1 (en) * 2014-04-10 2014-12-16 Sqrrl Data, Inc. Policy-based data-centric access control in a sorted, distributed key-value data store
US20160055233A1 (en) * 2014-08-25 2016-02-25 Ca, Inc. Pre-join tags for entity-relationship modeling of databases
US9208200B1 (en) * 2014-11-01 2015-12-08 Veeva Systems Inc. System and method for reporting multiple objects in enterprise content management
CN104750815B (zh) * 2015-03-30 2017-11-03 浪潮集团有限公司 一种基于HBase的Lob数据的存储方法及装置
US9881109B2 (en) * 2015-05-04 2018-01-30 Ariba, Inc. Simulating live production load
US10262037B2 (en) 2015-10-19 2019-04-16 International Business Machines Corporation Joining operations in document oriented databases
KR101828522B1 (ko) * 2016-02-16 2018-02-12 전북대학교산학협력단 이종 데이터 처리를 위한 분산 병렬 처리 시스템
US20170351683A1 (en) * 2016-06-07 2017-12-07 Salesforce.Com, Inc. Hierarchical data insertion
US10705926B2 (en) * 2016-07-29 2020-07-07 Rubrik, Inc. Data protection and recovery across relational and non-relational databases
CN106383850A (zh) * 2016-08-31 2017-02-08 东软集团股份有限公司 数据处理方法及装置
US11714811B2 (en) * 2017-09-27 2023-08-01 Salesforce, Inc. Run-time querying of multi-tenant non-relational platform objects
US10693952B2 (en) * 2017-10-23 2020-06-23 Salesforce.Com, Inc. Technologies for low latency messaging
US10936596B2 (en) * 2017-11-30 2021-03-02 Salesforce.Com, Inc. Dynamic selection of data sources for streaming dynamic data
US11816103B1 (en) * 2018-03-01 2023-11-14 Amazon Technologies, Inc. Dynamic prefetching for database queries
US10838964B2 (en) * 2018-03-30 2020-11-17 International Business Machines Corporation Supporting a join operation against multiple NoSQL databases
US10747889B2 (en) 2018-05-03 2020-08-18 Salesforce.Com, Inc. Method and system for time window encryption tokenization of data
US11252119B2 (en) 2018-06-04 2022-02-15 Salesforce.Com, Inc. Message logging using two-stage message logging mechanisms
US11138194B2 (en) 2019-04-02 2021-10-05 International Business Machines Corporation Method of extracting relationships from a NoSQL database
CN110569390B (zh) * 2019-08-20 2024-01-30 武汉大千信息技术有限公司 基于区分存储介质的海量案件数据高效检索方法
US11397736B2 (en) 2020-01-27 2022-07-26 Salesforce, Inc. Large scale data ingestion
US11321285B2 (en) 2020-10-01 2022-05-03 Bank Of America Corporation Automatic database script generation for copying data between relational databases
US11789948B2 (en) * 2021-12-10 2023-10-17 Sap Se Computational dependency directory
US11989169B2 (en) * 2022-05-09 2024-05-21 Salesforce, Inc. Autonomous refactoring system for database

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609856A (zh) * 2003-06-23 2005-04-27 微软公司 查询中间语言的方法和系统
CN1688977A (zh) * 2002-10-03 2005-10-26 国际商业机器公司 智能使用用户数据以抢先阻止违反访问控制的查询的执行
US20070124303A1 (en) * 2005-11-30 2007-05-31 International Business Machines Corporation System and method for managing access to data in a database
US20070130137A1 (en) * 2005-12-02 2007-06-07 Salesforce.Com, Inc. Methods and systems for optimizing text searches over structured data in a multi-tenant environment
CN101305365A (zh) * 2004-12-17 2008-11-12 亚马逊科技公司 用于进行数据仓储的设备和方法
US20090282045A1 (en) * 2008-05-09 2009-11-12 Business Objects, S.A. Apparatus and method for accessing data in a multi-tenant database according to a trust hierarchy
US20100049694A1 (en) * 2008-08-20 2010-02-25 Ca, Inc. Method and system for extending a relational schema

Family Cites Families (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2760794B2 (ja) 1988-01-29 1998-06-04 株式会社日立製作所 データベース処理方法および装置
US5379419A (en) * 1990-12-07 1995-01-03 Digital Equipment Corporation Methods and apparatus for accesssing non-relational data files using relational queries
US5412804A (en) * 1992-04-30 1995-05-02 Oracle Corporation Extending the semantics of the outer join operator for un-nesting queries to a data base
US5608872A (en) 1993-03-19 1997-03-04 Ncr Corporation System for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters
US5649104A (en) 1993-03-19 1997-07-15 Ncr Corporation System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers
US5584024A (en) 1994-03-24 1996-12-10 Software Ag Interactive database query system and method for prohibiting the selection of semantically incorrect query parameters
US5577188A (en) 1994-05-31 1996-11-19 Future Labs, Inc. Method to provide for virtual screen overlay
DE19515020A1 (de) 1994-07-01 1996-01-04 Hewlett Packard Co Verfahren und Vorrichtung zum Optimieren von Abfragen mit Gruppieren-nach-Operatoren
US5608904A (en) 1995-02-13 1997-03-04 Hewlett-Packard Company Method and apparatus for processing and optimizing queries having joins between structured data and text data
GB2300991B (en) 1995-05-15 1997-11-05 Andrew Macgregor Ritchie Serving signals to browsing clients
US5668987A (en) 1995-08-31 1997-09-16 Sybase, Inc. Database system with subquery optimizer
US5715450A (en) 1995-09-27 1998-02-03 Siebel Systems, Inc. Method of selecting and presenting data from a database using a query language to a user of a computer system
US5864842A (en) 1995-10-23 1999-01-26 Ncr Corporation Optimization of SQL queries using hash star join operations
JPH09146804A (ja) * 1995-11-28 1997-06-06 Toshiba Corp データ整合装置
US5819251A (en) * 1996-02-06 1998-10-06 Oracle Corporation System and apparatus for storage retrieval and analysis of relational and non-relational data
US5831610A (en) 1996-02-23 1998-11-03 Netsuite Development L.P. Designing networks
US5821937A (en) 1996-02-23 1998-10-13 Netsuite Development, L.P. Computer method for updating a network design
US5873096A (en) 1997-10-08 1999-02-16 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
US6604117B2 (en) 1996-03-19 2003-08-05 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
US6061676A (en) 1996-05-29 2000-05-09 Lucent Technologies Inc. Effecting constraint magic rewriting on a query with the multiset version of the relational algebric theta-semijoin operator
US5899986A (en) 1997-02-10 1999-05-04 Oracle Corporation Methods for collecting query workload based statistics on column groups identified by RDBMS optimizer
AU6183698A (en) 1997-02-26 1998-09-18 Siebel Systems, Inc. Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths
JP2002511164A (ja) 1997-02-26 2002-04-09 シーベル システムズ,インコーポレイティド 単純化された可視度ルールに用いるための複数のデータベース・トランザクションのリモート・データベース・クライアントの可視度決定方法
AU6654798A (en) 1997-02-26 1998-09-18 Siebel Systems, Inc. Method of determining visibility to a remote database client of a plurality of database transactions using a networked proxy server
AU6440398A (en) 1997-02-26 1998-09-18 Siebel Systems, Inc. Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions
AU6336698A (en) 1997-02-26 1998-09-29 Siebel Systems, Inc. Distributed relational database
WO1998040805A2 (en) 1997-02-27 1998-09-17 Siebel Systems, Inc. Method of synchronizing independently distributed software and database schema
JP2001514776A (ja) 1997-02-27 2001-09-11 シーベル システムズ,インコーポレイティド ローカルな修正を組み込むソフトウェア配布の連続レベル移送の方法
AU6669198A (en) 1997-02-28 1998-09-18 Siebel Systems, Inc. Partially replicated distributed database with multiple levels of remote clients
JPH10333953A (ja) * 1997-04-01 1998-12-18 Kokusai Zunou Sangyo Kk 統合データベースシステムおよびそのデータベース構造を管理するプログラムを記録したコンピュータ読み取り可能な記録媒体
US6169534B1 (en) 1997-06-26 2001-01-02 Upshot.Com Graphical user interface for customer information management
US6560461B1 (en) 1997-08-04 2003-05-06 Mundi Fomukong Authorized location reporting paging system
US5918159A (en) 1997-08-04 1999-06-29 Fomukong; Mundi Location reporting satellite paging system with optional blocking of location reporting
US6092061A (en) 1997-08-15 2000-07-18 International Business Machines Corporation Data partitioning by co-locating referenced and referencing records
JPH1196055A (ja) * 1997-09-19 1999-04-09 Hitachi Ltd データベースの結合処理最適化方法及び装置
US6006234A (en) 1997-10-31 1999-12-21 Oracle Corporation Logical groupings within a database
US20020059095A1 (en) 1998-02-26 2002-05-16 Cook Rachael Linette System and method for generating, capturing, and managing customer lead information over a computer network
US6732111B2 (en) 1998-03-03 2004-05-04 Siebel Systems, Inc. Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database
US5963953A (en) 1998-03-30 1999-10-05 Siebel Systems, Inc. Method, and system for product configuration
US6341281B1 (en) 1998-04-14 2002-01-22 Sybase, Inc. Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree
US6477534B1 (en) 1998-05-20 2002-11-05 Lucent Technologies, Inc. Method and system for generating a statistical summary of a database using a join synopsis
JP2002523842A (ja) 1998-08-27 2002-07-30 アップショット・コーポレーション ネットワークベースのセールス・フォース管理のための方法および装置
US6285997B1 (en) 1998-11-16 2001-09-04 International Business Machines Corporation Query optimization with deferred update and autonomous sources
US6549908B1 (en) 1998-11-18 2003-04-15 Siebel Systems, Inc. Methods and apparatus for interpreting user selections in the context of a relation distributed as a set of orthogonalized sub-relations
US6728960B1 (en) 1998-11-18 2004-04-27 Siebel Systems, Inc. Techniques for managing multiple threads in a browser environment
US6601087B1 (en) 1998-11-18 2003-07-29 Webex Communications, Inc. Instant document sharing
JP2002531899A (ja) 1998-11-30 2002-09-24 シーベル システムズ,インコーポレイティド プロセス監視用の状態モデル
AU2707200A (en) 1998-11-30 2000-06-19 Siebel Systems, Inc. Assignment manager
JP2002531890A (ja) 1998-11-30 2002-09-24 シーベル システムズ,インコーポレイティド クライアントサーバーアプリケーションにおける開発ツール、方法及びシステム
WO2000033226A1 (en) 1998-11-30 2000-06-08 Siebel Systems, Inc. Smart scripting call centers
US6411951B1 (en) 1998-12-16 2002-06-25 Microsoft Corporation Evaluating SQL subqueries
US6360214B1 (en) 1998-12-16 2002-03-19 Microsoft Corporation Automatic database statistics creation
JP2000222430A (ja) * 1999-02-03 2000-08-11 Osaka Gas Co Ltd 仮想データベース管理システム
US20020072951A1 (en) 1999-03-03 2002-06-13 Michael Lee Marketing support database management method, system and program product
US6574635B2 (en) 1999-03-03 2003-06-03 Siebel Systems, Inc. Application instantiation based upon attributes and values stored in a meta data repository, including tiering of application layers objects and components
US6370524B1 (en) 1999-04-02 2002-04-09 Oracle Corp. System and method for processing queries having an inner query block containing a grouping operator
US6385603B1 (en) 1999-06-14 2002-05-07 International Business Machines Corporation Joined table expression optimization by query transformation
US6502088B1 (en) 1999-07-08 2002-12-31 International Business Machines Corporation Method and system for improved access to non-relational databases
US6453314B1 (en) * 1999-07-30 2002-09-17 International Business Machines Corporation System and method for selective incremental deferred constraint processing after bulk loading data
US6385604B1 (en) * 1999-08-04 2002-05-07 Hyperroll, Israel Limited Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements
US6457003B1 (en) * 1999-08-16 2002-09-24 International Business Machines Corporation Methods, systems and computer program products for logical access of data sources utilizing standard relational database management systems
US6621834B1 (en) 1999-11-05 2003-09-16 Raindance Communications, Inc. System and method for voice transmission over network protocols
US6535909B1 (en) 1999-11-18 2003-03-18 Contigo Software, Inc. System and method for record and playback of collaborative Web browsing session
US6324568B1 (en) 1999-11-30 2001-11-27 Siebel Systems, Inc. Method and system for distributing objects over a network
US6654032B1 (en) 1999-12-23 2003-11-25 Webex Communications, Inc. Instant sharing of documents on a remote server
US6938052B2 (en) * 1999-12-23 2005-08-30 International Business Machines Corporation Access to server resources from heterogeneous platforms
WO2001059602A1 (en) * 2000-02-11 2001-08-16 Acta Technologies, Inc. Nested relational data model
US6732100B1 (en) 2000-03-31 2004-05-04 Siebel Systems, Inc. Database access method and system for user role defined access
US6577726B1 (en) 2000-03-31 2003-06-10 Siebel Systems, Inc. Computer telephony integration hotelling method and system
US7266502B2 (en) 2000-03-31 2007-09-04 Siebel Systems, Inc. Feature centric release manager method and system
US6336137B1 (en) 2000-03-31 2002-01-01 Siebel Systems, Inc. Web client-server system and method for incompatible page markup and presentation languages
US6434550B1 (en) 2000-04-14 2002-08-13 Rightnow Technologies, Inc. Temporal updates of relevancy rating of retrieved information in an information search system
US6842748B1 (en) 2000-04-14 2005-01-11 Rightnow Technologies, Inc. Usage based strength between related information in an information retrieval system
US6665655B1 (en) 2000-04-14 2003-12-16 Rightnow Technologies, Inc. Implicit rating of retrieved information in an information search system
US7730072B2 (en) 2000-04-14 2010-06-01 Rightnow Technologies, Inc. Automated adaptive classification system for knowledge networks
US6763501B1 (en) 2000-06-09 2004-07-13 Webex Communications, Inc. Remote document serving
US6567802B1 (en) 2000-09-06 2003-05-20 The Trustees Of The University Of Pennsylvania Systematic approach to query optimization
US6795825B2 (en) * 2000-09-12 2004-09-21 Naphtali David Rishe Database querying system and method
KR100365357B1 (ko) 2000-10-11 2002-12-18 엘지전자 주식회사 무선통신 단말기의 데이터 통신 방법
US20030105732A1 (en) 2000-11-17 2003-06-05 Kagalwala Raxit A. Database schema for structure query language (SQL) server
EP1217540A1 (en) 2000-11-29 2002-06-26 Lafayette Software Inc. Methods of organizing data and processing queries in a database system, and database system and software product for implementing such method
US7581230B2 (en) 2001-02-06 2009-08-25 Siebel Systems, Inc. Adaptive communication application programming interface
USD454139S1 (en) 2001-02-20 2002-03-05 Rightnow Technologies Display screen for a computer
US6829655B1 (en) 2001-03-28 2004-12-07 Siebel Systems, Inc. Method and system for server synchronization with a computing device via a companion device
US7174514B2 (en) 2001-03-28 2007-02-06 Siebel Systems, Inc. Engine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site
US7363388B2 (en) 2001-03-28 2008-04-22 Siebel Systems, Inc. Method and system for direct server synchronization with a computing device
US20030206192A1 (en) 2001-03-31 2003-11-06 Mingte Chen Asynchronous message push to web browser
US20030018705A1 (en) 2001-03-31 2003-01-23 Mingte Chen Media-independent communication server
US6732095B1 (en) 2001-04-13 2004-05-04 Siebel Systems, Inc. Method and apparatus for mapping between XML and relational representations
US7761288B2 (en) 2001-04-30 2010-07-20 Siebel Systems, Inc. Polylingual simultaneous shipping of software
US6782383B2 (en) 2001-06-18 2004-08-24 Siebel Systems, Inc. System and method to implement a persistent and dismissible search center frame
US6763351B1 (en) 2001-06-18 2004-07-13 Siebel Systems, Inc. Method, apparatus, and system for attaching search results
US6711565B1 (en) 2001-06-18 2004-03-23 Siebel Systems, Inc. Method, apparatus, and system for previewing search results
US6728702B1 (en) 2001-06-18 2004-04-27 Siebel Systems, Inc. System and method to implement an integrated search center supporting a full-text search and query on a database
US20030004971A1 (en) 2001-06-29 2003-01-02 Gong Wen G. Automatic generation of data models and accompanying user interfaces
US7461077B1 (en) 2001-07-31 2008-12-02 Nicholas Greenwood Representation of data records
US6553371B2 (en) 2001-09-20 2003-04-22 International Business Machines Corporation Method and system for specifying and displaying table joins in relational database queries
US6993712B2 (en) 2001-09-28 2006-01-31 Siebel Systems, Inc. System and method for facilitating user interaction in a browser environment
US7761535B2 (en) 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
US6826582B1 (en) 2001-09-28 2004-11-30 Emc Corporation Method and system for using file systems for content management
US6724399B1 (en) 2001-09-28 2004-04-20 Siebel Systems, Inc. Methods and apparatus for enabling keyboard accelerators in applications implemented via a browser
US6978445B2 (en) 2001-09-28 2005-12-20 Siebel Systems, Inc. Method and system for supporting user navigation in a browser environment
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US7962565B2 (en) 2001-09-29 2011-06-14 Siebel Systems, Inc. Method, apparatus and system for a mobile web client
US6901595B2 (en) 2001-09-29 2005-05-31 Siebel Systems, Inc. Method, apparatus, and system for implementing a framework to support a web-based application
US7289949B2 (en) 2001-10-09 2007-10-30 Right Now Technologies, Inc. Method for routing electronic correspondence based on the level and type of emotion contained therein
US6850933B2 (en) 2001-11-15 2005-02-01 Microsoft Corporation System and method for optimizing queries using materialized views and fast view matching
US6804330B1 (en) 2002-01-04 2004-10-12 Siebel Systems, Inc. Method and system for accessing CRM data via voice
US7058890B2 (en) 2002-02-13 2006-06-06 Siebel Systems, Inc. Method and system for enabling connectivity to a data system
US7177862B2 (en) * 2002-03-28 2007-02-13 International Business Machines Corporation Method and structure for federated web service discovery search over multiple registries with result aggregation
US7131071B2 (en) 2002-03-29 2006-10-31 Siebel Systems, Inc. Defining an approval process for requests for approval
US7672853B2 (en) 2002-03-29 2010-03-02 Siebel Systems, Inc. User interface for processing requests for approval
US6983275B2 (en) 2002-04-16 2006-01-03 International Business Machines Corporation Optimizing database query by generating, determining the type of derived predicate based on monotonicity of the column generating expression for each remaining inequality predicate in the list of unexamined predicates
US6748373B2 (en) 2002-05-01 2004-06-08 Bea Systems, Inc. System and method for adaptively optimizing queries
US6850949B2 (en) 2002-06-03 2005-02-01 Right Now Technologies, Inc. System and method for generating a dynamic interface via a communications network
US7437720B2 (en) 2002-06-27 2008-10-14 Siebel Systems, Inc. Efficient high-interactivity user interface for client-server applications
US7594181B2 (en) 2002-06-27 2009-09-22 Siebel Systems, Inc. Prototyping graphical user interfaces
US8639542B2 (en) 2002-06-27 2014-01-28 Siebel Systems, Inc. Method and apparatus to facilitate development of a customer-specific business process model
US20040010489A1 (en) 2002-07-12 2004-01-15 Rightnow Technologies, Inc. Method for providing search-specific web pages in a network computing environment
US7251787B2 (en) 2002-08-28 2007-07-31 Siebel Systems, Inc. Method and apparatus for an integrated process modeller
US7487140B2 (en) 2002-12-17 2009-02-03 International Business Machines Corporation Method for executing a query having multiple distinct key columns
US9448860B2 (en) 2003-03-21 2016-09-20 Oracle America, Inc. Method and architecture for providing data-change alerts to external applications via a push service
US7904340B2 (en) 2003-03-24 2011-03-08 Siebel Systems, Inc. Methods and computer-readable medium for defining a product model
JP2006523353A (ja) 2003-03-24 2006-10-12 シーベル システムズ,インコーポレイティド 共通共通オブジェクト
WO2004086197A2 (en) 2003-03-24 2004-10-07 Siebel Systems, Inc. Custom common object
US8762415B2 (en) 2003-03-25 2014-06-24 Siebel Systems, Inc. Modeling of order data
US7685515B2 (en) 2003-04-04 2010-03-23 Netsuite, Inc. Facilitating data manipulation in a browser-based user interface of an enterprise business application
US7620655B2 (en) 2003-05-07 2009-11-17 Enecto Ab Method, device and computer program product for identifying visitors of websites
US7685437B2 (en) 2003-05-30 2010-03-23 International Business Machines Corporation Query optimization in encrypted database systems
US7409336B2 (en) 2003-06-19 2008-08-05 Siebel Systems, Inc. Method and system for searching data based on identified subset of categories and relevance-scored text representation-category combinations
US20040260659A1 (en) 2003-06-23 2004-12-23 Len Chan Function space reservation system
US7237227B2 (en) 2003-06-30 2007-06-26 Siebel Systems, Inc. Application user interface template with free-form layout
US7516115B2 (en) 2003-08-20 2009-04-07 International Business Machines Corporation Method and system for optimizing performance in non-relational databases
US7694314B2 (en) 2003-08-28 2010-04-06 Siebel Systems, Inc. Universal application network architecture
US7779039B2 (en) * 2004-04-02 2010-08-17 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US8543566B2 (en) 2003-09-23 2013-09-24 Salesforce.Com, Inc. System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data
US7529728B2 (en) 2003-09-23 2009-05-05 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US7590620B1 (en) * 2004-06-18 2009-09-15 Google Inc. System and method for analyzing data records
US7962448B2 (en) 2004-12-17 2011-06-14 International Business Machines Corporation Optimizing a three tiered synchronization system by pre-fetching and pre-formatting synchronization data
US7343367B2 (en) 2005-05-12 2008-03-11 International Business Machines Corporation Optimizing a database query that returns a predetermined number of rows using a generated optimized access plan
JP5395434B2 (ja) * 2005-09-09 2014-01-22 セールスフォース ドット コム インコーポレイティッド マルチテナントデータベース環境において、オンデマンドアプリケーションをエクスポートし、公表し、ブラウズし、インストールするためのシステムおよび方法
US20070214104A1 (en) 2006-03-07 2007-09-13 Bingjie Miao Method and system for locking execution plan during database migration
US8671091B2 (en) * 2006-08-02 2014-03-11 Hewlett-Packard Development Company, L.P. Optimizing snowflake schema queries
US8086598B1 (en) 2006-08-02 2011-12-27 Hewlett-Packard Development Company, L.P. Query optimizer with schema conversion
US8156107B2 (en) 2007-02-02 2012-04-10 Teradata Us, Inc. System and method for join-partitioning for local computability of query over shared-nothing clusters
US20100005077A1 (en) 2008-07-07 2010-01-07 Kickfire, Inc. Methods and systems for generating query plans that are compatible for execution in hardware
US20090077054A1 (en) 2007-09-13 2009-03-19 Brian Robert Muras Cardinality Statistic for Optimizing Database Queries with Aggregation Functions
US8078624B2 (en) 2007-12-20 2011-12-13 International Business Machines Corporation Content searching for portals having secure content
US7933916B2 (en) * 2008-02-28 2011-04-26 Microsoft Corporation Querying nonSQL data stores with a SQL-style language
CN101430688A (zh) 2008-11-18 2009-05-13 中国移动通信集团福建有限公司 一种数据库自动化探测系统及其运行方法
JP2010198258A (ja) * 2009-02-25 2010-09-09 Nippon Telegr & Teleph Corp <Ntt> キャッシュメンテナンス装置、その方法及びそのプログラム
JP2010224824A (ja) * 2009-03-23 2010-10-07 Toshiba Corp 情報処理装置
US8380659B2 (en) 2010-02-09 2013-02-19 Google Inc. Method and system for efficiently replicating data in non-relational databases
US8402028B2 (en) 2010-02-25 2013-03-19 Salesforce.Com, Inc. System, method and computer program product for conditionally performing a query including an aggregate function
US8447754B2 (en) 2010-04-19 2013-05-21 Salesforce.Com, Inc. Methods and systems for optimizing queries in a multi-tenant store
US8584124B2 (en) * 2010-04-20 2013-11-12 Salesforce.Com, Inc. Methods and systems for batch processing in an on-demand service environment
US9177021B2 (en) 2011-06-09 2015-11-03 International Business Machines Corporation Relational query planning for non-relational data sources
US8898145B2 (en) 2011-06-15 2014-11-25 Microsoft Corporation Query optimization techniques for business intelligence systems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1688977A (zh) * 2002-10-03 2005-10-26 国际商业机器公司 智能使用用户数据以抢先阻止违反访问控制的查询的执行
CN1609856A (zh) * 2003-06-23 2005-04-27 微软公司 查询中间语言的方法和系统
CN101305365A (zh) * 2004-12-17 2008-11-12 亚马逊科技公司 用于进行数据仓储的设备和方法
US20070124303A1 (en) * 2005-11-30 2007-05-31 International Business Machines Corporation System and method for managing access to data in a database
US20070130137A1 (en) * 2005-12-02 2007-06-07 Salesforce.Com, Inc. Methods and systems for optimizing text searches over structured data in a multi-tenant environment
US20090282045A1 (en) * 2008-05-09 2009-11-12 Business Objects, S.A. Apparatus and method for accessing data in a multi-tenant database according to a trust hierarchy
US20100049694A1 (en) * 2008-08-20 2010-02-25 Ca, Inc. Method and system for extending a relational schema

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968598A (zh) * 2018-09-29 2020-04-07 北京京东尚科信息技术有限公司 数据请求管理方法、系统及装置
US12093727B2 (en) 2021-04-12 2024-09-17 Salessforce, Inc. Process flow builder customization

Also Published As

Publication number Publication date
WO2012087366A1 (en) 2012-06-28
AU2011345318B2 (en) 2017-06-15
AU2011345318A8 (en) 2017-10-05
CA2820867A1 (en) 2012-06-28
JP2015146201A (ja) 2015-08-13
CA2820867C (en) 2020-04-21
JP6059273B2 (ja) 2017-01-11
US10162851B2 (en) 2018-12-25
JP2017076424A (ja) 2017-04-20
AU2011345318B8 (en) 2017-10-05
CN103299267B (zh) 2016-05-18
CN105930428B (zh) 2019-07-30
JP5710782B2 (ja) 2015-04-30
JP2014505925A (ja) 2014-03-06
CN103299267A (zh) 2013-09-11
US20110258178A1 (en) 2011-10-20
AU2011345318A1 (en) 2013-07-18
JP6448609B2 (ja) 2019-01-09

Similar Documents

Publication Publication Date Title
CN105930428A (zh) 用于执行多租户存储中的交叉存储连接的方法和系统
US8732163B2 (en) Query optimization with memory I/O awareness
US10831753B2 (en) Query plan generation and execution in a relational database management system with a temporal-relational database
CN107077479B (zh) 一种更新列存储数据库系统的方法和系统
US20210011898A1 (en) Automatic determination of table distribution for multinode, distributed database systems
Cattell Scalable SQL and NoSQL data stores
Olston et al. Automatic optimization of parallel dataflow programs
CN101576918B (zh) 具备负载均衡功能的数据缓存系统
Dipina Damodaran et al. Performance evaluation of MySQL and MongoDB databases
CN108351900A (zh) 用于分片的关系数据库组织
US20140280373A1 (en) Automatically determining an optimal database subsection
CN106716409A (zh) 基于查询需求从行存储数据库自适应地构建和更新列存储数据库的方法和系统
CN100594497C (zh) 一种实现网络查询缓存的系统和查询方法
CN101916261A (zh) 一种分布式并行数据库系统的数据分区方法
Cubukcu et al. Citus: Distributed postgresql for data-intensive applications
US10534797B2 (en) Synchronized updates across multiple database partitions
US11281668B1 (en) Optimizing complex database queries using query fusion
Alamoudi et al. External data access and indexing in AsterixDB
CN100485640C (zh) 用于企业软件系统的高速缓存
Dipina Damodaran et al. MongoDB vs MySQL: a comparative study of performance in super market management system
CN110019299A (zh) 一种用于创建或刷新分析型数据仓库的离线数据集合的方法和装置
Bog et al. Normalization in a mixed OLTP and OLAP workload scenario
US20240134838A1 (en) Flexible routing of database operations accessing remote tables
US20210303583A1 (en) Ranking filter algorithms
Chen Efficient partitioner for distributed OLTP DBMS

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
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Shuo Power Co.

Address before: California, USA

Patentee before: salesforce.com, Inc.

CP01 Change in the name or title of a patent holder