CN105653559B - 用于在数据库中进行搜索的方法和装置 - Google Patents
用于在数据库中进行搜索的方法和装置 Download PDFInfo
- Publication number
- CN105653559B CN105653559B CN201410714219.8A CN201410714219A CN105653559B CN 105653559 B CN105653559 B CN 105653559B CN 201410714219 A CN201410714219 A CN 201410714219A CN 105653559 B CN105653559 B CN 105653559B
- Authority
- CN
- China
- Prior art keywords
- database
- search
- searching
- algorithm
- search result
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24575—Query processing with adaptation to user needs using context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了用于在数据库中进行搜索的方法和装置。提供了搜索方法,包括:响应于接收到针对数据库进行搜索的搜索请求,从搜索请求中提取在数据库中进行搜索的条件;基于针对所述数据库执行的历史搜索的历史统计数据,从注册到所述数据库的多个搜索算法中选择匹配于所述条件的搜索算法;以及利用搜索算法从数据库获得搜索结果,其中数据库是时间序列数据库。进一步,提供了在包括时间序列数据库和关系数据库的数据库系统中进行搜索的方法。采用本发明的方法和装置,可以提高搜索效率。
Description
技术领域
本发明的各实施方式涉及数据库管理,更具体地,涉及用于在数据库中进行搜索的方法和装置。
背景技术
随着计算机、数据通信以及实时监控等技术的发展,时间序列数据库(TimeSeries Database)已经被广泛应用于例如设备监控、生产线管理、金融分析等诸多方面。时间序列是指按照时间顺序排列的测量值的集合,在本发明的上下文中可以将存储测量值的节点称为数据点(Data Point)或者数据事件(Data Event)。时间序列数据库是指用于存储这些测量值的数据库。测量值可以包括各种数据,例如在监控桥梁安全性的应用环境中,被采集数据可以包括由特定传感器采集的压力数据和/或压强数据;在天气预报应用环境中,被采集数据可以包括温度、湿度、压力、风力(例如,包括大小和方向),等等。
相似性搜索(Similarity Search)是在时间序列数据库中的一个重要操作,具体地,相似性搜索是指在时间序列中搜索与目标子序列(Target Subsequence)相类似的子序列。在时间序列数据库的技术领域中,可以将相类似的子序列简称为相似子序列(pattern)。时间序列通常包括海量数据,并且该时间序列可能会不断地由新近的测量值来实时地更新。例如,在监控桥梁安全性的应用环境中,在桥梁上可能部署有分别用于实时地测量各处的压力的数万个传感器。例如,当以1秒甚至更高的频率来更新数据库时,将产生巨大的数据量。
应当注意,在相似性搜索中并不要求找到的各个相似子序列均与目标子序列完全匹配,而是在各个相似子序列之间可以具有一定的差异,例如,差异边界可以是e。相似性搜索所找到的子序列的长度与目标子序列相同(例如,长度为m),并且与该目标子序列之间的差异小于或者等于e。
由于时间序列数据库的存储结构复杂,因而在时间序列数据库中进行搜索的效率并不理想。另外,由于时间序列数据库中可以存储不同类型的数据,因而适合一种类型的数据的搜索方式并不一定适合于其他类型的数据。因而,如何提高在时间序列数据库中进行搜索的效率成为目前的一个研究热点。进一步,目前的数据库系统日益复杂,并且其中可以包括时间序列数据库并且还可以包括关系数据库(Relational Database),此时如何在跨越不同类型数据库的数据库系统而中进行搜索也成为一个研究热点。
发明内容
因而,期望开发一种能够有效地在时间序列数据库中进行搜索的技术方案,期望上述技术方案可以考虑时间序列数据库的特性,并基于不同的搜索算法来在时间序列数据库中搜索以提高数据库系统的效率。
在本发明的一个实施方式中,提供了一种用于在数据库中进行搜索的方法,包括:响应于接收到针对数据库进行搜索的搜索请求,从搜索请求中提取在数据库中进行搜索的条件;基于针对所述数据库执行的历史搜索的历史统计数据,从注册到所述数据库的多个搜索算法中选择匹配于所述条件的搜索算法;以及利用搜索算法从数据库获得搜索结果,其中数据库是时间序列数据库。
在本发明的一个实施方式中,提供了一种用于在数据库中进行搜索的装置,包括:提取模块,配置用于响应于接收到针对数据库进行搜索的搜索请求,从搜索请求中提取在数据库中进行搜索的条件;选择模块,配置用于基于针对所述数据库执行的历史搜索的历史统计数据,从注册到所述数据库的多个搜索算法中选择匹配于所述条件的搜索算法;以及获得模块,配置用于利用搜索算法从数据库获得搜索结果,其中数据库是时间序列数据库。
进一步,还期望开发一种能够在包括多种类型数据库的数据库系统中进行搜索的技术方案。具体地,期望该技术方案可以与现有的在数据库系统中进行搜索的方法相兼容,并且期望可以以对用户透明的方式来响应于来自客户端的搜索请求,由数据库系统来实现跨越多种类型数据库的搜索操作,进而向客户端返回搜索结果。
在本发明的一个实施方式中,提供了一种用于在数据库系统中进行搜索的方法,数据库系统包括第一数据库和第二数据库,第一数据库是时间序列数据库以及第二数据库是关系数据库,方法包括:响应于接收到搜索请求,从所述搜索请求中提取用于在所述第一数据库中进行搜索的第一搜索请求和用于在所述第二数据库中进行搜索的第二搜索请求;采用根据本发明的方法,利用所述第一搜索请求在所述第一数据库中进行搜索,以及利用所述第二搜索请求在所述第二数据库中进行搜索;以及基于来自第一数据库的第一搜索结果和来自第二数据库的第二搜索结果,生成搜索结果以响应于搜索请求。
在本发明的一个实施方式中,提供了一种用于在数据库系统中进行搜索的装置,数据库系统包括第一数据库和第二数据库,第一数据库是时间序列数据库以及第二数据库是关系数据库,装置包括:提取模块,配置用于响应于接收到搜索请求,从所述搜索请求中提取用于在所述第一数据库中进行搜索的第一搜索请求和用于在所述第二数据库中进行搜索的第二搜索请求;搜索模块,配置用于采用根据本发明所述的装置,利用所述第一搜索请求在所述第一数据库中进行搜索,以及利用所述第二搜索请求在所述第二数据库中进行搜索;以及生成模块,配置用于基于来自第一数据库的第一搜索结果和来自第二数据库的第二搜索结果,生成搜索结果以响应于搜索请求。
采用本发明所述的方法和装置,可以考虑时间序列数据库的特性,并基于不同的搜索算法来在时间序列数据库中进行搜索。进一步,当需要在包括多种类型数据库的数据库系统中进行搜索时,用户不必关心数据库系统内部的各种类型的数据库之间的交互细节,而是仅通过向数据库系统提交搜索请求,即可从数据库系统获得搜索结果。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示意性示出了适于用来实现本发明实施方式的示例性计算机系统/服务器的框图;
图2示意性示出了一个示例性的云计算环境;
图3示意性示出了云计算环境50(图2)提供的一组功能抽象层;
图4示意性示出了在时间序列数据库中搜索与目标子序列类似的相似子序列的过程的示意图;
图5示意性示出了根据本发明一个实施方式的用于搜在数据库中进行索的方法的流程图;
图6A示意性示出了根据本发明一个实施方式的形成历史统计数据的过程的框图,图6B示意性示出了根据本发明一个实施方式的所形成的历史统计数据的框图;
图7示意性示出了根据一个技术方案的跨越不同类型的数据库进行搜索的过程的架构图;
图8示意性示出了根据本发明一个实施方式的用于在包括不同类型数据库的数据库系统中进行搜索的技术方案的架构图;
图9示意性示出了根据本发明一个实施方式的用于在数据库系统中进行搜索的方法的流程图;以及
图10A示意性示出了根据本发明一个实施方式的用于在数据库中进行搜索的装置的框图,以及图10B示意性示出了根据本发明一个实施方式的在数据库系统中进行搜索的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其他类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理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可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施方式的功能。
具有一组(至少一个)程序模块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提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及数据库管理。
在本发明的一个实施方式中,可以在工作负载层66处实现根据本发明的各个实施方式的用于在数据库系统中进行搜索的方法,以便在云计算环境中可以方便地向数据库系统的客户端提供更加丰富的功能。具体地,本发明的各个实施方式可以以对客户端透明的方式来实现,即,数据库系统的用户可以通过使用与传统的结构化查询语言(StructuredQuery Language,SQL)的查询语句类似的方式,来实现在时间序列数据库中进行搜索,并且还可以在包括关系数据库和时间序列数据库的数据库系统中进行搜索的操作。
应当注意,随着云计算环境的发展,现有的数据库系统已经成为云计算环境中的节点。因而,在本发明中描述的用于在数据库系统中进行搜索的技术方案可以不必局限于在现有的数据库系统中实现,而是还可以在云计算环境中的节点处实现。
图4示意性示出了在时间序列数据库中搜索与目标子序列类似的相似子序列的过程的示意图400。图4示出了时间序列数据库中的一个时间序列420,并且由附图标记410示出在相似性搜索中所涉及的目标子序列。在此上下文中,相似性搜索是指从时间序列420中搜索与目标子序列410相似的子序列。例如,返回的相似子序列可以包括三个子序列,分别示出为子序列A、子序列B和子序列C。由于图4中示出的时间序列420的长度较小,查询结果仅返回3个子序列。当针对较大或者超大的时间序列进行搜索(例如,在包括近5年的气象数据的时间序列数据库中搜索特定的查询序列)时,很可能会返回数万的候选子序列。
尽管现有技术中提出了在时间序列数据库中进行的多种技术方案,然而这些技术方案都采用相同的方式进行搜索,而并没有考虑到搜索请求中的搜索条件对于搜索效率的影响。在本发明的各个实施方式中,提出了一种基于搜索请求中的搜索条件来选择更为适合的搜索算法的技术方案,因而可以大大提高搜索效率。
具体地,在本发明的一个实施方式中,提出了一种用于在数据库中进行搜索的方法,包括:响应于接收到针对数据库进行搜索的搜索请求,从搜索请求中提取在数据库中进行搜索的条件;基于针对所述数据库执行的历史搜索的历史统计数据,从注册到所述数据库的多个搜索算法中选择匹配于所述条件的搜索算法;以及利用搜索算法从数据库获得搜索结果,其中数据库是时间序列数据库。
具体地,图5示意性示出了根据本发明一个实施方式的用于搜索的方法的流程图。在步骤S502中,响应于接收到针对数据库进行搜索的搜索请求,从搜索请求中提取在数据库中进行搜索的条件。在本发明的各个实施方式中,该数据库是时间序列数据库。本领域技术人员应当理解,在此的搜索条件可以是进行相似性搜索时的目标子序列(例如,上文参见图4描述的目标子序列410)。根据时间序列数据库的具体应用环境,该条件可以具有不同的含义。例如,在医院中存储患者的心电图(Electrocardiograph,ECG)的时间序列数据库中,当希望找到在心电图中出现某危险波形的患者时,则该搜索条件可以是“出现某危险波形”。
在步骤S504中,基于针对所述数据库执行的历史搜索的历史统计数据,从注册到所述数据库的多个搜索算法中选择匹配于所述条件的搜索算法。本领域技术人员应当理解,基于时间序列数据库中存储的数据类型的不同,可以使用不同类型的搜索算法来加速搜索过程。例如,例如心电图数据是以预定采样频率采集的心跳相关的数据,并且由于心跳数据具有周期性的特征,因而与每次心跳相关联的子序列之间可能存在一定的相似性。又例如,在监视桥梁安全的应用环境中,尽管桥面的压力数据也是在预定采样频率采集的,然而桥面的压力相关于在采集期间桥面上的车辆的速度、载重等因素,因而所采集的时间序列中可能并不存在周期性特征。因而基于在特定类型的时间序列数据库中进行搜索的搜索条件来选择搜索算法,有助于提高搜索效率。
在此步骤中,可以基于针对数据库执行的历史搜索的历史统计数据,从注册到数据库的多个搜索算法中选择匹配于条件的搜索算法。具体地,可以考虑在以往针对数据库执行搜索时所记录的、与不同搜索条件相关联的历史搜索的历史统计数据,来选择最为适合于当前的搜索条件的搜索算法。具体而言,在时间序列数据库中可以存在多种搜索算法,在此的历史统计数据可以记录搜索条件与多个搜索算法之间的关联关系。
在步骤S506中,利用搜索算法从数据库获得搜索结果。根据本发明的实施方式,当使用多种搜索算法来在时间序列数据库中执行搜索时,可以基于搜索条件的不同来选择相应的搜索算法以便提高搜索效率。从而对于每个搜索而言,都可以选择更为适合于该搜索的搜索算法。
在本发明的一个实施方式中,历史统计数据关联于使用多个搜索算法中的各个搜索算法在数据库中进行搜索的相应效率。可以记录针对数据库进行的多个历史搜索的效率,并且可以基于所记录的效率来判断采用哪个搜索算法来辅助当前的搜索。在本发明的一个实施方式中,数据库系统中可以涉及多个搜索算法,例如,可以包括基于欧氏距离(Euclidean Distance)的搜索算法,或者还可以包括基于LCSS的搜索算法、基于DTW的搜索算法等。本领域技术人员可以基于在数据库中执行的历史搜索期间使用的各种搜索算法的效率,来选择最适合于当前搜索条件的搜索算法。
在本发明的一个实施方式中,历史统计数据进一步关联于基于各个搜索算法在数据库中的表中进行搜索的效率。应当注意,搜索效率还与针对哪个数据表进行搜索相关。例如,数据库中可以包括多个数据表,其中表1中存储心电图数据,而表2中存储桥面压力数据。在此实施方式中,由于历史统计数据可以关联于搜索算法和搜索对象(即,在哪个数据表中进行搜索),因而可以利用二元组(算法,搜索对象)来标识历史统计数据。例如,当历史数据显示针对表1进行查询时使用基于ED的搜索算法的效率更高,则在后续针对表1进行搜索时,可以优先推荐使用基于ED的搜索算法。
在本发明的一个实施方式中,效率包括时间开销,时间开销描述返回搜索结果中的子序列中的时间点的时间开销;以及基于针对数据库进行的历史搜索的历史统计数据,从注册到数据库的多个搜索算法中选择匹配于条件的当前搜索算法包括:选择时间开销最低的搜索算法作为当前搜索算法。
应当注意,执行搜索的时间效率是衡量数据库系统性能的一个重要因素,因而在此实施方式中首先考虑时间开销对于搜索性能的影响。不同于传统的关系数据库,在时间序列数据库中搜索时返回的是匹配于目标子序列的一个或者多个相似子序列(例如,长度为m),而并不是一个单独的数值。在时间序列数据库中执行相似性搜索时,目标子序列的长度是影响时间序列数据库的响应时间的一个重要因素,通常而言,目标子序列越长则需要越多的时间开销。
因而,在衡量时间序列数据库的响应时间时,如仅仅比较采用不同搜索算法的返回相似子序列的持续时间、而不考虑目标子序列的长度,则该持续时间并不能有效地衡量该搜索算法的效率。因而,还需要计算返回搜索结果中的子序列中的一个时间点的时间开销。具体而言,在上文的具体示例中,当在数据库中搜索心电图中出现某危险波形的患者时,数据库的响应时间为1秒,并且该危险波形的长度为20(即,包括20个时间点),则此时根据本发明的实施方式的时间开销=1秒/20=0.05秒。
应当注意,时间开销越小则表示使用相应搜索算法对相应数据表进行搜索的时间效率越高,因而,可以选择时间开销最低的搜索算法作为当前搜索算法。
在本发明的一个实施方式中,效率包括剪枝度(Pruning Ratio),剪枝度描述搜索结果中的子序列的数量与基于当前搜索算法从数据库中返回的候选子序列的数量的比值;以及基于针对数据库进行的历史搜索的历史统计数据,从注册到数据库的多个搜索算法中选择匹配于条件的当前搜索算法包括:选择剪枝度最高的搜索算法作为当前搜索算法。
应当注意,目前已经开发出了多种搜索算法,尽管这些搜索算法可以输出更为准确的候选子序列,然而,由这些搜索算法所输出的候选子序列的集合通常大于真正满足搜索条件的子序列,并且是真正匹配于目标子序列的子序列的集合的超集(Super Set)。因而,并不能将搜索算法返回的候选子序列的集合直接作为搜索结果,而是还需要进行进一步的验证。
在此实施方式中,可以将搜索结果中的子序列(即,真正符合搜索条件的相似子序列)的数量与基于当前搜索算法从数据库中返回的候选子序列的数量的比值称为剪枝度。由于需要对由搜索算法返回的候选子序列的集合进行进一步验证以确保仅返回满足查询条件的相似子序列,这需要额外的时间开销,因而,剪枝度的高低将间接地影响数据库的响应时间。
剪枝度越高则额外验证所需的时间越短,反之则表示需要越多的时间进行额外验证,因而可以选择选择剪枝度最高的搜索算法作为当前搜索算法。
在下文中,将参见图6A和图6B来详细描述如何选择适合的搜索算法。图6A示意性示出了根据本发明一个实施方式的形成历史统计数据的过程的框图600A。如图6A所示,可以在二维空间中示出针对数据库中的数据表进行的历史查询的效率的统计数据。在图6A中示出了使用一种搜索算法(例如,算法2)来针对时间序列数据库中的一个数据表(例如,数据表1)执行的多次历史查询的统计数据。如图6A所示,横坐标表示剪枝度而纵坐标表示时间开销,并且灰色背景中的每个黑点表示与一次历史查询相关联的统计数据。
在此实施方式中,可以将覆盖大部分的(例如,80%)黑点的区域作为与搜索算法2和数据表1相关联的历史统计数据。基于上文参见图6A所示的具体步骤可知,方框610A所示的区域即与二元组(算法2,表1)相关联的历史统计数据。采用上文所述的方法,本领域技术人员可以获得针对由不同搜索算法和不同数据表构成的二元组来获取相应的历史统计数据。
图6B示意性示出了根据本发明一个实施方式的所形成的历史统计数据的框图600B。具体地,方框610B示出了与二元组(算法2,表1)相关联的历史统计数据,方框620B示出了与二元组(算法1,表1)相关联的历史统计数据,而方框630B示出了与二元组(算法1,表2)相关联的历史统计数据。在已经存在如图6B所示的历史统计数据的基础上,可以基于图6B来选择适合的搜索算法。
如在上文中已经示出,时间开销和剪枝度是衡量搜索算法的适合程度的两个参数,因而当存在用于一个数据表的多个搜索算法时,可以优先地从图6B所示的方框中选择更加靠近附图右下角的搜索算法(即,时间开销最小、剪枝度最高的搜索算法)。具体地,当需要在表1中进行搜索时,通过比较方框610B和620B的位置可知算法1的效率更高,因而优选地可以选择使用算法1来在时间序列数据库中的表1中进行搜索。
在本发明的一个实施方式中,进一步包括:基于利用搜索算法从数据库获得搜索结果期间采集的统计信息,更新历史统计数据。
应当注意,可以随着针对数据库进行的每次查询来更新相关的历史统计数据。例如,可以采用如图6A所示的方法,在执行当前查询时,可以利用执行当前查询获得的时间开销和剪枝度来更新先关的历史统计数据(即,在图6A所示的附图中增加一个黑点)。随着黑点的不断增加,方框610A的位置可以不断改变,以便为后续的搜索提供更多的历史样本。
采用上文描述的方法,可以基于在数据库(即,时间序列数据库)中进行搜索的条件,来选择最为适合的搜索算法。应当注意,由于在选择搜索算法时考虑了与在该数据库中进行搜索的历史统计数据,因而可以从注册到该数据库的多个算法中选择最为匹配于条件的搜索算法,进而可以大大提高搜索效率。
还应当注意,在实际应用环境中,通常而言仅仅使用时间序列数据库并不满足用户需求,而是时间序列数据库通常与传统的关系数据库一起存储数据。具体而言,在医院的数据库系统中,可以采用常规的关系数据库来存储患者的基本信息(例如,身份证号码、姓名、性别、出生日期等)和医疗记录,并且还可以使用时间序列数据库来存储例如心电图的检验数据。
在实际应用环境中,经常需要在上述两种类型的数据库中进行搜索。例如,医生可能希望从数据库系统中找到在心电图中出现某危险波形(搜索条件1)的男性(搜索条件2)患者的数据。此时的危险波形即为相似性搜索中的目标子序列。按照目前的技术方案,用户不得不人工搜索。可以理解,现有的技术方案费时费力,因而在涉及多种类型的数据库系统中如何提供更为有效的搜索方法,成为一项亟待解决的问题。
本领域技术人员应当理解,由于实际应用环境中的搜索条件是多种多样的,因而经常存在需要跨越不同类型的数据库进行搜索的需求。具体地,在医院的应用环境中,可以使用时间序列数据库中的数据表(例如,如下文表1所示)来存储例如心电图的检验数据,并且还可以采用常规的关系数据库中的数据表(例如,如下文表2所示)来存储患者的基本信息(例如,身份证号码、姓名、性别、出生日期等)和医疗记录。
表1 心电图数据(数据表:ECG_Data)
表2 患者的基本信息(数据表:Patient)
当期望找到在心电图中出现某危险波形(搜索条件1)的男性(搜索条件2)患者的数据时,由于现有的数据库系统并不支持跨越关系数据库和时间序列数据库两种类型的数据库来搜索满足搜索条件的结果,因而用户不得不人工地从两个不同类型的数据库中分别找到满足搜索条件1的搜索结果1、和满足搜索条件2的搜索结果2,并且人工地寻找搜索结果1和搜索结果2的交集。
图7示意性示出了根据一个技术方案的跨越不同类型的数据库进行搜索的过程的框图700。如图700所示,时间序列数据库710包括如上文表1所示的数据表“ECG_Data”,用于存储患者的心电图;以及关系数据库720中包括例如上文表2所示的数据表“Patient”,用于存储患者的基本信息。应当注意,其中数据表“ECG_Data”是时间序列数据库中的数据表,而数据表“Patient”是关系数据库中的数据表。
如图7所示,此时客户端730处的用户还需要利用第一条件712(在心电图中出现某危险波形)来在时间序列数据库710中进行搜索(如箭头A1所示),并且从时间序列数据库710中取回满足第一条件712的第一搜索结果(如箭头B1所示)。假设在Bob和Alice的心电图中出现了危险波形,则此时第一搜索结果732中包括Bob和Alice两位患者的数据。另外,客户端730处的用户需要利用第二条件722(男性)来在关系数据库720中进行搜索(如箭头A2所示),并且从关系数据库720中取回满足第二条件722的第二搜索结果(如箭头B2所示)。此时,第二搜索结果734中包括Bob和Charlie两位患者的数据。
继而,客户端730处的用户还需要基于第一搜索结果732和第二搜索结果734来找到同时满足两个搜索条件的患者。换言之,通过求取{Bob,Charlie}与{Bob,Alice}的交集,可以得知同时满足两个搜索条件的患者是Bob。
从参见图7所示的技术方案可知,由于现有的数据库系统并不能很好地支持跨越多种类型的数据库来执行搜索,因而客户端730处的用户需要执行大量人工操作。此时,用户的工作枯燥而繁重。
因而,期望提供一种可以由数据库系统来自动地跨越多种类型的数据库来执行搜索的技术方案。进一步,期望用户仅需要按照数据库系统支持的格式(例如,类似于SQL的格式),来向数据库系统提交搜索请求,即可从数据库系统获取满足搜索条件的搜索结果。
针对上文所述的现有技术方案中的种种缺陷,本发明的一个实施方式提出了一种用于在数据库系统中进行搜索的方法,数据库系统包括第一数据库和第二数据库,第一数据库是时间序列数据库以及第二数据库是关系数据库,该方法包括:响应于接收到搜索请求,从所述搜索请求中提取用于在所述第一数据库中进行搜索的第一搜索请求和用于在所述第二数据库中进行搜索的第二搜索请求;采用根据本发明的方法,利用所述第一搜索请求在所述第一数据库中进行搜索,以及利用所述第二搜索请求在所述第二数据库中进行搜索;以及基于来自第一数据库的第一搜索结果和来自第二数据库的第二搜索结果,生成搜索结果以响应于搜索请求。
图8示意性示出了根据本发明一个实施方式的用于在数据库系统中进行搜索的技术方案的架构图800。本发明的原理在于,提供跨越多种类型的数据库进行查询的技术方案,以便支持用户在无需知晓在多种类型的数据库之间的交互细节的情况下,从数据库系统获得期望的搜索结果。
具体地,如图8所示,数据库系统840包括多种类型的数据库,即,时间序列数据库810和关系数据库820。按照本发明的实施方式,客户端830处的用户不必分别在不同类型的数据库中执行人工搜索,而是可以简单地通过向数据库系统840提交满足特定格式要求的搜索请求(如箭头C所示),即可从数据库系统840获得期望的搜索结果(如箭头D所示)。
在此实施方式中,在数据库系统840内部分别对时间序列数据库810和关系数据库820进行搜索(如箭头C1和C2所示),此时,分别用于两个数据库的搜索条件是从来自客户端830的搜索请求中提取的条件。继而,在分别从时间序列数据库810和关系数据库820获取了第一搜索结果832和第二搜索结果834后,可以在数据库系统840内部将两个搜索结果进行组装,以生成满足来自客户端830的搜索请求的搜索结果。继而,从数据库系统840向客户端830返回该搜索结果(如箭头D所示)。
应当注意,第二数据库是关系数据库,因而可以采用现有的各种搜索方法来在关系数据库中进行搜索。第一数据库是时间序列数据库,为了提高在时间序列数据库中的搜索效率,在本发明的上下文中可以采用上文所述的方法,基于用于第一数据库的搜索条件来选择搜索算法(如图8中的参考数字822所示)并进行搜索的技术方案。
采用如图8所示的技术方案,由数据库系统840来向客户端830提供针对数据库系统840内的时间序列数据库810和关系数据库820的统一管理。以此方式,可以大大降低客户端830处的用户的人工操作。
在本发明的一个实施方式中,提出了一种用于在数据库系统中进行搜索的方法,数据库系统包括第一数据库和第二数据库,第一数据库是时间序列数据库以及第二数据库是关系数据库,方法包括:步骤S902,响应于接收到搜索请求,从所述搜索请求中提取用于在所述第一数据库中进行搜索的第一搜索请求和用于在所述第二数据库中进行搜索的第二搜索请求。
本领域技术人员可以自定义搜索请求的数据格式,例如,可以采用类似于现有技术中的SQL语句的格式。下文示意性示出了本领域技术人员可以采用的一种格式定义。
Select id from VT_SearchResult,Patient where
patternlike('10,20...',0.1)and tstable='ECG_Data'and attribute="ECG"
and VT_SearchResult.id=Patient.id and
Patient.gender='male'
上述搜索请求的目的在于,搜索在心电图数据中存在与目标子序列“10,20...”相类似(例如,差异边界为0.1)的相似子序列的男性患者身份证号码。本领域技术人员应当理解,上述搜索语句仅仅是一个具体示例,本领域技术人员可以基于具体应用环境的要求来设计其他的格式定义,只要该格式定义可以清晰定义针对第二数据库和第一数据库的搜索条件即可。
应当注意,在上文的格式定义中仅仅示出了搜索条件的一个简单示例,本领域技术人员可以基于具体应用环境的要求来修改搜索条件。例如,可以指定在第二数据库中搜索年龄在60岁以上的男性患者的数据,并且可以指定在第一数据库中搜索在2013年12月19日至2013年1月1日之间检查的心电图中出现危险波形的患者的数据。此时的搜索请求可以如下所示:
Select id from VT_SearchResult,Patient where
patternlike('10,20...',0.1)and tstable='ECG_Data'and attribute="ECG"
and startts=’2013-12-19’and endts=’2014-01-01’and
VT_SearchResult.id=Patient.id and
Patient.gender='male'and Patient.age>60
步骤S904,采用根据本发明所述的方法,利用所述第一搜索请求在所述第一数据库中进行搜索,以及利用所述第二搜索请求在所述第二数据库中进行搜索。具体地,可以从第一搜索请求和第二搜索请求中分别提取用于在第一数据库中进行搜索的第一条件、以及在第二数据库中进行搜索的第二条件,以便分别在第一数据库和第二数据库中进行搜索。
具体地,第一条件是指在第一数据库中搜索的条件,在上文所示的示例中的第一条件是“在心电图数据中出现危险波形的患者”。因而,可以通过使用如下的第一条件来在存储患者心电图的第一数据库中找到相应的患者:patternlike('10,20...',0.1)andtstable='ECG_Data'and attribute="ECG"。
在此实施方式中,patternlike('10,20...',0.1)可以是用于在时间序列数据库中搜索包括目标子序列'10,20...'的函数。在此函数中,本领域技术人员可以自定义目标子序列与搜索结果之间的差异边界,例如,可以将差异边界定义为0.1,或者基于对搜索精度的要求,还可以将差异边界定义为更高或者更低的数值。
应当注意,上文中的搜索函数patternlike()仅仅是用于在时间序列数据库中进行相似性搜索的函数的一个示例。本领域技术人员可以采用现有的或者将在未来开发的各种相似性搜索技术来进行搜索,或者还可以基于具体应用环境的要求来自定义其他的相似性搜索函数。在上文的示例中,第一条件的具体含义是,使用相似性搜索函数patternlike(),在时间序列数据库中的数据表“ECG_Data”中的字段“ECG”所记载的时间序列中,找到类似于目标子序列的相似子序列。
在此实施方式中,第二条件是指在第二数据库中搜索的条件,在上文所示的示例中的第二条件是“男性患者”。因而可以通过使用条件“Patient.gender='male'”,在存储患者基本信息的第二数据库中找到全部男性患者。
上文已经参见图5详细描述了在时间序列数据库(即,第一数据库)中进行搜索的详细步骤,在此不再赘述。另外,本领域技术人员应当理解,由于第二数据库是传统的关系数据库,因而在此实施方式中可以采用现在已知或者将在未来开发的各种搜索算法来在第二数据库中进行搜索,在下文中将不再赘述。
在步骤S906中,基于来自第一数据库的第一搜索结果和来自第二数据库的第二搜索结果,生成搜索结果以响应于搜索请求。第一搜索结果和第二搜索结果分别满足搜索请求中的不同的搜索条件,因而可以基于第一搜索结果和第二搜索结果来获得最终的搜索结果(例如,可以求取第一搜索结果和第二搜索结果的交集)。
继续上文的示例,第一搜索结果中包括在心电图数据中出现危险波形的患者的数据,而第二搜索结果中包括男性患者的数据,因而两个搜索结果的交集即为在心电图数据中出现危险波形的男性患者的数据。
在本发明的一个实施方式中,其中基于来自第一数据库的第一搜索结果和来自第二数据库的第二搜索结果,生成搜索结果以响应于搜索请求包括:连接第一搜索结果和第二搜索结果以生成搜索结果。
在此的连接操即数据库中的连接操作,以此方式可以获得第一搜索结果和第二搜索结果的交集,并将该交集作为最终的搜索结果。例如,在上文所示的搜索语句中,“VT_SearchResult.id=Patient.id”将第一搜索结果VT_SearchResult(来自时间序列数据库中的数据表ECG_Data中的、在心电图数据中出现危险波形的患者的记录)与第二搜索结果(来自关系数据库中的数据表Patient中的男性患者的记录)连接,以获得最终的搜索结果(即,在心电图数据中出现危险波形的男性患者的id)。
在本发明的一个实施方式中,搜索请求是来自客户端的请求,以及搜索结果是由数据库系统生成的。采用本发明的技术方案,可以在数据库系统中实现跨越不同类型的数据库的查询操作,用户不必如现有技术方案那样执行复杂的人工操作,而是可以仅向数据库系统提供符合格式定义的搜索请求,即可从数据库系统中获取满足该搜索请求的搜索结果。
前面已经参考附图描述了实现本发明的方法的各个实施方式。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的一种设备。即使该设备在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该设备表现出区别于通用处理设备的特性,从而形成本发明的各个实施方式的设备。本发明中设备包括若干装置或模块,装置或模块被配置为执行相应步骤。本领域的所述技术人员通过阅读本说明书可以理解如何编写程序实现所述装置或模块执行的动作。由于所述设备与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对应的装置或模块,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再进行赘述。
图10A示意性示出了根据本发明一个实施方式的用于在数据库中进行搜索的装置的框图1000A。具体地,提供了一种用于在数据库中进行搜索的装置,包括:提取模块1010A,配置用于响应于接收到针对数据库进行搜索的搜索请求,从搜索请求中提取在数据库中进行搜索的条件;选择模块1020A,配置用于针对所述数据库执行的历史搜索的历史统计数据,从注册到所述数据库的多个搜索算法中选择匹配于所述条件的搜索算法;以及获得模块1030A,配置用于利用搜索算法从数据库获得搜索结果,其中数据库是时间序列数据库。
在本发明的一个实施方式中,历史统计数据关联于使用多个搜索算法中的各个搜索算法在数据库中进行搜索的相应效率。
在本发明的一个实施方式中,历史统计数据进一步关联于基于各个搜索算法在数据库中的表中进行搜索的效率。
在本发明的一个实施方式中,效率包括时间开销,时间开销描述返回搜索结果中的子序列中的时间点的时间开销;以及选择模块包括:第一选择模块,配置用于选择时间开销最低的搜索算法作为当前搜索算法。
在本发明的一个实施方式中,效率包括剪枝度,剪枝度描述搜索结果中的子序列的数量与基于当前搜索算法从数据库中返回的候选子序列的数量的比值;以及选择模块包括:第二选择模块,配置用于选择剪枝度最高的搜索算法作为当前搜索算法。
在本发明的一个实施方式中,进一步包括:更新模块,配置用于基于利用搜索算法从数据库获得搜索结果期间采集的统计信息,更新历史统计数据。
图10B示意性示出了根据本发明一个实施方式的在数据库系统中进行搜索的装置的框图1000B。具体地,提供了一种用于在数据库系统中进行搜索的装置,数据库系统包括第一数据库和第二数据库,第一数据库是时间序列数据库以及第二数据库是关系数据库,装置包括:提取模块1010B,配置用于响应于接收到搜索请求,从所述搜索请求中提取用于在所述第一数据库中进行搜索的第一搜索请求和用于在所述第二数据库中进行搜索的第二搜索请求;搜索模块1020B,配置用于采用根据本发明所述的装置,利用所述第一搜索请求在所述第一数据库中进行搜索,以及利用所述第二搜索请求在所述第二数据库中进行搜索;以及生成模块1030B,配置用于基于来自第一数据库的第一搜索结果和来自第二数据库的第二搜索结果,生成搜索结果以响应于搜索请求。
在本发明的一个实施方式中,生成模块1020B包括:连接模块,配置用于连接第一搜索结果和第二搜索结果以生成搜索结果。
在本发明的一个实施方式中,搜索请求是来自客户端的请求,以及生成模块位于数据库系统处。
采用本发明所述的方法和装置,当需要在包括多种类型的数据库的数据库系统中进行搜索时,用户不必关心数据库系统内部的各种类型的数据库之间的交互细节,而是仅通过向数据库系统提交搜索请求,即可从数据库系统获得搜索结果。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施方式中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
Claims (18)
1.一种用于在数据库中进行搜索的方法,包括:
响应于接收到针对数据库进行搜索的搜索请求,从所述搜索请求中提取在所述数据库中进行搜索的条件;
基于针对所述数据库执行的历史搜索的历史统计数据,从注册到所述数据库的多个搜索算法中选择匹配于所述条件的当前搜索算法;以及
利用所述搜索算法从所述数据库获得搜索结果,
其中所述数据库是时间序列数据库。
2.根据权利要求1所述的方法,其中所述历史统计数据关联于使用所述多个搜索算法中的各个搜索算法在所述数据库中进行搜索的相应效率。
3.根据权利要求2所述的方法,其中所述历史统计数据进一步关联于基于所述各个搜索算法在所述数据库中的表中进行搜索的效率。
4.根据权利要求2或3所述的方法,其中所述效率包括时间开销,所述时间开销描述返回所述搜索结果中的子序列中的时间点的时间开销;以及
基于针对所述数据库进行的历史搜索的所述历史统计数据,从注册到所述数据库的所述多个搜索算法中选择匹配于所述条件的所述当前搜索算法包括:选择时间开销最低的搜索算法作为所述当前搜索算法。
5.根据权利要求2或3所述的方法,其中所述效率包括剪枝度,所述剪枝度描述所述搜索结果中的子序列的数量与基于所述当前搜索算法从所述数据库中返回的候选子序列的数量的比值;以及
基于针对所述数据库进行的历史搜索的所述历史统计数据,从注册到所述数据库的所述多个搜索算法中选择匹配于所述条件的所述当前搜索算法包括:选择剪枝度最高的搜索算法作为所述当前搜索算法。
6.根据权利要求2或3所述的方法,进一步包括:基于利用所述搜索算法从所述数据库获得所述搜索结果期间采集的统计信息,更新所述历史统计数据。
7.一种用于在数据库系统中进行搜索的方法,所述数据库系统包括第一数据库和第二数据库,所述第一数据库是时间序列数据库以及所述第二数据库是关系数据库,所述方法包括:
响应于接收到搜索请求,从所述搜索请求中提取用于在所述第一数据库中进行搜索的第一搜索请求和用于在所述第二数据库中进行搜索的第二搜索请求;
采用根据权利要求1-6中的任一项所述的方法,利用所述第一搜索请求在所述第一数据库中进行搜索,以及利用所述第二搜索请求在所述第二数据库中进行搜索;以及
基于来自所述第一数据库的第一搜索结果和来自所述第二数据库的第二搜索结果,生成搜索结果以响应于所述搜索请求。
8.根据权利要求7所述的方法,其中所述基于来自所述第一数据库的第一搜索结果和来自所述第二数据库的第二搜索结果,生成搜索结果以响应于所述搜索请求包括:
连接所述第一搜索结果和所述第二搜索结果以生成所述搜索结果。
9.根据权利要求7或8所述的方法,其中所述搜索请求是来自客户端的请求,以及所述搜索结果是由所述数据库系统生成的。
10.一种用于在数据库中进行搜索的装置,包括:
提取模块,配置用于响应于接收到针对数据库进行搜索的搜索请求,从所述搜索请求中提取在所述数据库中进行搜索的条件;
选择模块,配置用于基于针对所述数据库执行的历史搜索的历史统计数据,从注册到所述数据库的多个搜索算法中选择匹配于所述条件的当前搜索算法;以及
获得模块,配置用于利用所述搜索算法从所述数据库获得搜索结果,
其中所述数据库是时间序列数据库。
11.根据权利要求10所述的装置,其中所述历史统计数据关联于使用所述多个搜索算法中的各个搜索算法在所述数据库中进行搜索的相应效率。
12.根据权利要求11所述的装置,其中所述历史统计数据进一步关联于基于所述各个搜索算法在所述数据库中的表中进行搜索的效率。
13.根据权利要求11或12所述的装置,其中所述效率包括时间开销,所述时间开销描述返回所述搜索结果中的子序列中的时间点的时间开销;以及
所述选择模块包括:第一选择模块,配置用于选择时间开销最低的搜索算法作为所述当前搜索算法。
14.根据权利要求11或12所述的装置,其中所述效率包括剪枝度,所述剪枝度描述所述搜索结果中的子序列的数量与基于所述当前搜索算法从所述数据库中返回的候选子序列的数量的比值;以及
所述选择模块包括:第二选择模块,配置用于选择剪枝度最高的搜索算法作为所述当前搜索算法。
15.根据权利要求10或11所述的装置,进一步包括:更新模块,配置用于基于利用所述搜索算法从所述数据库获得所述搜索结果期间采集的统计信息,更新所述历史统计数据。
16.一种用于在数据库系统中进行搜索的装置,所述数据库系统包括第一数据库和第二数据库,所述第一数据库是时间序列数据库以及所述第二数据库是关系数据库,所述装置包括:
提取模块,配置用于响应于接收到搜索请求,从所述搜索请求中提取用于在所述第一数据库中进行搜索的第一搜索请求和用于在所述第二数据库中进行搜索的第二搜索请求;
搜索模块,配置用于采用根据权利要求10-15中的任一项所述的装置,利用所述第一搜索请求在所述第一数据库中进行搜索,以及利用所述第二搜索请求在所述第二数据库中进行搜索;以及
生成模块,配置用于基于来自所述第一数据库的第一搜索结果和来自所述第二数据库的第二搜索结果,生成搜索结果以响应于所述搜索请求。
17.根据权利要求16所述的装置,其中所述生成模块包括:
连接模块,配置用于连接所述第一搜索结果和所述第二搜索结果以生成所述搜索结果。
18.根据权利要求16或17所述的装置,其中所述搜索请求是来自客户端的请求,以及所述生成模块位于所述数据库系统处。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410714219.8A CN105653559B (zh) | 2014-11-28 | 2014-11-28 | 用于在数据库中进行搜索的方法和装置 |
US14/931,718 US10042888B2 (en) | 2014-11-28 | 2015-11-03 | Searching in a database |
JP2017526956A JP6594978B2 (ja) | 2014-11-28 | 2015-11-12 | データベース内を検索する方法および装置 |
PCT/IB2015/058733 WO2016083932A1 (en) | 2014-11-28 | 2015-11-12 | Searching in a database |
GB1708976.4A GB2547861A (en) | 2014-11-28 | 2015-11-12 | Searching in a database |
US16/005,552 US11093501B2 (en) | 2014-11-28 | 2018-06-11 | Searching in a database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410714219.8A CN105653559B (zh) | 2014-11-28 | 2014-11-28 | 用于在数据库中进行搜索的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653559A CN105653559A (zh) | 2016-06-08 |
CN105653559B true CN105653559B (zh) | 2019-05-10 |
Family
ID=56073694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410714219.8A Active CN105653559B (zh) | 2014-11-28 | 2014-11-28 | 用于在数据库中进行搜索的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10042888B2 (zh) |
JP (1) | JP6594978B2 (zh) |
CN (1) | CN105653559B (zh) |
GB (1) | GB2547861A (zh) |
WO (1) | WO2016083932A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9952894B1 (en) | 2014-01-27 | 2018-04-24 | Microstrategy Incorporated | Parallel query processing |
US11921715B2 (en) | 2014-01-27 | 2024-03-05 | Microstrategy Incorporated | Search integration |
US10255320B1 (en) | 2014-01-27 | 2019-04-09 | Microstrategy Incorporated | Search integration |
US10635669B1 (en) | 2014-01-27 | 2020-04-28 | Microstrategy Incorporated | Data engine integration and data refinement |
US11386085B2 (en) | 2014-01-27 | 2022-07-12 | Microstrategy Incorporated | Deriving metrics from queries |
CN105653559B (zh) | 2014-11-28 | 2019-05-10 | 国际商业机器公司 | 用于在数据库中进行搜索的方法和装置 |
US10846318B1 (en) | 2017-04-18 | 2020-11-24 | Microstrategy Incorporated | Natural language visualizations |
CN108170739A (zh) * | 2017-12-18 | 2018-06-15 | 深圳前海微众银行股份有限公司 | 问题匹配方法、终端和计算机可读存储介质 |
CN109033140B (zh) * | 2018-06-08 | 2020-05-29 | 北京百度网讯科技有限公司 | 一种确定搜索结果的方法、装置、设备和计算机存储介质 |
CN110751568B (zh) * | 2018-07-20 | 2024-04-30 | 武汉烽火众智智慧之星科技有限公司 | 一种人员关系亲密度分析方法及装置 |
US11195050B2 (en) | 2019-02-05 | 2021-12-07 | Microstrategy Incorporated | Machine learning to generate and evaluate visualizations |
CN112182293A (zh) * | 2019-07-02 | 2021-01-05 | 百度在线网络技术(北京)有限公司 | 视频提供方法、装置、电子设备及存储介质 |
US11281640B2 (en) * | 2019-07-02 | 2022-03-22 | Walmart Apollo, Llc | Systems and methods for interleaving search results |
CN110502692B (zh) * | 2019-07-10 | 2023-02-03 | 平安普惠企业管理有限公司 | 基于搜索引擎的信息检索方法、装置、设备和存储介质 |
CN110909266B (zh) * | 2019-11-25 | 2022-09-02 | 北京金山云网络技术有限公司 | 深度分页的方法、装置及服务器 |
US11614970B2 (en) | 2019-12-06 | 2023-03-28 | Microstrategy Incorporated | High-throughput parallel data transmission |
US11567965B2 (en) | 2020-01-23 | 2023-01-31 | Microstrategy Incorporated | Enhanced preparation and integration of data sets |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102006278A (zh) * | 2009-08-31 | 2011-04-06 | 索尼公司 | 信息处理设备和信息处理方法 |
WO2012073526A1 (ja) * | 2010-12-03 | 2012-06-07 | 株式会社日立製作所 | データ処理システム、及びデータ処理装置 |
CN102737124A (zh) * | 2012-06-15 | 2012-10-17 | 复旦大学 | 在时间序列数据库中查找给定时间序列的近似序列的方法 |
CN103838818A (zh) * | 2012-11-27 | 2014-06-04 | 株式会社日立制作所 | 时间序列数据库的设定自动生成方法、系统及监视服务器 |
CN103853752A (zh) * | 2012-11-30 | 2014-06-11 | 国际商业机器公司 | 管理时间序列数据库的方法和装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7031958B2 (en) | 2003-02-06 | 2006-04-18 | International Business Machines Corporation | Patterned based query optimization |
US8156116B2 (en) * | 2006-07-31 | 2012-04-10 | Ricoh Co., Ltd | Dynamic presentation of targeted information in a mixed media reality recognition system |
US20080301125A1 (en) | 2007-05-29 | 2008-12-04 | Bea Systems, Inc. | Event processing query language including an output clause |
US20090018994A1 (en) | 2007-07-12 | 2009-01-15 | Honeywell International, Inc. | Time series data complex query visualization |
US20100198830A1 (en) * | 2008-03-06 | 2010-08-05 | Nitrosecurity, Inc. | Dynamic data distribution aggregation |
US8190595B2 (en) | 2009-03-28 | 2012-05-29 | Microsoft Corporation | Flexible query hints in a relational database |
US8433701B2 (en) | 2009-11-19 | 2013-04-30 | 21Ct, Inc. | System and method for optimizing pattern query searches on a graph database |
WO2011142026A1 (ja) * | 2010-05-14 | 2011-11-17 | 株式会社日立製作所 | 時系列データ管理装置、システム、方法、およびプログラム |
JP2013061733A (ja) | 2011-09-12 | 2013-04-04 | Hiroshi Sugimura | 時系列データから興味深いパタンを発見する装置 |
US9081834B2 (en) | 2011-10-05 | 2015-07-14 | Cumulus Systems Incorporated | Process for gathering and special data structure for storing performance metric data |
US9672304B2 (en) * | 2013-10-24 | 2017-06-06 | Sap Se | Dynamic online energy forecasting |
US10235460B2 (en) * | 2014-09-30 | 2019-03-19 | Splunk Inc. | Sharing configuration information for searches in data intake and query systems |
CN105653559B (zh) | 2014-11-28 | 2019-05-10 | 国际商业机器公司 | 用于在数据库中进行搜索的方法和装置 |
-
2014
- 2014-11-28 CN CN201410714219.8A patent/CN105653559B/zh active Active
-
2015
- 2015-11-03 US US14/931,718 patent/US10042888B2/en active Active
- 2015-11-12 GB GB1708976.4A patent/GB2547861A/en not_active Withdrawn
- 2015-11-12 WO PCT/IB2015/058733 patent/WO2016083932A1/en active Application Filing
- 2015-11-12 JP JP2017526956A patent/JP6594978B2/ja active Active
-
2018
- 2018-06-11 US US16/005,552 patent/US11093501B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102006278A (zh) * | 2009-08-31 | 2011-04-06 | 索尼公司 | 信息处理设备和信息处理方法 |
WO2012073526A1 (ja) * | 2010-12-03 | 2012-06-07 | 株式会社日立製作所 | データ処理システム、及びデータ処理装置 |
CN102737124A (zh) * | 2012-06-15 | 2012-10-17 | 复旦大学 | 在时间序列数据库中查找给定时间序列的近似序列的方法 |
CN103838818A (zh) * | 2012-11-27 | 2014-06-04 | 株式会社日立制作所 | 时间序列数据库的设定自动生成方法、系统及监视服务器 |
CN103853752A (zh) * | 2012-11-30 | 2014-06-11 | 国际商业机器公司 | 管理时间序列数据库的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105653559A (zh) | 2016-06-08 |
GB201708976D0 (en) | 2017-07-19 |
WO2016083932A1 (en) | 2016-06-02 |
US20180293279A1 (en) | 2018-10-11 |
JP6594978B2 (ja) | 2019-10-23 |
US10042888B2 (en) | 2018-08-07 |
US20160154852A1 (en) | 2016-06-02 |
JP2017535882A (ja) | 2017-11-30 |
US11093501B2 (en) | 2021-08-17 |
GB2547861A (en) | 2017-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105653559B (zh) | 用于在数据库中进行搜索的方法和装置 | |
CN106020940B (zh) | 用于确定数据集的放置的存储层级的方法和系统 | |
US20200050968A1 (en) | Interactive interfaces for machine learning model evaluations | |
CN104796270B (zh) | 在云应用的问题诊断中推荐可疑组件的方法及装置 | |
US11176128B2 (en) | Multiple access path selection by machine learning | |
WO2019015631A1 (zh) | 生成机器学习样本的组合特征的方法及系统 | |
CN110088749A (zh) | 自动本体生成 | |
US11055359B2 (en) | Hierarchical objects linkage data visualization | |
Sui et al. | Goal-directed robot manipulation through axiomatic scene estimation | |
Alsaig et al. | A critical analysis of the V-model of big data | |
CN103562905B (zh) | 改进的数据可视化配置系统及方法 | |
CN110795567A (zh) | 一种知识图谱平台 | |
JP2023523391A (ja) | アプリケーションの多目的最適化 | |
US20180293295A1 (en) | Detection and creation of appropriate row concept during automated model generation | |
US20200380024A1 (en) | Digital Duplicate | |
CN108776678A (zh) | 基于移动端NoSQL数据库的索引创建方法及装置 | |
US20230100996A1 (en) | Data analysis and rule generation for providing a recommendation | |
US9324056B2 (en) | Model entity network for analyzing a real entity network | |
US20200265025A1 (en) | Methods and systems for mapping flattened structure to relationship preserving hierarchical structure | |
US11841977B2 (en) | Training anonymized machine learning models via generalized data generated using received trained machine learning models | |
US11237951B1 (en) | Generating test data for application performance | |
US10521455B2 (en) | System and method for a neural metadata framework | |
Mohamadina et al. | Business intelligence: concepts, issues and current systems | |
CN112015912B (zh) | 一种基于知识图谱的指标智能可视化方法及装置 | |
JP2022168859A (ja) | コンピュータ実装方法、コンピュータプログラム、及びシステム(予測クエリ処理) |
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 |