涉及多个数据库和执行引擎的查询的制作方法_3

文档序号:8947464阅读:来源:国知局
算系统400交互。作为一实施例,用户可以通过位于系统 400或另外一个计算机(例如桌面计算机、工作站计算机、平板电脑等)上的计算机应用与 系统400交互。该计算机应用可以包括:用户界面(例如,触摸界面、鼠标、键盘、手势输入 设备)。
[0042] 计算机系统400可以执行方法100和方法200以及其变形,可以配置组件410-460 用于执行方法100和方法200的各部分以及其变形。此外,组件410-460执行的功能可以 是大型软件平台、系统、应用等的一部分。例如,这些组件可以是数据分析系统的一部分。
[0043] 引擎410和引擎440分别访问数据库450和数据库460。如此处所描述,数据库可 以包括一个或多个计算机,并且可包括一个或多个控制器和机器可读存储介质。上述引擎 可以通过网络与数据库相连。网络可以是任何类型的通信网络,包括但不限制为有线网络 (例如,线缆)、无线网络(例如,蜂窝、卫星)、蜂窝电信网络、以及基于IP的电信网络(例 如,互联网语音协议网络)。网络还可以包括:传统的固定电话、公共交换电话网(PSTN)或 者前述的组合。
[0044] 处理器420可以为适合于提取和执行存储在机器可读存储介质430中的指令的至 少一个中央处理单元(CPU)、至少一个以半导体为基础的微处理器、其他的硬件设备或处理 元件,或者其组合。处理器可以包括:位于芯片上单个或多个核、跨多个芯片的多个核、跨多 个设备的多个核,或者其组合。处理器420可以提取、解码和执行它们中的指令432-436以 执行多种处理。作为一种替代或者除了提取和执行指令,处理器420可以包括:包括一定数 量的用于执行指令432-436的功能的电子元件的至少一个集成电路(1C)、其他控制逻辑、 其他电子电路,或其组合。相应地,处理器420可以通过多个处理单元来实现,指令432-436 可以由引擎410的不同区域中的不同处理单元来实现。
[0045] 该机器可读存储介质430可以为:任何包括或存储可执行指令的电子存储设备、 磁性存储设备、光学存储设备或其他物理存储设备。因此,该机器可读存储介质可以包 括,例如各种随机存取存储器(RAM)、只读存储器(ROM)、闪存,以及其组合。例如,该机 器可读介质可以包括:非易失性随机存取存储器(NVRAM)、电子可擦写可编程只读存储器 (EEPROM)、存储驱动器、NAND闪存等。此外,该机器可读存储介质430可以是计算机可读并 且是非易失性的。该机器可读存储介质430编码有一系列的用于管理处理元件的可执行指 令。
[0046] 当指令432-436被处理器420 (例如,通过处理器的一个或多个处理元件)执行 时,可以使处理器420执行处理,例如方法100和方法200,和/或其变形以及其中的部分。
[0047] 例如,查询指令432可以使OLTP执行引擎410的处理器420发起查询以从OLTP 数据库450获取第一数据以及从OLAP数据库460获取第二数据。该查询可以包括用于获 取该第二数据的子查询。该子查询可以通过查询连接器函数与该查询相连接,该查询连接 器函数在没有任何中间实例化的情况下可以使第二数据从OLAP执行引擎440传递到OLTP 执行引擎410。发送指令434可以使处理器420将该子查询发送到与该OLAP数据库460相 关联的OLAP执行引擎440。该OLAP执行引擎440可以执行该子查询以从该OLAP数据库 460获取该第二数据。
[0048] 接收指令436可以使处理器420从该OLAP执行引擎440接收与该子查询对应的 流查询结果。该流查询结果代表该第二数据,该OLTP执行引擎410可以将这些流查询结果 视为该第二数据的数据源。该OLTP执行引擎410可以通过从该OLTP数据库450提取第一 数据来继续处理该查询,对该第一数据和第二数据执行该查询指定的至少一个操作
[0049] 在以上描述中,提出很多细节以提供对此处公开的主题的理解。然而,本发明可以 不通过部分或所有这些细节实现。其他实现可能包括上述讨论的细节的修改和变形。所附 的权利要求意在包括这些修改和变形。
【主权项】
1. 一种方法,包括:由第一执行引擎, 发起使用存储在第一数据库中的第一数据和存储在第二数据库中的第二数据的查询, 所述第一执行引擎与所述第一数据库相关联,第二执行引擎与所述第二数据库相关联; 向所述第二执行引擎发送所述查询的子查询,用于在所述第二数据库执行以提取所述 第二数据; 在所述第一执行引擎以流逐元组的格式从所述第二执行引擎接收所述第二数据;以及 执行剩余的所述查询。2. 根据权利要求1所述的方法,其中,在所述第一执行引擎以流逐元组的格式从所述 第二执行引擎接收所述第二数据包括:在所述第一执行引擎直接从所述第二执行引擎接收 所述第二数据,而非在所述第二数据被所述第一执行引擎接收之前,将所述第二数据实例 化在表中。3. 根据权利要求1所述的方法,其中,所述第一数据库是OLTP数据库,所述第二数据库 是OLAP数据库。4. 根据权利要求1所述的方法,其中,执行剩余的所述查询包括: 由所述第一执行引擎从所述第一数据库提取所述第一数据;以及 由所述第一执行引擎对所述第一数据和所述第二数据执行由所述查询指定的至少一 个操作。5. 根据权利要求1所述的方法,其中,所述第一执行引擎将从所述第二执行引擎接收 的所述流第二数据视为数据源。6. 一种系统,包括: 通过第一执行引擎可访问的第一数据库; 通过第二执行引擎可访问的第二数据库; 在所述第一执行引擎上的查询执行器,用于执行从所述第一数据库获取第一数据和从 所述第二数据库获取第二数据的查询,所述查询包括指向所述第二执行引擎的子查询; 所述查询执行器被配置成从所述第二执行引擎接收所述子查询的流查询结果。7. 根据权利要求6所述的系统,其中,所述第一数据库是用于存储当前数据的OLTP数 据库,所述第二数据库是用于存储历史数据的OLAP数据库,所述第一数据库用于存储在所 述第二数据库上不可用的特定新近数据。8. 根据权利要求6所述的系统,其中,所述第二数据库通过所述第一执行引擎不能直 接访问。9. 根据权利要求6所述的系统,其中,所述查询执行器被配置成:将所述子查询发送给 所述第二执行引擎用于在所述第二数据库执行。10. 根据权利要求6所述的系统,其中,所述子查询与所述查询通过查询连接器函数相 连,所述查询连接器函数在没有任何中间实例化的情况下使所述第二数据从所述第二执行 引擎传递到所述查询执行器。11. 根据权利要求6所述的系统,其中,所述查询执行器进一步被配置成:从所述第一 数据库中提取所述第一数据,以及对所述第一数据和所述第二数据执行由所述查询指定的 至少一个操作。12. -种非易失性计算机可读存储介质,用于存储由计算机执行的指令,所述指令在被 执行时使得OLTP执行引擎: 发起从OLTP数据源获取第一数据和从OLAP数据源获取第二数据的查询,所述查询包 括用于获取所述第二数据的子查询; 将所述子查询发送给与所述OLAP数据源相关联的OLAP执行引擎;以及 从所述OLAP执行引擎接收与所述子查询对应的流查询结果。13. 根据权利要求12所述的计算机可读存储介质,所述指令在被执行使得所述OLTP执 行引擎将与所述子查询对应的流查询结果视为所述第二数据的数据源。14. 根据权利要求12所述的计算机可读存储介质,所述指令在被执行使得所述OLTP执 行引擎: 使用所述OLTP执行引擎从所述OLTP数据源提取所述第一数据;以及 对所述第一数据和所述第二数据执行由所述查询指定的至少一个操作。15. 根据权利要求12所述的计算机可读存储介质,其中,所述子查询与所述查询通过 查询连接器函数相连,所述查询连接器函数在没有任何中间实例化的情况下使所述第二数 据从所述OLAP执行引擎传递到所述OLTP执行引擎。
【专利摘要】本申请公开了处理使用来自于第一数据库的第一数据和来自于第二数据库的第二数据的查询的技术。通过第一执行引擎访问该第一数据库,通过第二执行引擎访问该第二数据库。可以将该查询的子查询发送到该第二执行引擎用于对该第二数据库进行执行。可以从该第一执行引擎接收该子查询的流结果。
【IPC分类】G06F17/30
【公开号】CN105164674
【申请号】CN201380076181
【发明人】M·许, Q·陈
【申请人】惠普发展公司,有限责任合伙企业
【公开日】2015年12月16日
【申请日】2013年8月29日
【公告号】WO2015030767A1
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1