CN104714997B - 提取装置、数据处理系统和提取方法 - Google Patents

提取装置、数据处理系统和提取方法 Download PDF

Info

Publication number
CN104714997B
CN104714997B CN201410662870.5A CN201410662870A CN104714997B CN 104714997 B CN104714997 B CN 104714997B CN 201410662870 A CN201410662870 A CN 201410662870A CN 104714997 B CN104714997 B CN 104714997B
Authority
CN
China
Prior art keywords
node
data
incrementss
memory
subquery
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
Application number
CN201410662870.5A
Other languages
English (en)
Other versions
CN104714997A (zh
Inventor
今井晴基
古关聪
高濑俊郎
小松秀昭
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104714997A publication Critical patent/CN104714997A/zh
Application granted granted Critical
Publication of CN104714997B publication Critical patent/CN104714997B/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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

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

Abstract

提供提取装置、数据处理系统和提取方法。提取装置从包括作为子查询将发往数据库管理系统的指令的查询中,提取作为转换对象将被转换为对连续输入数据库的流数据处理的程序的子查询,包括:输入单元,接收查询、最大存储器增加量、和作为每单位存储器增加量的处理时间的效率下限值的输入,与数据库管理系统执行查询的情况相比当流数据由程序处理时处理时间减少;操作单元,计算在处理流数据情况下的存储器增加量和针对每个子查询将减少的处理时间,并使用它们计算效率;和提取单元,选择效率等于或高于下限值的子查询,合计针对所选子查询计算的存储器增加量,并且如果合计的存储器增加量等于或小于最大存储器增加量,将所选子查询提取为转换对象。

Description

提取装置、数据处理系统和提取方法
技术领域
本发明涉及一种用于执行查询并处理流数据和存储在数据库中的数据的数据处理系统、一种用在数据处理系统中用于从查询中提取将要转换为对流数据进行处理的程序的转换对象的提取装置、一种用于提取转换对象的方法、以及一种用于使计算机执行该方法的提取程序。
背景技术
随着诸如IC标签、IC卡等的传感器、诸如在线购物和在线游戏等在线服务、装载有GPS(全球定位系统)的蜂窝电话和智能电话、以及连接至网络的汽车导航系统的广泛使用,这些传感器等不断生成大量的数据。称为流数据的大量数据在网络上流动并存储在数据库中用于分析等目的。
通过向管理数据库的数据库管理系统(DBMS)发出查询并在DBMS中执行查询,来从数据库获得所需的数据。该查询可使DBMS执行除获取数据之外的处理,诸如数据的更新、添加和删除。
近年来,由于全球变暖等影响,风速和雨量瞬息万变,并且,有时仅几分钟的延迟疏散都会引起灾难。为了识别这类突变并实现快速疏散,需要能够实时获取气流数据和降雨数据的高速查询。
数据库中存储了大量的数据,并且,搜索并获取所需数据需要一定时间。虽然这取决于机器的数据量和吞吐量,但是,也可能要花上几分钟到几小时的时间。这使得不可能应付要求实时获取数据的情况。
因此,已经提出了在流数据存储到数据库中之前对将要输入数据库的流数据进行处理的技术(例如,见专利文献1至4)。根据这些技术,由于对流数据进行了搜索等处理,因此,可实时获取数据。
[引用列表]
[专利文献]
[专利文献1]JP2006-338432A
[专利文献2]JP2010-108073A
[专利文献3]JP2010-217968A
[专利文献4]JP2011-059967A
发明内容
[技术问题]
在处理流数据的情况下,要求注册查询并且连续地对连续输入的流数据执行查询。为此,描述用于流数据的指令的查询利用例如SPL(流处理语言)等流数据处理语言进行说明。通过编译这类查询被转换为用于处理流数据的程序,称为流数据处理代码,并且通过执行该代码来执行该处理。
另一方面,在处理存储在数据库中的数据的情况下,如上所述的,由于难以用相同的流数据处理语言描述例如对由数据库持有的多个表进行搜索的多个查询,所以,利用例如SQL等数据库查询语言。
已经需要使用不同语言所描述的查询以用于处理流数据和存储在数据库中的数据。由此,在现有技术中,还无法通过使用一个查询对流数据和存储在数据库中的数据进行高效处理。
在处理流数据的情况下,流数据曾被存储在存储器中,然后所存储的数据经受处理。流数据需要被存储在存储器中。然而,当流数据为大量数据时,由存储数据而导致的存储器不足可使系统瘫痪。
此外,为了实现强实时性,需要使用具有严格存储器限制的设备,诸如客户端计算机和边缘服务器;由此,易于发生存储器不足和系统瘫痪。
因此,已经需要提供一种能够防止发生存储器不足并且能够通过一个查询对流数据和存储在数据库中的数据两者都进行高效处理的装置和方法。
[解决方案]
针对这些问题,本发明提供了一种提取装置,用于从查询中提取作为转换对象将要被转换为对连续地输入数据库的流数据进行处理的程序的子查询,所述查询包括作为子查询将要发往用于管理数据库的数据库管理系统的一个或多个指令,所述提取装置包括:输入单元,其用于接收查询、使用量随着对流数据的处理而增加的存储器的最大存储增加量、以及作为每单位存储增加量的处理时间的效率的下限值的输入,与数据库管理系统执行查询的情况相比,当流数据由程序处理时处理时间减少了;操作单元,其用于计算当包括在查询中的每个子查询被转换为程序并且于是处理流数据时的至少一个存储增加量,以及与由数据库管理系统执行的情况相比当流数据被处理时将要减少的处理时间,以及通过使用至少一个计算得到的存储增加量和将要减少的处理时间来计算效率;以及提取单元,其用于选择至少一个效率等于或高于下限值的子查询,对针对所选的子查询计算得到的存储增加量进行合计,并且,在合计得到的存储增加量等于或小于最大存储增加量的情况下,将所选的子查询提取作为转换对象。
[本发明的有利影响]
本发明使得有可能防止发生存储器不足并且通过使用一个查询对流数据和存储在数据库中的数据执行处理。
附图说明
图1是本发明实施例的数据处理系统的整体配置图;
图2是图示了在图1中图示的数据处理系统中提供的客户端和前端服务器的硬件配置的示意图;
图3是用于描述由图1中图示的数据处理系统执行的处理的示意图;
图4是图示了将SQL图分为两个节点组的状态的示意图;
图5是图示了计算SQL图的每个路径的效率的状态的示意图;
图6是图示了在SQL图中提取转换对象节点的状态的示意图;
图7是用作提取装置的客户端的功能性框图;
图8是图示了SPL模板的示意图;
图9是图示了由提取装置执行的处理的流程的流程图;
图10是图示了写入SQL的查询的示意图;
图11是图示了包括在写入SQL的查询中的作为节点的子查询的示意图;
图12是图示了用于执行流水线处理的子查询的示例说明和用于执行非流水线处理的子查询的示例描述的示意图;
图13是图示了对最后的“内部联结”部分进行非流水线处理的示例的示意图;以及
图14是图示了由流水线处理和非流水线处理生成的表的示例和转换为引用表的SQL的示例的示意图。
具体实施方式
在下文中将依据在附图中图示的具体实施例对本发明进行描述,但是,本发明不限于稍后所描述的实施例。图1是本发明实施例的数据处理系统的整体配置图。数据处理系统包括IOT(物联网)装置10、分组通信网络11、客户端计算机(以下简称客户端)12、前端服务器13和后端服务器14。虽然在图1中图示了每个单独的设备一个,但是,数据处理系统可包括两个或两个以上的单独的设备。
分组通信网络11是用于发送和接收数据被划分为的分组的通信网络,并且包括互联网。IOT装置10是可连接至互联网的装置,其用于生成数据并将数据发送至互联网。IOT装置10的示例包括:车辆、保健装置和各种类型的安装在工厂、学校等中的传感器。在IOT装置10和分组通信网络11之间的通信由诸如Wi-Fi等无线电通信经由图中未图示的接入点进行。
保健装置的示例包括:例如,量表、身体成分测量仪、计步器、活度计、基础体温计和血压计。这些装置包括用于执行测量以生成测量数据并将数据发送至互联网的传感器。
车辆包括用于测量位置的GPS、车辆速度传感器、各种类型的用于燃油压力等的压力传感器以及各种类型的用于室温、室外空气温度等的温度传感器,以发送由每个传感器所检测到的和生成的测量数据。保健装置对体重、步数、体温、血压等进行测量,并发送生成的测量数据。各种类型的安装在工厂等中的传感器的示例包括:例如,加载在安装于设备或装置上以对其进行测量的体温计、流量计、压力计、光密度计等上的传感器。
客户端12为用户使用的PC等,客户端12接收将要在用作第一处理器的前端服务器13和用作第二处理器的后端服务器14中执行的查询的输入和各种类型的参数,并执行查询的编译等。稍后将详细描述查询、参数和编译。注意,查询是对以诸如SQL等数据库描述语言提供在后端服务器14中的数据库的询问的说明。
前端服务器13接收流数据(诸如,由IOT装置10向分组通信网络11传输的大量测量数据)的输入,处理流数据并向后端服务器14输出结果。前端服务器13接收由客户端12通过对查询的编译而生成的称为流数据处理代码的程序,执行流数据处理代码,并对输入的流数据进行规定的处理。由此,可执行对查询的一部分或所有的处理。
后端服务器14通过前端服务器13接收处理结果,并且,当查询中还有待执行的处理时,执行该处理,将结果存储在数据库中,并且还将结果返回至客户端12。此外,后端服务器14执行将流数据存储在数据库中的处理。因此,后端服务器14包括用于管理数据库并对数据库执行处理的数据库管理系统(DBMS)。
数据库被构建在后端服务器14中,由此,后端服务器14可用作数据库服务器。然而,本发明不限于此,并且,数据库可安装至可从后端服务器14访问到的外部。此外,针对数据库,可使用采用了通过树形结构指示数据的分层数据模型的数据库或用于通过逻辑操作等进行询问的关系数据库。当使用关系数据库时,针对管理数据的DBMS,可使用关系数据库管理系统(RDBMS)。因为关系数据库和RDBMS是已知的,所以,在本文中不对它们进行详细描述。在下文中,将在假设将使用RDBMS的情况下给出描述。
在本文中,将参考图2,对各个设备的硬件配置进行简要描述。虽然图中未示出,但是,IOT装置10分别包括:当输出温度数据时的具有热敏电阻器等的温度计;当输出速度数据时的速度计;以及当输出压力数据时的压力计。针对速度计和压力计,使用速度传感器和压力传感器。IOT装置10还包括:诸如,用于将测量数据发送至互联网的发射机的通信装置。
客户端12包括:经由主机控制器20互连的CPU 12、RAM 22、图形控制器23和显示装置24,以及经由输入/输出控制器25连接至主机控制器20的通信接口26、硬盘驱动器(HDD)27和CD/DVD驱动器28。此外,客户端12还包括:连接至输入/输出控制器25的ROM 29和具有输入/输出芯片30的传统输入/输出装置。
主机控制器20连接RAM 22以及以高传输速率访问RAM 22的CPU21和图形控制器23。CPU 21执行存储在ROM 29或HDD 27中的引导程序、OS和提取程序等。CPU 21可为能够进行并行处理的多处理器。
图形控制器23通过CPU 21获取在设置在输入/输出控制器25中的帧缓冲器上生成的图像数据,并将该图像数据显示在显示装置24上。图形控制器23中可包括帧缓冲器。
输入/输出控制器25连接作为相对高速的输入/输出装置的主机控制器20、通信接口26、HDD 27和CD/DVD驱动器28。通信接口26经由网络与其他装置通信。HDD 27存储OS、提取程序、应用程序和各种类型的数据等。当在CD-ROM或DVD上记录提取程序和各种类型的数据等时,CD/DVD驱动器28读取它们并经由RAM 22将它们提供给输入/输出芯片30。
ROM 29和诸如输入/输出芯片30等相对低速的输入/输出装置连接至输入/输出控制器25。ROM 29存储,例如,用于从HDD 27加载并激活OS的引导程序,以及具有记录在其上的计算机和设备等初始化信息的固件。输入/输出芯片30经由并行端口、串行端口、键盘端口、鼠标端口等连接每个单元的输入/输出装置。
前端服务器13和后端服务器14具有相同的硬件配置,并且它们均可使用刀片服务器。因此,仅对前端服务器13进行描述。前端服务器13包括:具有CPU 31、存储器32、HDD 33和通信接口34的一个或多个服务器刀片35以及用于容纳该一个或多个服务器刀片35的外壳。外壳包括各种类型的模块36,诸如:用于监测独立服务器刀片35的操作并且在检测到异常时切换至其他服务器刀片的管理模块;用于分配服务器刀片35通信所需的LAN适配器等的I/O模块;电源模块;以及,具有用于互连服务器刀片35和各种类型的模块36的连接器的背板37。
前端服务器13能够通过将附加服务器刀片连接至设置在背板37中的连接器,来增加服务器的数量并提高吞吐量。当将后端服务器14用作数据库服务器时,可将设置在后端服务器14的每个服务器刀片中的HDD用于数据库。注意,前端服务器13和后端服务器14均不限于刀片服务器,并且可使用其他机架安装型服务器和塔型服务器等。
参考图3,将详细描述由数据处理系统执行的处理。连续从图中未示出的IOT装置发送流数据,并且,响应于来自用户的输入,客户端12接收指示为输入SQL 40的查询以及与输入SQL 40对应的用户定义输入参数41。在本文中,四个输入SQL 40被输入以及与它们对应的四个用户定义输入参数41被输入。
输入SQL 40包括作为子查询的以SQL写的一个或多个指令。子查询描述了对数据的处理或操作。操作的示例包括:例如,当将与各个装置相关联的温度数据作为流数据输入时仅提取温度指示为300℃或更高的装置的操作。在这种情况下,温度可为一小时平均300℃或更高。由于此为一个示例,所以,子查询的操作不限于此。
例如,可设置以下三个参数作为用户定义输入参数41。第一参数是称为数据存储时间段的参数,并且指定了用于将流数据存储在存储器中的数据的时间段。由于流数据作为分组被连续输入,所以,为了执行处理,需要通过时间段或分组数量来将流数据分段并执行处理。在本文中,时间段作为参数被输入。
针对时间段,例如,可指定时间为诸如1分钟或10分钟。当指定10分钟作为时间段时,在流数据被输入并存储10分钟之后,对在10分钟内的数据进行处理。由于将要同时存储在存储器中的数据量随着指定时间的变长而增加,所以,指定适当的时间。代替该参数,可输入用于指定分组的数量的参数。
第二参数是称为最大存储器增加量的参数。当执行处理时,数据被一次存储在存储器中,然后存储的数据经受处理。该参数指定通过存储数据将要增加的存储器增加量的最大值(上限值)。
第三参数是称为效率下限值的参数。输入SQL 40包括一个或多个子查询。在数据处理系统中,客户端12编译输入SQL 40,从包括在输入SQL40中的一个或多个子查询提取用于处理流数据的子查询,仅转换所提取的子查询以生成流数据处理代码。
在提取时,为了确定将要提取的子查询,计算当在不转换任何子查询的情况下在RDBMS中执行输入SQL 40的处理时间和当生成流数据处理代码并对每个子查询执行处理的处理时间,将两者进行比较,并计算将要减少的处理时间。当通过流数据处理代码执行处理时,由于数据存储在存储器中并且所存储的数据经受了处理,所以,存储器的使用量增加了。因此,还要计算由于存储操作导致的增加的存储器量,即存储器增加量。将要减少的处理时间除以存储器增加量,以计算每单位存储器增加量将要减少的处理时间,并其被定义为效率。因此,效率变为指示将要减少的处理时间的多少和将要执行的处理如何高效的指标。第三参数指定按照这种方式计算得到的效率的下限值。
在图3中,执行编译的编译器42解析输入SQL 40并生成表示为树形结构的图,在树形结构中,每个子查询为每个节点。在树形结构中,将流数据被输入的侧定义为根节点,并且,将在末端处的节点定义为叶节点。根节点不具有与其连接的母节点,而叶节点不具有与其连接的子节点。编译器42基于解析结果确定每个节点是否能够进行流水线处理,将能够进行流水线处理的节点定义为流水线处理节点(P节点),以及,将不能够进行流水线处理的节点定义为非流水线处理节点(NP节点)。
P节点是这样的节点,在该节点中处理数据的条件是固定的,并且该节点能够立即处理所输入的数据并向之后的子节点输出处理结果。P节点能够处理例如在流数据中流的每个分组,从而其具有存储器增加量小和减少处理时间的效果大的特性。
NP节点是包括计算平均值、总值或最大值等的聚合函数的节点,并且需要在固定时间段内将数据存储在存储器中。因此,存储器增加量大并且无减少处理时间的效果;然而,由于内存执行是可能的,所以,与在RDBMS中执行输入SQL 40的情况相比,可减少处理时间。内存(In-memory)是一种将所有将要利用的数据写入存储器并且在执行程序时不从数据库读取数据的技术。
图4中图示了将输入SQL 40表示为树形结构的示例。在独立节点之间,参考字符“P”表示P节点,而参考字符“NP”表示NP节点。在左下方描述的参考字符“m1”至“m17”表示当对节点进行诸如流水线处理或非流水线处理等流数据处理时的存储器增加量;以及,在右边的参考字符“e1”至“e17”表示与在RDBMS中执行输入SQL 40的情况相比,在对节点进行流数据处理时将要减少的处理时间。当在RDBMS中执行输入SQL 40时的处理时间并非当实际执行输入SQL 40时的处理时间,而是估计的处理时间,并且是通过计算推导的处理时间。
流数据A被输入根节点50和51,流数据B被输入根节点52和53,流数据C被输入根节点54,并且执行处理。例如,在根节点50中的处理结果和在根节点51中的处理结果被输出至作为其子节点的节点55并由节点55处理。然后,节点55中的处理结果顺序地被输出至下一节点并最终输出至在末端处的叶节点57,并且,在叶节点57中执行最后处理。在叶节点57中的处理结果变为输入SQL 40的处理结果,并被存储在后端服务器14中,还被发送至客户端12并被显示等。
为了高速执行处理,检测作为P节点的根节点,顺序地追踪单独的检测到的根节点,并将节点分类为仅由在到达在追踪路由(路径)中的NP节点之前的P节点形成的一个或多个P节点组,和由其他节点形成的一个或多个NP节点组。在图4中,在浅色区域中的仅由P节点形成的节点组为P节点组,而在深色区域中的由包括NP节点的其他节点形成的节点组为NP节点组。在图4中,图示了两个P节点组和一个NP节点组。在分类之后,计算存储器增加量和将要减少的处理时间。
存储器增加量M是对假设的为了供节点对流数据进行处理需要的数据进行存储所需的存储器量。计算当在RDBMS中执行处理时的处理时间tRDBMS和当进行流数据处理(其为流水线处理或非流水线处理)时的处理时间tstream,并且,可从差中导出将要减少的处理时间tred。具体地说,可通过以下表达式(1)来计算。
[表达式1]
tred=tRDBMS-tstream (1)
可基于流数据的数据率、对将经受处理的流数据进行处理的时间段(窗)、从过去执行查询的结果所得到的统计信息以及关于查询操作的信息,来计算存储器增加量M和将要减少的处理时间tred。稍后将对具体的计算方法进行描述。通过使用按照这种方法计算得到的存储器增加量M和将要减少的处理时间tred,通过以下表达式(2)计算每单位存储器增加量将要减少的处理时间,即效率Em(秒/字节)。
[表达式2]
因为在包括P节点的情况下,存储器增加量小,所以该效率Em趋向于为大值。即,处理可被高效地进行。针对存储器增加量M和效率Em,比较由用户输入的参数的最大存储器增加量Mmax和效率下限值Emin。增加存储器增加量M,直到合计值Mcom达到最大存储器增加量Mmax,执行将节点作为转换对象加入执行流水线处理或非流水线处理的流数据处理代码中的添加。此时,同时还要确认效率Em并非下限值Emin或更低值。
当效率Em变为下限值Emin或更低值时,意味着存储器增加量对于将要减少的短处理时间tred来说大,并且,即使执行了流水线处理或非流水线处理,效率也没有提高多少。因此,当效率变为下限值Emin或更低值时,不执行将节点添加为转换对象。针对未作为转换对象被提取的节点,不执行流水线处理或非流水线处理,并且在RDBMS中执行处理。
可通过顺序地选择节点,来评估是否执行将节点添加为转换对象。作为选择方法的一个示例,可以按照P节点组的宽度优先顺序选择节点。在本文中,宽度优先是一种优先地选择从根节点开始的相同层次中的节点的方法。首先,选择在P节点组中的一个根节点。可通过设置来预定首先将要选择的根节点的位置。评估根节点是否为转换对象,并且,对在相同层次的相邻根节点顺序地进行评估。当在相同层次无更多节点时,追踪在下一层次的子节点。针对较低层次的子节点,当在RDBMS中对母节点进行处理时,同样在RDBMS中对子节点进行处理。当结束对在P节点组中的所有节点的评估时,按照相同方式对另一P节点组执行评估。
当无另一P节点组或针对所有P节点组的评估结束时,如P节点组一样地对NP节点组进行评估,并提取转换对象。当确定在RDBMS中对根节点执行处理时,不对相同路径中的所有节点进行评估,并且,确定在RDBMS中对节点执行处理。作为转换对象添加的节点的存储器增加量M被随时添加到存储器增加量的合计值Mcom
参考图5,将给出详细说明。首先,选择在浅色区域中的P节点组中的一个P节点。在本文中,选择了由节点50、51、52、55和56组成的P节点组。该P节点组具有三个路径:从节点50到节点55的路径,从节点51到节点55的路径,以及从节点52到节点56的路径。
首先,选择节点50,并且,通过表达式(2)计算效率Em为e1/m1。将e1/m1与下限值Emin比较,并且,当e1/m1等于或大于下限值Emin,并且通过向直到那时的存储器增加量的合计值Mcom增加m1而得到的新合计值等于或小于最大存储器增加量Mmax时,将节点50添加为转换对象。然后,按照相同的方式评估节点51和节点52。如果作为节点55的母节点的节点50和节点51变为转换对象,则计算从节点50到节点55的路径的效率(e1+e5)/(m1+m5)和从节点51到节点55的路径的效率(e2+e5)/(m2+m5),将较大的效率定义为效率Em,按照相同的方式执行评估,并且,在满足条件时,将节点55添加为转换对象。如此,针对具有多个路径的节点,使用计算得到的效率Em的最大值执行评估。
由于节点55不具有作为P节点的子节点,所以,按照相同的方式对作为相邻根节点的节点52执行评估。这样,按照相同的方式对节点56和在另一P节点组中的节点54执行评估。
在此,虽然仅给出了P节点组的说明,但是,可按照相同的方式对在深色区域中的NP节点组执行评估。此外,在这种情况下,当确定针对根节点在RDBMS中执行处理时,不对相同路径中的所有节点进行评估,并且,在RDBMS中对所有节点执行处理。
即使当按照这类方式执行评估并且在图5中图示的所有P节点组的所有节点和NP节点组的某些节点被确定为转换对象,也会存在存储器增加量的合计值Mcom未达到最大存储器增加量Mmax的情况。为了高速执行处理,需要转换尽可能多的节点并执行流水线处理和非流水线处理。因此,不仅从根节点侧对P节点进行评估,还从相对的叶节点侧按照相同的方式对P节点进行评估,并且确定是否将每个P节点添加为转换对象。
图6是示意图,图示了从根节点侧评估P节点,将P节点添加为转换对象,然后因为未达到最大存储器增加量Mmax所以从叶节点侧评估P节点的状态。将两个P节点组中的所有P节点均添加为转换对象,并且,还将NP节点组中的某些节点(浅色节点)添加为转换对象。在评估中,针对叶节点57,由于确定对连接至叶节点57的两高阶节点都在RDBMS中执行处理,所以不执行评估,并且,确定在RDBMS中执行处理。
由于叶节点57为P节点并且存储器增加量的合计值Mcom尚未达到最大存储器增加量Mmax,所以,此外按照相同的方式从叶节点侧进行评估。在图6中,由于即使添加了为叶节点57计算的存储器增加量,合计值Mcom仍未达到最大存储器增加量Mmax,所以,将叶节点添加至转换对象,以及,针对其高阶NP节点(深色节点),由于Em等于或小于下限值Emin,因此确定不将这些节点添加至转换对象。针对保持在NP节点之间的P节点,由于确定了针对在根节点侧上和叶节点侧上连接至其的高阶节点的NP节点都在RDBMS中执行处理,因此不进行评估,并且确定以与高阶节点相同的情况在RDBMS中执行处理。
如此,通过还从叶节点侧进行评估和添加可向转换对象添加的节点,可在存储器中对于在RDBMS中的处理结果进行处理。通过将需要在RDBMS中进行的处理聚集在中心处并尽可能减少,可加速整体处理。
再次参考图3,通过编译器42转换被添加至转换对象的节点,并生成称为流数据处理代码的用于执行流水线处理的程序(流水线处理程序)和用于执行非流水线处理的程序(非流水线处理程序)43。针对连续输入的流数据,通过ETL处理程序44,执行例如过滤等的基本预处理,并且执行转换为例如在流水线处理程序和非流水线处理程序43中易于使用的形式的处理。此外,ETL处理程序44执行将所有流数据存储在第二数据库46中的处理。
流水线处理程序和非流水线处理程序43被配置为以例如在图4到图6中图示的P节点组的节点50和节点55的顺序执行处理,并通过周期写入或通过经由残余SQL 47的执行触发器的写入,来将处理结果存储在第一数据库45中。
针对输入SQL 40,由于一些子查询被转换为流数据处理代码,所以子查询被删除,并需要在RDBMS中执行的剩余子查询被生成,即残余SQL47。在RDBMS中执行残余SQL 47,生成用以开始流水线处理程序和非流水线处理程序43的触发器,并且接收向第一数据库45的写入结束的通知。接着,残余SQL 47从第一数据库45获取通过流水线处理程序和非流水线处理程序43的处理结果和存储在第二数据库46中的数据,并执行查询处理。由残余SQL 47得到的处理结果被呈现给用户或供外部应用利用。
客户端12用作提取转换对象的提取装置和执行至流水线处理程序和非流水线处理程序43的转换的转换装置。该功能可通过由CPU 21执行存储在HDD 27中的提取程序和转换程序来实现。在本文中,这些装置均包括在客户端12中,客户端12是一个设备,但是,客户端12也可配置为分开的设备。
如图7所图示的,客户端12包括:作为其功能性单元的用于接收输入的输入单元60,该输入为包括一个或多个子查询的输入SQL 40、使用量被流数据处理增加的存储器的最大存储器增加量Mmax、以及效率的下限值Emin。客户端12还包括操作单元61,其用于计算当执行流数据处理时的存储器增加量,以及针对每个子查询与在RDBMS中执行处理的情况相比的当执行流数据处理时将要减少的处理时间,并且通过使用至少一个计算得到的存储器增加量和将要减少的处理时间来计算效率。
客户端12进一步包括提取单元62,该提取单元62用于选择至少一个通过操作单元61计算得到的效率等于或高于由输入单元60所接收的效率的下限值Emin的子查询;当存在已经提取到的子查询时,将为所选的子查询计算得到的存储器增加量添加到为所有子查询计算和合计得到的存储器增加量;以及在添加之后的存储器增加量或当不存在已经提取到的子查询时计算得到的存储器增加量等于或小于最大存储器增加量Mmax,将所选的子查询提取为转换对象。
客户端12至少包括输入单元60、操作单元61和提取单元62,除了它们之外,还可进一步包括图形生成单元63,该图形生成单元63用于解析输出SQL 40并生成表示为指示节点之间的依赖性的树形结构的SQL图,在树形结构中,每个子查询为每个节点。此外,客户端12还可包括分类单元64,该分类单元64用于确定每个节点是否为能够基于解析结果处理输入的数据和输出处理结果的流水线处理的P节点,并且,参考该图,将节点分为一个或多个P节点组和一个或多个NP节点组,在P节点组中分层次地从根节点连接的节点仅由P节点形成,而一个或多个NP节点组由剩余的节点形成。
当选择子查询时,提取单元62可通过设置按照效率的降序来选择子查询。这是因为:通过按照顺序从具有较高效率的子查询来选择子查询,可更有效地执行处理。提取单元62能够基于在分类单元64中的分类结果,通过以效率的降序从效率等于或高于下限值的节点选择节点来提取转换对象,优先考虑分为P节点组的节点。
如果存储器增加量的合计值Mcom尚未达到最大存储器增加量Mmax,则分类单元64执行进一步的分类,分为分层次地从叶节点连接的节点仅由P点形成的一个或多个P节点组和由剩余的节点形成的NP节点组。针对分类到P节点组中的节点,提取单元62按照相同的方式执行评估。即,选择效率Em等于或高于下限值Emin的节点,增加为其计算得到的存储器增加量,确定是否达到最大存储器增加量Mmax,以及,当未达到时,将节点添加到转换对象。
通过以该方式提取转换对象,可以之后在转换装置中将它们转换为流水线处理程序或非流水线处理程序,生成从输入SQL排除转换对象部分的残余SQL,将它们发送至作为第一处理器的前端服务器13和作为第二处理器的后端服务器14,以及,通过使用针对流数据和存储在数据库中的数据的一个查询来执行处理。并且,通过提取转换对象和限制转换,可以防止发生由于由流水线处理和非流水线处理而增加的存储器所导致的存储器不足。
可通过预定SQL的子句(可由模板准备的子句)并找出SQL的预定节点,来提取转换对象。当输入除了转换对象之外的节点时,显示警告,并且可保持DB访问或可以显示错误。SQL的节点的示例包括:用于询问数据的“select”子句、“where”子句、“group by”子句、“order by”子句和“having”子句。此外,可使用与SQL的子句对应的模板来生成流数据处理代码。图8图示了SPL到“select A1,agg(A2)as agg_A2from B where C group by D1,D2having E”的SQL的模板作为模板示例。
下面将参考图9所图示的流程图简要描述由客户端12执行的处理。该处理始于步骤900,以及,在步骤910中,输出单元60接收来自用户的用户定义输入参数和输入SQL的输入。将它们发送至图形生成单元63,以及,在步骤920中,图形生成单元63解析输入SQL并生成表示为如图4所图示的指示在子查询之间的依赖性的树形结构的SQL图。
在步骤930中,分类单元64获得由图形生成单元63解析得到的每个子查询的处理类型;从处理类型确定每个子查询是P节点还是NP节点;以及,将每个子查询分为一个或多个P节点组和一个或多个NP节点组。分类单元64将分类结果传递给提取单元62。
在步骤940中,操作单元61针对每个子查询,计算当执行流数据处理时的存储器增加量以及与在RDBMS中执行处理的情况相比的将要减少的处理时间。接着,操作单元61根据计算得到的存储器增加量和将要减少的处理时间来计算效率。由操作单元61执行的该处理可在通过分类单元64分类之前执行或可与分类同时执行。
在步骤950中,提取单元62接收由操作单元61计算得到的存储器增加量M和效率Em、分类单元64的分类结果和图形;以及,选择至少一个效率Em等于或高于下限值Emin的子查询。当已经存在提取到的子查询时,提取单元62向为所有子查询计算和合计得到的存储器增加量增加为所选的子查询计算得到的存储器增加量M。接着,当在添加之后的存储器增加量的合计值Mcom等于或小于最大存储器增加量Mmax时,提取单元62将所选的子查询提取为转换对象。
在步骤960中,确定存储器增加量的合计值Mcom是否达到最大存储器增加量Mmax。例如,当达到最大存储器增加量Mmax的剩余量等于或小于固定量时,可以确定达到了最大存储器增加量Mmax;以及,当剩余量超出固定量时,确定未达到最大存储器增加量Mmax。当确定达到最大存储器增加量Mmax时,该处理前进至步骤980以结束该处理。
相反,当确定未达到最大存储器增加量Mmax时,前进至步骤970,提取单元62从叶节点侧选择至少一个效率Em等于或高于下限值Emin的子查询。接着,提取单元62向存储器增加量的合计值Mcom增加为所选的子查询计算得到的存储器增加量,以及,当其等于或小于最大存储器增加量Mmax时,将所选的子查询提取为转换对象。当结束从叶节点侧进行的评估时,该处理前进至步骤980以结束该处理。
在下文中,将使用具体示例详细描述分类方法、计算存储器增加量和将要减少的处理时间的方法、在提取之后待生成的流水线处理程序和残余SQL等。图10是图示了输入SQL 40的一个示例的示意图。SQL是用于使得实时优惠券发行处理被执行的查询。
考虑向长时间驾驶未休息片刻、陷入交通堵塞和常常光顾便利店的驾驶者发放便利店的优惠券。输入SQL 40是用于提取相关车辆的查询。在输入SQL 40中,“car_all_table”是由车辆发送的流数据。流数据是由每个车辆以每秒100m的速度发送的数据,并且包括用于识别车辆的车辆ID、用于识别车辆当前位置的位置ID和各种类型的从控制车辆的引擎的引擎控制单元(ECU)输出的ECU数据等。各种类型的ECU数据的示例可包括一分钟平均速度和引擎的运行时间。
“conv_fav_car_table”是关于从作为过去行为历史积累在数据库中的流数据中获得的常常光顾便利店的车辆的车辆信息列表。“SLOW_LONG_OP_CARS”是低速行驶的并且具有长引擎运行时间的车辆的车辆ID列表。可基于是否超出任意阈值来确定运行时间是否长。“CONV_STORE_FAV_CAR”是常常光顾便利店的车辆的车辆ID列表。
当解析了输入SQL 40时,输入作为流数据的car_all_table,并且得到用于执行从流数据提取低速行驶的并且具有长引擎运行时间的车辆的车辆ID列表的处理的SLOW_LONG_OP_CARS,作为节点70。此外,输入作为累积的流数据的conv_fav_car_table,并且,得到用于执行提取常常光顾便利店的车辆的车辆ID列表的处理的CONV_STORE_FAV_CAR,作为另一节点71。进一步地,还得到了用于联接车辆ID列表的节点72。这样,可生成如图11(a)中图示的具有树形结构的SQL图。
取决于节点是否为在“where”子句中的条件是固定的节点,以及节点是否为当输入流数据时能够执行处理并立即向之后的节点执行传输的节点,来确定其是流水线处理还是非流水线处理。在图12(a)所图示的示例中,获取以5km/h的速度(速度)或更低速度的情况下的车辆的车辆ID(car_id),并立即将其制成列表并发送,从而使得其为流水线处理。在本文中,“where”子句是当选择数据等时用于指定条件的命令。
在图12(b)所图示的示例中,由于包括AVG(平均),其为聚合函数,并且由于需要存储固定时间段的数据来计算平均,所以不可立即执行针对之后节点的传输。因此,该处理为非流水线处理。例如,可根据在“where”子句中是否检测到诸如AVG等特定特征进行确定。
再次参考图11,SLOW_LONG_OP_CARS被确定为流水线处理并提取为转换对象,而conv_fav_car_table被确定为流水线处理但因为效率低未被提取为转换对象。如图11(b)所图示的,节点70被提取为转换对象并被转换为流水线处理程序73。在流水线处理程序73中,通过执行,获取相关的车辆ID,将其变成列表,并且生成表。输入SQL 40被重写入为取消了由流水线处理程序73执行的处理的SQL。针对重写的SQL,生成用于引用由流水线处理程序73处理的结果的残余SQL 74。
在图11所图示的示例中,基于例如在节点72中的车辆ID将两个表联结在一起,并发送出通过联结得到的表;然而,当联结过程作为非流水线处理通过非流水线处理程序执行时,减少了需要在RDBMS中执行的处理并且实现了进一步的加速。因此,配置可如图13所图示的那样。图13图示了残余SQL,针对残余SQL,用非流水线处理代替了在节点72中指示联结操作的最终“内部联结”部分。此外,“内部联结”是将两个表中存在的共同记录聚集为一个记录并联结两个表的操作。
当由流水线处理程序和非流水线处理程序执行处理时,相关的车辆ID被获取并其中列出所获取的车辆ID的表被生成。图14(a)是图示了以该方式生成的表的示意图。该表包括一分钟平均速度为5km/h并且长时间驾驶了120分钟或更长WINDOW时间的车辆ID。WINDOW为输入的时间段。
图14(b)与图9所图示的输入SQL的示例相同。当通过流水线处理程序等生成如图14(a)所图示的表时,输入SQL被转换为如图14(c)所图示的残余SQL以引用生成的表。具体地说,从在图14(b)中以内存的方式提取车辆ID的处理到从表(SLOW_LONG_OP_CARS)提取车辆ID的处理,该部分的描述被重写了。
下面将详细描述存储器增加量和将要减少的处理时间的计算方法。存储器增加量是当子查询为节点时需要保持以执行对节点的处理的数据量。针对P节点,存储器增加量是对于输入的流数据进行缓冲的时间的数据量。通过缓冲,可同时处理多个分组。针对NP节点,存储器增加量是针对输入的流数据的WINDOW时间的数据量。针对联结两个表的处理,存储器增加量是对从表中输入的数据进行笛卡尔(Cartesian)乘积运算的数据量。
通过表达式(1)计算将要减少的处理时间。在表达式(1)中,当在RDBMS中对输入SQL执行处理的处理时间tRDBMS可通过以下表达式(3)计算。在表达式(3)中,“tscan”是用于搜索数据的数据扫描时间,以及“top”是用于进行数据选择和运算的数据运算时间。
[表达式3]
tRDBMS=tscan+top (3)
可通过以下表达式(4)计算数据扫描时间tscan,以及可通过以下表达式(5)计算数据运算时间top。在表达式(4)中,“Din”为所输入的数据的数据大小,以及“Uscan”为每单位数据大小的扫描时间。在表达式(5)中,“Dop”是作为运算对象的数据的数据大小,以及“Uop”为每单位数据大小的运算时间。事先通过在RDBMS中实际进行执行或进行流数据处理得到Uscan和Uop,并且使用所得到的值。
[表达式4]
tscan=Din×Uscan (4)
[表达式5]
top=Dop×Uop (5)
在表达式(4)中,可通过顺序执行以下的处理(i)到(iii)得到所输入的数据大小。
(i)当存在联结多个表的处理时,对所输入的数据进行笛卡尔乘积运算处理的数据大小。
(ii)当存在“where”子句和“having”子句时,预先从过去所累积的数据(统计信息)得到子句的每个条件的滤速,即可能提取相关数据的概率,以及计算在处理(i)之后当对数据应用滤速时的数据大小。在本文中,“having”子句指定在“where”子句情况下的条件,并且是用在诸如AVG等聚合函数中的命令。
(iii)计算在处理(ii)之后,当将“选择”处理中选择出来的列选择率应用于数据时的数据大小。在本文中,列选择率是通过将所选择的列的数量除以所输入的数据的列的数量而计算得到的值。
在表达式(5)中,针对运算对象的数据大小,可使用将在处理(i)之后的数据大小和在处理(ii)之后的数据大小相加的值。
将使用具体示例进行描述。假设:针对输入SQL,使用在图10所图示的示例中的输入SQL 40。输入数据为流数据(car_all_table),并且假设每个车辆每100毫秒发送100列的分组,并且这些分组被输入。假设一列数据为4个字节。假设有1000辆车发送分组。因此,流数据的数据率为100列×4个字节×10分组/秒×1000辆车=4MB/sec。
此外,假设用于10000辆车为30列数据,那么,累积数据(conv_fav_car_table)为10000辆车×30列×4个字节=1.2MB。
假设在流数据的节点内的缓冲时间即在P节点中的缓冲时间(时间段)为1秒,并且假设从过去的统计信息得到的滤速为1%。注意,滤速是针对平均速度低于5km/h并且引擎运行时间长于120分钟的车辆。假设在RDBMS中执行处理的情况下单位数据扫描时间为10sec/MB,以及假设在RDBMS中执行处理的情况下单位数据运算时间为2sec/MB。假设在流数据处理中的单位数据扫描时间为2sec/MB,以及假设流数据处理中的单位数据运算时间为1sec/MB。假设流数据处理为Java(R)程序的存储器处理。
针对图11(a)所图示的节点70(SLOW_LONG_OP_CARS),可如以下的(a)到(f)所图示的那样计算各个值。
(a)将存储器增加量定义为所输入数据的数据量,并且通过数据速率×缓冲时间来计算存储器增加量。即,4MB/sec×1sec=4MB。
(b)通过在(a)中计算得到的存储器增加量+存储器增加量×滤速,来计算运算对象数据大小。即,4MB+4MB×0.01=4.04MB。
(c)通过在(a)中计算得到的存储器增加量×在RDBMS中执行处理的情况下单位数据扫描时间+在(b)中计算得到的运算对象数据大小×在RDBMS中执行处理的情况下单位数据运算时间,来计算在RDBMS中执行处理的情况下的处理时间tRDBMS。即,tRDBMS=4MB×10sec/MB+4.04MB×2sec/MB=48.08sec。
(d)通过在(a)中计算得到的存储器增加量×在流数据处理中的单位数据扫描时间+在(b)中计算得到的运算对象数据大小×在流数据处理中的单位数据运算时间,来计算在进行流数据处理的情况下的处理时间tS。即,tS=4MB×2sec/MB+4.04MB×1sec/MB=12.04sec。
(e)通过tRDBMS-tS来计算将要减少的处理时间tD。即,tD=48.08sec-12.04sec=36.04sec。
(f)通过在(a)中计算得到的存储器增加量×滤速×列选择率,来计算将输出至节点72的数据的数据大小。由于所选的列数为1并且所输入的列数为100,因此列选择率为1/100=0.01。因此,数据大小为4MB×0.01×0.01=0.0004MB(0.4kB)。
针对图11(a)所图示的节点71(CONV_STORE_FAV_CAR),可如以下的(a')到(f’)所图示的那样计算各个值。通过与(c)到(e)相同的计算表达式来计算(c’)到(e’)。
(a')存储器增加量为所输入的数据,并且为1.2MB。
(b')与(a’)相同,运算对象数据大小为1.2MB。
(c’)tRDBMS为1.2MB×10sec/MB+1.2MB×2sec/MB=14.4sec。
(d’)tS为1.2MB×2sec/MB+1.2MB×1sec/MB=3.6sec。
(e')tD为14.4sec-3.6sec=10.8sec。
(f’)通过在(a’)中计算得到的存储器增加量×列选择率,来计算将输出至节点72的数据的数据大小。由于所选的列数为1并且所输入的列数为30,因此列选择率为1/30。因此,数据大小为1.2MB×1/30=0.04MB(40kB)。
针对图11(a)所图示的节点72,可如以下的(a”)到(e”)所图示的那样计算各个值。注意,通过与(c)到(e)相同的计算表达式来计算(c”)到(e”)。
(a”)存储器增加量是对于WINDOW时间的输入数据,并且是通过对于WINDOW时间的从节点70输出的数据和对于WINDOW时间的从节点71输出的数据的笛卡尔乘积而计算得到的。在本文中,假设WINDOW时间为10分钟(600sec)。因此,(0.4kB×600sec)×(40kB×600sec)=5760000kB(5760MB)。
(b')与(a’)相同,运算对象数据大小为5760MB。
(c”)tRDBMS为5760MB×10sec/MB+5760MB×2sec/MB=69120sec。
(d”)tS变成5760MB×2sec/MB+5760MB×1sec/MB=17280sec。
(e”)tD为69120sec–17280sec=51840sec。
虽然参考附图详细描述了本发明的提取装置、包括提取装置的数据处理系统和提取方法,但是,本领域的技术人员可在一定范围内进行修改,诸如,其他实施例、添加、改变和删除,并且,只要证明了本发明的作用和效果,任何方面都旨在落入本发明的范围内。由此,还可提供包括提取装置和转换装置的客户端等。
此外,该提取方法可由用于使计算机执行由单独的功能单元执行的处理步骤的提取程序来实现,并且本发明还能够提供提取程序。可通过将提取程序存储在诸如CD-ROM、DVD、SD卡和HDD等记录介质中来提供。此外,可将其存储在内容服务器等中并通过从内容服务器等下载等来获取。
附图标记列表
10...IOT装置
11...分组通信网络
12...客户端
13...前端服务器
14...后端服务器
20...主机控制器
21...CPU
22...RAM
23...图形控制器
24...显示装置
25...输入/输出控制器
26...通信接口
27...HDD
28...CD/DVD驱动器
29...ROM
30...输入/输出芯片
31...CPU
32...存储器
33...HDD
34...通信接口
35...服务器刀片
36...模块
37...背板
40...输入SQL
41...用户定义输入参数
42...编译器
43,45...ETL处理程序
44...流水线处理程序和非流水线处理程序
46...第一数据库
47...第二数据库
50-57...节点
60...输入单元
61...操作单元
62...提取单元
63...图形生成单元
64...分类单元
70-72...节点
73...流水线处理程序
74...残余SQL

Claims (9)

1.一种提取装置,用于从查询中提取作为转换对象将要被转换为用于对连续地输入数据库的流数据进行处理的程序的子查询,所述查询包括作为子查询将要发往用于管理数据库的数据库管理系统的一个或多个指令,所述提取装置包括:
输入单元,其用于接收所述查询、使用量随对所述流数据的所述处理而增加的存储器的最大存储器增加量、以及作为每单位存储器增加量的处理时间的效率下限值的输入,与所述数据库管理系统执行所述查询的情况相比,在所述流数据由所述程序处理的情况下所述处理时间被减少;
操作单元,其用于计算在包括在所述查询中的每个子查询被转换为所述程序并且接着所述流数据被处理的情况下的至少一个存储器增加量,以及与由所述数据库管理系统执行的情况相比在处理所述流数据的情况下将要减少的处理时间,以及通过使用计算得到的所述至少一个存储器增加量和所述将要减少的处理时间来计算效率;以及
提取单元,其用于选择至少一个效率等于或高于所述下限值的子查询,对针对所选的子查询计算得到的所述存储器增加量进行合计,并且,在合计得到的存储器增加量等于或小于最大存储器增加量的条件下,将所选的子查询提取作为转换对象;
其中,所述操作单元基于所述流数据的数据率、处理所述流数据的时间段、从过去执行所述查询的结果得到的统计信息和关于所述查询的操作信息,来计算所述存储器增加量和所述将要减少的处理时间。
2.根据权利要求1所述的提取装置,其中,所述提取单元按照计算得到的效率的降序选择所述子查询。
3.根据权利要求1所述的提取装置,其进一步包括:
图形生成单元,其用于解析所述查询并且生成表示为树形结构的图形,其中每个子查询为每个节点;以及
分类单元,其用于基于所述查询的解析结果,确定每个节点是能够进行对输入数据进行处理并且输出处理结果的流水线处理的第一节点还是不能进行所述流水线处理的第二节点,并且,参考生成的图形,将所述节点分为其中分层次地从根节点连接的节点仅由所述第一节点形成的一个或多个第一节点组,和由剩余的节点形成的一个或多个第二节点组,
其中,所述提取单元从分类到所述第一节点组中的节点中选择效率等于或高于所述下限值的节点,并将所述节点提取作为所述转换对象。
4.根据权利要求3所述的提取装置,其中,
参考所述图形,所述分类单元将所述一个或多个第二节点组分类为其中分层次地从叶节点连接的节点仅由所述第一节点形成的一个或多个第三节点组,和由剩余的节点形成的一个或多个第四节点组,以及
所述提取单元,在从分类到所述第一节点组中的节点中选择了效率等于或高于所述下限值的节点并提取了所有的所述转换对象之后,如果合计得到的存储器增加量尚未达到所述最大存储器增加量,则从分类到所述第三节点组中的节点中选择效率等于或高于所述下限值的节点并将所述节点提取作为转换对象。
5.一种数据处理系统,其包括:根据权利要求1的提取装置;转换装置,其用于将由所述提取装置提取的转换对象的子查询转换为用于处理所述流数据的程序并且生成剩余的将不被转换的子查询;第一处理器,其用于执行转换得到的程序、处理所述流数据,并且输出处理结果;以及,第二处理器,其用于执行剩余的查询并且处理所述处理结果和存储在所述数据库中的所述流数据,所述第二处理器包括用于管理数据库的数据库管理系统。
6.一种提取方法,用于从查询中提取作为转换对象将要被转换为用于对连续地输入数据库的流数据进行处理的程序的子查询,所述查询包括作为子查询将要发往用于管理数据库的数据库管理系统的一个或多个指令,所述方法包括以下步骤:
接收所述查询、使用量随所述流数据的所述处理而增加的存储器的最大存储器增加量、以及作为每单位存储器增加量的处理时间的效率下限值的输入,与所述数据库管理系统执行所述查询的情况相比,在所述流数据由所述程序处理情况下所述处理时间被减少;
计算在包括在所述查询中的每个子查询被转换为所述程序并且接着所述流数据被处理的情况下的至少一个存储器增加量,以及与由所述数据库管理系统执行的情况相比在处理所述流数据的情况下将要减少的处理时间,以及通过使用计算得到的所述至少一个存储器增加量和所述将要减少的处理时间来计算效率;以及
选择至少一个效率等于或高于所述下限值的子查询,对针对所选的子查询计算得到的所述存储器增加量进行合计,并且,在合计得到的存储器增加量等于或小于最大存储器增加量的条件下,将所选的子查询提取作为转换对象;
其中,在所述计算步骤中,基于所述流数据的数据率、处理所述流数据的时间段、从过去执行所述查询的结果得到的统计信息和关于所述查询的操作信息,来计算所述存储器增加量和所述将要减少的处理时间。
7.根据权利要求6所述的提取方法,其中,在所述提取步骤中,按照在所述计算步骤中计算得到的所述效率的降序选择所述子查询。
8.根据权利要求6所述的提取方法,其进一步包括以下步骤:
在接收所述输入的步骤之后,解析所述查询并且生成表示为树形结构的示意图形,其中每个子查询为每个节点;以及
基于所述查询的解析结果,确定每个节点是能够对输入数据进行处理并且输出处理结果的流水线处理的第一节点还是不能进行所述流水线处理的第二节点,并且,参考生成的图形,将所述节点分类为其中分层次地从根节点连接的所述节点仅由所述第一节点形成的一个或多个第一节点组,和由剩余的节点形成的一个或多个第二节点组,
其中,在所述提取步骤中,从分类到所述第一节点组中的节点中选择效率等于或高于所述下限值的节点,并将所述节点提取作为所述转换对象。
9.根据权利要求8所述的提取方法,其中,
在所述分类步骤中,参考所述图形,将所述一个或多个第二节点分类为其中分层次地从叶节点连接的节点仅由所述第一节点形成的一个或多个第三节点组,和由剩余的节点形成的一个或多个第四节点组,以及
在所述提取步骤中,在从分类到所述第一节点组中的节点中选择了效率等于或高于所述下限值的节点并提取了所有的所述转换对象之后,如果合计得到的存储器增加量尚未达到所述最大存储器增加量,则从分类为所述第三节点组中的节点中选择效率等于或高于所述下限值的节点,并将所述节点提取作为转换对象。
CN201410662870.5A 2013-12-13 2014-11-19 提取装置、数据处理系统和提取方法 Active CN104714997B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-257689 2013-12-13
JP2013257689A JP5939583B2 (ja) 2013-12-13 2013-12-13 抽出装置、データ処理システム、抽出方法および抽出プログラム

Publications (2)

Publication Number Publication Date
CN104714997A CN104714997A (zh) 2015-06-17
CN104714997B true CN104714997B (zh) 2018-05-01

Family

ID=53368744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410662870.5A Active CN104714997B (zh) 2013-12-13 2014-11-19 提取装置、数据处理系统和提取方法

Country Status (3)

Country Link
US (2) US9984134B2 (zh)
JP (1) JP5939583B2 (zh)
CN (1) CN104714997B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5939583B2 (ja) 2013-12-13 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 抽出装置、データ処理システム、抽出方法および抽出プログラム
US9189212B2 (en) * 2014-03-31 2015-11-17 International Business Machines Corporation Predicted outputs in a streaming environment
US10303697B1 (en) * 2015-06-25 2019-05-28 National Technology & Engineering Solutions Of Sandia, Llc Temporal data system
US10671607B2 (en) * 2016-09-23 2020-06-02 Futurewei Technologies, Inc. Pipeline dependent tree query optimizer and scheduler
US10970284B2 (en) * 2017-05-12 2021-04-06 Oracle International Corporation Dynamic self-reconfiguration of nodes in a processing pipeline
CN107463623B (zh) * 2017-07-06 2020-06-09 积成电子股份有限公司 一种变电站历史事项数据库的动态查询方法
US10860618B2 (en) 2017-09-25 2020-12-08 Splunk Inc. Low-latency streaming analytics
US10936585B1 (en) * 2018-10-31 2021-03-02 Splunk Inc. Unified data processing across streaming and indexed data sets
US10803213B2 (en) 2018-11-09 2020-10-13 Iocurrents, Inc. Prediction, planning, and optimization of trip time, trip cost, and/or pollutant emission for a vehicle using machine learning
JP7239433B2 (ja) * 2019-10-02 2023-03-14 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
CN111078948A (zh) * 2019-11-22 2020-04-28 深圳市元征科技股份有限公司 汽车诊断数据解析方法及系统、存储介质
US11989592B1 (en) 2021-07-30 2024-05-21 Splunk Inc. Workload coordinator for providing state credentials to processing tasks of a data processing pipeline

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996250A (zh) * 2010-11-15 2011-03-30 中国科学院计算技术研究所 一种基于Hadoop的海量流数据存储和查询方法及系统

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216116B1 (en) * 1996-05-06 2007-05-08 Spotfire Ab Data analysis system with automated query and visualization environment setup
US7584418B2 (en) 2001-05-31 2009-09-01 Oracle International Corporation Methods, systems, and articles of manufacture for prefabricating an information page
US7379654B2 (en) 2002-06-19 2008-05-27 Microsoft Corporation Programmable video recorder backing store for non-byte stream formats
JP2006508434A (ja) * 2002-11-15 2006-03-09 フォン・シュヴェーバー,エリック 情報サーベイのための方法及び装置
US6865627B2 (en) 2002-12-27 2005-03-08 Microsoft Corp Regulating real-time data capture rates to match processor-bound data consumption rates
US7174328B2 (en) 2003-09-02 2007-02-06 International Business Machines Corp. Selective path signatures for query processing over a hierarchical tagged data structure
US7698267B2 (en) * 2004-08-27 2010-04-13 The Regents Of The University Of California Searching digital information and databases
US20060068911A1 (en) 2004-09-30 2006-03-30 Microsoft Corporation Game console communication with a computer
US7856523B2 (en) * 2005-06-01 2010-12-21 Microsoft Corporation Random Access Memory (RAM) based Content Addressable Memory (CAM) management
JP4687253B2 (ja) * 2005-06-03 2011-05-25 株式会社日立製作所 ストリームデータ処理システムのクエリ処理方法
US8903810B2 (en) * 2005-12-05 2014-12-02 Collarity, Inc. Techniques for ranking search results
US8429184B2 (en) * 2005-12-05 2013-04-23 Collarity Inc. Generation of refinement terms for search queries
TWI313983B (en) * 2006-06-08 2009-08-21 Nat Univ Tsing Hua A method for processing multiple continuous top-k queries
US7475214B2 (en) * 2006-08-16 2009-01-06 International Business Machines Corporation Method and system to optimize java virtual machine performance
US8219518B2 (en) 2007-01-09 2012-07-10 International Business Machines Corporation Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (ETL) process
US8005848B2 (en) 2007-06-28 2011-08-23 Microsoft Corporation Streamlined declarative parsing
US8174620B2 (en) 2007-11-06 2012-05-08 Microsoft Corporation High definition media content processing
US8156134B2 (en) * 2007-11-15 2012-04-10 International Business Machines Corporation Using different groups of query graph transform modules to generate execution plans for queries for different database types
US8156495B2 (en) * 2008-01-17 2012-04-10 Oracle America, Inc. Scheduling threads on processors
US20090259646A1 (en) * 2008-04-09 2009-10-15 Yahoo!, Inc. Method for Calculating Score for Search Query
JP4796108B2 (ja) * 2008-09-26 2011-10-19 株式会社東芝 構造化文書検索装置、方法及びプログラム
JP5337447B2 (ja) * 2008-10-28 2013-11-06 株式会社日立製作所 ストリームデータ処理方法、及びシステム
JP4870183B2 (ja) 2009-03-13 2012-02-08 株式会社日立製作所 ストリームデータ処理システムにおける障害回復方法、計算機システム及び障害回復プログラム
US8479216B2 (en) 2009-08-18 2013-07-02 International Business Machines Corporation Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node
US8479215B2 (en) 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
JP4992945B2 (ja) 2009-09-10 2012-08-08 株式会社日立製作所 ストリームデータ生成方法、ストリームデータ生成装置及びストリームデータ生成プログラム
US20110161371A1 (en) * 2009-12-29 2011-06-30 Microgen Plc Sql generation
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
JP2012059152A (ja) 2010-09-10 2012-03-22 Internatl Business Mach Corp <Ibm> データ処理を行うシステムおよびメモリを割り当てる方法
US8745591B2 (en) 2011-10-19 2014-06-03 Microsoft Corporation Data flow visualization and debugging
JP5801732B2 (ja) * 2012-01-24 2015-10-28 株式会社日立製作所 情報処理システムの運用管理方法
WO2013145310A1 (ja) * 2012-03-30 2013-10-03 富士通株式会社 データストリームの並列処理プログラム、方法、及びシステム
US9208254B2 (en) * 2012-12-10 2015-12-08 Microsoft Technology Licensing, Llc Query and index over documents
JP2014157510A (ja) 2013-02-15 2014-08-28 International Business Maschines Corporation ストリーム・データ処理システム、方法及びプログラム
JP5939583B2 (ja) * 2013-12-13 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 抽出装置、データ処理システム、抽出方法および抽出プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996250A (zh) * 2010-11-15 2011-03-30 中国科学院计算技术研究所 一种基于Hadoop的海量流数据存储和查询方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Fuzzy Clustering Algorithm for High Dimensional Streaming Data;Diksha Upadhyay etc.;《Journal of Information Engineering and Applications》;20131031;第3卷(第10期);第1-9页 *

Also Published As

Publication number Publication date
CN104714997A (zh) 2015-06-17
US20150293981A1 (en) 2015-10-15
JP5939583B2 (ja) 2016-06-22
US10089370B2 (en) 2018-10-02
US9984134B2 (en) 2018-05-29
US20150169714A1 (en) 2015-06-18
JP2015114937A (ja) 2015-06-22

Similar Documents

Publication Publication Date Title
CN104714997B (zh) 提取装置、数据处理系统和提取方法
US7660792B2 (en) System and method for spam identification
CN102023018B (zh) 能量消耗量预测方法、能量消耗量预测装置及终端装置
CN101876934B (zh) 一种用于对输入数据进行采样的方法和系统
CN114118224B (zh) 一种基于神经网络的全系统遥测参数异常检测系统
US20090276729A1 (en) Adaptive user feedback window
CN111949646B (zh) 基于大数据的设备运行状况分析方法、装置、设备及介质
CN108764375B (zh) 高速公路货运车辆跨省匹配方法及装置
CN109658272A (zh) 驾驶行为评价系统及基于驾驶行为的保险定价系统
JP2014153236A (ja) 新規道路検出ロジック
CN110501169A (zh) 车辆故障的诊断方法、装置及电子设备
CN110044639A (zh) 一种基于实车运行大数据平台的细分市场商用车md-vtd系统
CN101561302A (zh) 车辆耗油量的测量系统及其测量方法
CN109818961A (zh) 一种网络入侵检测方法、装置和设备
CN104408924A (zh) 一种基于耦合隐马尔可夫模型的城市道路异常交通流检测方法
CN102346901A (zh) 一种互联网药品交易主体信用评估系统及其方法
Verwiebe et al. Survey of window types for aggregation in stream processing systems
CN114140903B (zh) 一种基于决策树生成规则的道路类型识别车载装置
CN103530288B (zh) 一种兴趣点分布范围的测试方法和装置
CN105389985A (zh) 一种基于手机传感器的智能驾驶行为分析方法
CN115565373A (zh) 高速公路隧道事故实时风险预测方法、装置、设备及介质
CN110084137A (zh) 基于驾驶场景的数据处理方法、装置和计算机设备
CN113405519A (zh) 农机的作业亩数计算方法和农机的作业亩数计算系统
CN104331746B (zh) 一种分离式的动态路径优化系统及其方法
WO2022237266A1 (zh) 车辆保养信息的确定方法、装置、设备及介质

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