CN106062739B - 动态流计算拓扑 - Google Patents
动态流计算拓扑 Download PDFInfo
- Publication number
- CN106062739B CN106062739B CN201380081647.5A CN201380081647A CN106062739B CN 106062739 B CN106062739 B CN 106062739B CN 201380081647 A CN201380081647 A CN 201380081647A CN 106062739 B CN106062739 B CN 106062739B
- Authority
- CN
- China
- Prior art keywords
- post
- topology
- processing
- processing node
- data objects
- 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
- 238000012805 post-processing Methods 0.000 claims abstract description 151
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000004590 computer program Methods 0.000 claims abstract description 14
- 238000000605 extraction Methods 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 7
- 239000012530 fluid Substances 0.000 claims 3
- 230000006870 function Effects 0.000 description 47
- 230000008569 process Effects 0.000 description 16
- 238000007726 management method Methods 0.000 description 14
- 230000009471 action Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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
- G06F16/24568—Data stream processing; Continuous 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
Abstract
用于动态拓扑生成的方法、系统以及设备,包括在计算机存储介质上编码的计算机程序。所述方法中的一个包括从用户接收指定搜索准则和后处理函数原型的查询。从所述查询生成拓扑定义,所述拓扑定义指定:一个或多个源节点和至少一个处理节点,其中,所述处理节点在所述拓扑中被指定以便输出与数据对象标识符对应的数据对象的流;以及根据所述后处理函数原型的后处理节点,其中,所述后处理节点在所述拓扑中被指定以便接收由所述处理节点输出的数据对象的流,并且在所述拓扑中被指定以便输出一个或多个被修改数据对象。所述拓扑定义然后被提供给实时流计算系统以用于执行。
Description
技术领域
本说明书涉及流计算。
背景技术
流计算是指实时地对对象的无界序列进行连续处理的系统和技术,例如,接收数据对象的传入流、对数据对象进行处理并且产生被修改数据对象的输出流。例如,对象可以表示由网站接收到的页面请求或由用户张贴的微博(microblog)消息。流计算系统能够随着数据对象被找到而提供即时的搜索结果,以及随着它们被接收到而对新数据对象进行连续处理。
分布式流计算系统能够包括对数据进行处理以生成数据对象的序列的多个计算节点,所述序列被称为流。示例流数据对象是被称为元组(tuple)的命名值的列表。计算节点能够按特定次序对流执行各种操作。
由流计算系统中的节点所执行的操作能够由拓扑来定义。拓扑是计算节点以及由这些计算节点所执行的相应流变换的计算图。在第一实例中读取原始数据并生成流的计算节点可以被称为源节点或“管口”(spouts);并且订阅流、对数据执行操作、并且变换流上传递的计算节点可以被称为处理节点或“门闩”(bolts)。拓扑中的边缘指示哪些门闩订阅哪些流。流计算拓扑中的节点通常被配置成无限地对流进行处理。
图1A是示例现有技术系统的图。该系统包括流计算子系统130a,其用于对来自键值存储子系统150的数据对象的流进行处理,例如,按键值对在不同列族中存储数据的Hadoop数据库(HBase)。存储子系统150能够可选地为关系数据库或任何其它适当的存储子系统。
流计算子系统130a根据从管理节点120a接收到的拓扑定义125a使用拓扑126a的源节点和处理节点来生成流。示例流计算子系统是Storm分布式实时计算系统。(Storm在http://storm-project.net/以及那里标识的文献处有描述。)
用户装置110的用户能够查询键值存储子系统以获得匹配数据对象145。用户装置110可以是个人计算机、智能电话,或用户能够与其交互的任何其它种类的基于计算机的装置。用户110装置向管理节点120a发出查询105。管理节点120a解析查询105并且生成对于识别满足该查询105的匹配数据对象145所需要的一个或多个过程。管理节点120a生成满足查询105所需要的过程的对应拓扑定义125a;该拓扑定义125a将过程映射到源节点和处理节点。例如,满足查询105通常需要对来自键值存储子系统150的数据对象的流进行过滤的过滤过程以及用于从键值存储子系统150读取数据对象的读取过程。拓扑定义125a然后被用来生成在计算机的集群上运行的拓扑。
搜索子系统140能够为键值存储子系统150中的数据对象编索引以便于匹配数据对象的高效检索。示例搜索子系统104是Apache SolrTM搜索平台。(“Apache Solr”是ApacheSoftware Foundation的商标。)拓扑126a中的一个或多个源节点,例如,源节点“获得ID”(“Get IDs”)132,将与搜索子系统140进行通信,以获得满足查询105的数据对象的匹配标识符135。源节点然后将生成由拓扑126a中的处理节点“读取数据对象”(“Read DataObjects”)134所接收到的匹配标识符流145。处理节点134从源节点接收匹配标识符流并且从键值存储子系统150请求数据对象。处理节点134能够使用批量处理技术来改进从键值存储子系统150读取数据对象的性能。例如,处理节点134能够等待从键值存储子系统150请求数据对象,直到已经从匹配标识符流145接收到至少最小数目的标识符元组为止。处理节点134然后能够将匹配数据对象145返回给用户装置110。
通常根据管理节点120a中的逻辑自动地生成定义拓扑126a的结构的拓扑定义125a。可选地,拓扑定义125a能够由开发人员提前编程。用户通常对流计算子系统130a中的拓扑126a的结构没有运行时间控制。
发明内容
本说明书描述系统如何能够根据用户输入来生成动态流计算拓扑。一般而言,用户能够在运行时间指定查询以及一个或多个后处理函数原型。该系统然后能够生成包括执行用户指定的函数原型的动作的后处理节点的拓扑。
一般而言,本说明书中所描述的主题的一个创新方面能够用包括以下各动作的方法加以具体化:从用户接收指定搜索准则和后处理函数原型的查询;从所述查询生成指定以下各方面的拓扑定义:一个或多个源节点和至少一个处理节点,其中,所述处理节点在所述拓扑中被指定以便从所述一个或多个源节点接收满足所述搜索准则的数据对象的数据对象标识符的一个或多个流,并且其中,所述处理节点在所述拓扑中被指定以便输出与所述数据对象标识符对应的数据对象的流;以及根据所述后处理函数原型的后处理节点,其中,所述后处理节点在所述拓扑中被指定以便接收由所述处理节点输出的数据对象的流,根据所述后处理函数原型来对所述数据对象执行一个或多个操作,并且在所述拓扑中被指定以便输出一个或多个被修改数据对象;以及将所述拓扑定义提供给实时流计算系统以用于执行。这个方面的其它实施例包括各自被配置成执行所述方法的动作的对应的计算机系统、设备以及记录在一个或多个计算机存储装置上的计算机程序。为让一个或多个计算机的系统被配置成执行特定操作或动作意味着该系统已经将在操作中使该系统执行所述操作或动作的软件、固件、硬件或它们的组合安装在其上。为让一个或多个计算机程序被配置成执行特定操作或动作意味着一个或多个程序包括当由数据处理设备执行时使该设备执行所述操作或动作的指令。
上述和其它实施例能够单独或者相结合地各自可选地包括以下特征中的一个或多个。满足搜索查询的数据对象的数据对象标识符是具有满足搜索项的字段值的数据对象。所述动作包括从所述用户接收所述后处理函数原型的引数,其中,所述后处理节点在所述拓扑中被指定来使用所述引数来对所述数据对象执行所述一个或多个操作。从所述后处理函数原型生成的所述后处理节点在所述拓扑中被指定来根据所述引数从所接收到的数据对象中提取字段并且提供所提取的字段作为输出。从所述后处理函数原型生成的所述后处理节点在所述拓扑中被指定来根据所述引数对由所述后处理节点接收到的所述数据对象进行过滤并且提供经过滤的数据对象作为输出。从所述函数原型生成的所述后处理节点在所述拓扑中被指定来聚合由所述引数指定的一个或多个数据对象值并且提供聚合值作为输出。所述查询以及所述后处理函数的所述标识符是由所述用户作为输入所提供的文本。所述动作包括接收不同的第二后处理函数原型的第二标识符,其中,所述拓扑定义根据所述第二后处理函数原型来指定第二后处理节点,其中,所述第二后处理节点在所述拓扑中被指定来接收由所述后处理节点输出的数据对象的流,根据所述第二后处理函数原型来对所述数据对象执行一个或多个操作,并且输出一个或多个第二被修改数据对象。所述文本输入指定由所述后处理节点输出的数据对象的流以及由所述第二后处理节点接收到的数据对象的流的订阅。所述查询以及后处理函数的所述标识符是在运行时间从所述用户接收的。所述动作包括由所述流计算系统为所述一个或多个源节点、所述处理节点以及所述后处理节点中的每一个分配一个或多个计算节点,其中,所述处理节点从所述一个或多个源节点订阅流,其中,所述后处理节点从所述处理节点订阅流。
能够实现本说明书中所描述的主题的特定实施例以便实现以下优点中的一个或多个。用户能够在运行时间迅速地且容易地生成新的流计算拓扑,这能够允许用户容易地开发新的搜索技术。
在附图和以下描述中阐述本说明书的主题的一个或多个实施例的细节。本主题的其它特征、方面和优点从本说明书、附图以及权利要求书将变得显而易见。
附图说明
图1A是示例现有技术系统的图。
图1B是依照本发明的示例系统的图。
图2是动态拓扑生成的概念图。
图3是用于动态地生成流计算拓扑的示例过程的流程图。
各个附图中的相同的附图标记和名称指示相同的元件。
具体实施方式
图1B是示例系统100b的图。系统100b是根据用户输入在运行时间生成动态流计算拓扑的系统的示例。用户能够在运行时间指定查询106,其使管理节点120b生成将后处理节点添加到流计算拓扑126b中的拓扑定义125b。
查询106能够指定一个或多个函数原型,其定义待添加到拓扑125b的后处理节点。系统100b能够维护可用函数原型的储存库122,管理节点120b将使用其以生成使流计算子系统130b在拓扑126b中插入节点的对应拓扑定义125b。后处理节点可以具有与拓扑中由管理节点120b自动地生成以便满足查询的处理节点类似的功能性。在本说明书中,后处理节点是指拓扑中从用户指定的函数原型以及可选地一个或多个用户定义的引数生成的节点。
例如,用户可能想要接收描述源自于特定网际协议(IP)地址的实时web页面请求的流数据。用户能够发出针对web页面请求的查询。缺少由用户对附加后处理操作——例如过滤操作——的指定,流计算子系统130b将向客户端装置返回满足查询的全数据对象的流。
用户还能够在查询106中指定将导致附加后处理节点被插入到流计算拓扑126b中的函数原型。例如,用户能够发出以下查询:
get pageRequests|filter src=“10.117.38.22”|fields“time”
该查询的“get pageRequests”部分被称为基础查询。基础查询指定一个或多个搜索准则并且能够被以任何适当的格式指定,例如,作为结构化查询语言查询或对象查询语言查询,或者作为指定一个或多个搜索项的搜索查询。基础查询由管理节点120b解析以生成初始拓扑定义。
查询106的“filter”(过滤)和“fields”(字段)项是参考由系统100b维护的函数原型的保留项。管理节点120b将向初始拓扑定义添加对应于查询106中所指定的函数原型的一个或多个后处理节点。
竖线字符指定由紧跟该竖线之后的函数原型所定义的后处理节点将订阅通过由查询在竖线之前的一部分所定义的节点而生成的流,所述节点可以是另一后处理节点或初始拓扑中与基础查询对应的处理节点。换句话说,查询中所指定的函数原型的顺序表示拓扑126b中的后处理节点的结构并且表示后处理节点之间的流。
查询中所指定的函数原型能够伴随有引数。例如,“filter”原型伴随有指定结果得到的后处理节点应该如何对接收到的数据对象流中的数据对象进行过滤的引数“src=‘10.117.38.22’”。“fields”原型伴随有指定后处理节点应该从接收到的数据对象流中的数据对象中提取的字段的引数“time”(时间)。
管理节点120b生成与查询106对应的拓扑定义125b并且将该拓扑定义125b提供给流计算子系统130b。
流计算子系统130b接收拓扑定义125b并且根据该拓扑定义来初始化流计算节点。拓扑中的单个逻辑节点的功能性能够作为一个或多个物理计算机或者作为被作为虚拟机安装在物理计算机上的软件被实现。
结果得到的拓扑126b包括从搜索子系统140接收匹配标识符135的三个源节点。该拓扑还包括接收匹配标识符145的流并且从键值存储子系统150请求所对应的匹配数据对象145的处理节点134。
拓扑126b还包括与查询106中所指定的函数原型对应的两个后处理节点。拓扑126包括与“filter”函数原型对应的第一后处理节点136以及与“fields”函数原型对应的第二后处理节点138。如由用户查询106所指定的,“filter”后处理节点136订阅由与基础查询对应的初始拓扑所生成的流,例如,由处理节点134发出的流。类似地,“fields”后处理节点138订阅由“filter”后处理节点138所生成的流。
“filter”后处理节点136从处理节点134接收全匹配数据对象145的流。例如,数据对象可以是关于web页面请求的JavaScript Object Notation(JSON)记录。示例JSON记录能够包括关于web页面请求的以下信息:
{
“id”:12323478945,
“time”:1383851178,
“src”:10.345.54.233,
“browsertype”:Mozilla,
“browserversion”:7.2,
“language”:EN,
“region”:North America,
}
“filter”后处理节点136使用所提供的引数“src=‘l0.117.38.22’”来生成具有与所提供的值“10.117.28.22”匹配的字段“src”的数据对象的流。该流被提供给“fields”后处理节点138。
“fields”后处理节点138提取与所提供的引数“time”对应的一个或多个字段,以生成将仅来自字段“time”的值包括在原始匹配数据对象145中的time字段数据对象的流145,并且仅针对从IP地址“10.117.28.22”接收到的页面请求来生成。
图2是动态拓扑生成的概念图。一般而言,动态拓扑构建器240能够通过接收从查询生成流计算方法的任何适当的查询解析器220的输出来生成动态拓扑。动态拓扑构建器240然后能够将该动态拓扑提供给任何适当的流计算子系统以用于执行。
解析器220接收查询210并将该查询解析成一个或多个过程,所述一个或多个过程然后被提供给动态拓扑构建器240。动态拓扑构建器240使用后处理函数原型230来在运行时间根据查询210中所指定的后处理函数来生成拓扑定义。该拓扑定义然后被提供给流计算子系统,所述流计算子系统根据所生成的拓扑来分配资源以初始化并运行计算节点。所生成的拓扑250然后能够对流数据对象,例如,索引数据对象250,进行处理以便满足查询210。
图3是用于动态地生成流计算拓扑的示例过程的流程图。一般而言,用户发出指定一个或多个函数原型的查询,所述一个或多个函数原型定义应该被添加到流计算拓扑的附加后处理节点。该过程能够由管理节点,例如,图1中的管理节点120b来执行。该过程将被描述为由一个或多个适当地编程的计算机的系统来执行。
系统从用户接收包括后处理函数原型的标识符的查询(310)。该查询将通常包括指定要搜索的数据合集以及一个或多个搜索准则的基础查询。例如,基础查询能够指定关系数据库的表名称或HBase系统的列族。基础查询还能够指定对应于实时地发生的事件——例如,web页面请求——的特定输入流。
后处理函数原型可以是预定义函数原型的储存库中所定义的一个。查询中所指定的函数原型的标识符可以是查询中的保留项。用户还能够在查询中为每个后处理函数原型指定一个或多个引数。
示例函数原型是字段提取原型。字段提取原型定义函数,该函数提取字段数据对象并且生成新字段作为输出。能够通过任何适当的规则表达式格式来指定针对字段提取的准则。提取并传递“lastName”字段的值的函数是字段提取原型的示例。
另一示例函数原型是过滤原型。过滤原型定义根据一个或多个准则对数据进行过滤的函数。过滤准则能够由字段名称、字段值对——例如,“lastName=Smith”——来指定。过滤准则还能够包括其它比较操作符,例如,=、<、>、<=、<=或!=。仅传递此“lastName=Smith”的元组并且滤出所有其它元组的函数是过滤原型的示例。
另一示例函数原型是聚合原型。聚合原型从通过拓扑被处理的接收到的数据对象生成聚合量度。用户能够指示特定的预定义聚合函数,例如,sum、avg、max、min、count或unique_count,仅举几个例子。对此“lasfName=Smith”的所有元组进行计数的函数是聚合原型的示例。
表1提供了能够被用来生成拓扑中的后处理节点的函数原型的另外示例。
表1
系统生成指定源节点和处理节点的初始拓扑定义(320)。一般而言,系统将解析基础查询以生成初始拓扑定义。该初始拓扑定义将包括针对在由基础查询指定的数据合集中确定满足一个或多个搜索准则的数据对象的数据对象标识符的源节点的指定。源节点将生成被提供给一个或多个处理节点的匹配标识符的流。处理节点将通常包括从用于匹配标识符流的数据对象的键值存储子系统读取的至少一个节点。
系统生成后处理节点定义(330)。系统能够根据由用户在查询中所指定的函数原型和引数来将附加后处理节点添加到拓扑定义。例如通过指定待由节点执行的源代码或目标代码,函数原型定义待由后处理节点执行的操作。函数原型能够用任何适当的编程语言,例如,Java、Ruby、Python或Fancy,仅举几个例子,加以实现。
系统将拓扑定义提供给流计算系统以用于执行(340)。流计算系统将根据拓扑定义来生成实时流计算拓扑。例如,流计算系统能够为拓扑中的每个节点分配一个或多个计算节点并且在拓扑中的对应于流订阅的计算节点之间建立网络连接。
流计算系统能够激活拓扑,这使源节点开始生成流以便由拓扑中的其它节点进行处理。拓扑通常将通过随着匹配数据对象被找到或者随着匹配数据对象被添加到系统而连续地生成匹配数据对象的标识符流来保持激活。
本说明书中所描述的主题和功能操作的实施例能够用数字电子电路、用有形地具体化的计算机软件或固件、用包括本说明书中所公开的结构及其结构等同物的计算机硬件或者用它们中的一个或多个的组合加以实现。本说明书中所描述的主题的实施例能够作为一个或多个计算机程序,即,在有形非暂时性程序载体上编码以用于由数据处理设备执行或者控制数据处理设备的操作的计算机程序指令的一个或多个模块,被实现。可选地或此外,能够将程序指令编码在人工生成的传播信号上,例如,被生成来对信息进行编码以便传输到适合的接收器设备以用于由数据处理设备执行的机器生成的电、光学或磁信号。计算机存储介质可以是机器可读存储装置、机器可读存储基底、随机或串行存取存储器装置,或它们中的一个或多个的组合。然而,计算机存储介质不是传播信号。
术语“数据处理设备”包含用于对数据进行处理的所有类型的设备、装置和机器,作为示例包括可编程处理器、计算机或多个处理器或计算机。所述设备能够包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。所述设备除了包括硬件之外,还能够包括为所述的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(其还也可以被称为或者描述为程序、软件、软件应用、模块、软件模块、脚本或代码)能够用任何形式的编程语言——包括编译或解释语言或者描述性或过程语言编写,并且它能够被以任何形式——包括作为独立程序或者作为适合于在计算环境中使用的模块、组件、子例行程序或其它单元——部署。计算机程序可以但不必对应于文件系统中的文件。程序能够被存储在保持其它程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;在专用于所述的程序的单个文件中或者在多个协调文件中,例如,存储一个或多个模块、子程序或代码的部分的文件。能够将计算机程序部署成在一个计算机上或在位于一个站点处或者跨越多个站点分布并通过通信网络互连的多个计算机上执行。
本说明书中所描述的过程和逻辑流程能够由执行一个或多个计算机程序的一个或多个可编程计算机来执行以通过对输入数据进行操作并且生成输出来执行功能。过程和逻辑流程还能够由专用逻辑电路执行,并且设备还能够作为专用逻辑电路被实现,所述专用逻辑电路例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为示例,适合于执行计算机程序的计算机能够基于通用微处理器或专用微处理器或两者,或任何其它类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于依照指令来执行或者实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置,例如磁盘、磁光盘或光盘,或者在操作上耦合以从用于存储数据的一个或多个大容量存储装置,例如磁盘、磁光盘或光盘,接收数据或者向用于存储数据的一个或多个大容量存储装置转移数据或两者。然而,计算机不必具有这样的装置。而且,能够将计算机嵌入在另一装置中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置,例如,通用串行总线(USB)闪存驱动器等等,只举几个。
适合于存储计算机程序指令和数据的计算机可读媒体包括所有形式的非易失性存储器、媒体以及存储器装置,作为示例包括:半导体存储器装置,例如,EPROM、EEPROM和闪速存储器装置;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及CD-ROM盘和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充或者并入专用逻辑电路。
为了提供与用户的交互,本说明书中所描述的主题的实施例能够被实现在具有用于向用户显示信息的显示装置,例如,CRT(阴极射线管)监视器、LCD(液晶显示)监视器或OLED显示器,以及用于向计算机提供输入的输入装置,例如,键盘、鼠标或存在敏感显示器或其它表面的计算机上。其它种类的装置也能够被用来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以包括声输入、语音输入或触觉输入的任何形式接收来自用户的输入。此外,计算机可能通过向由用户所使用的装置发送资源并且从由用户所使用的装置接收资源来与用户交互,例如,通过响应于从web浏览器接收到的请求而向用户的客户端装置上的web浏览器发送web页面。
本说明书中所描述的主题的实施例能够被实现在计算系统中,所述计算系统包括后端组件,例如,作为数据服务器,或者包括中间件组件,例如,应用服务器,或者包括前端组件,例如,具有用户能够用来与本说明中所描述的主题的实施方式交互的图形用户界面或Web浏览器的客户端计算机,或一个或多个这样的后端组件、中间件组件或前端组件的任何组合。本系统的组件能够通过任何形式或介质的数字数据通信——例如通信网络——来互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如,互联网。
虽然本说明书包含许多特定实施方式细节,但是这些不应该被解释为对任何发明的或可能要求保护的范围构成限制,而是相反被解释为可能特定于特定本发明的特定实施例的特征的描述。在本说明书中在独立的实施例的上下文中描述的某些特征也能够在单个实施例中相结合地实现。相反地,在单个实施例的上下文中描述的各种特征也能够在独立的多个实施例中或者在任何适合的子组合中实现。而且,尽管特征可能在上面被描述为在某些组合中起作用并因此甚至最初要求保护,但是来自要求保护的组合的一个或多个特征能够在一些情况下从组合中删除,并且所要求保护的组合可能针对子组合或子组合的变化。
类似地,虽然按特定次序在附图中描述操作,但是这不应该被理解为要求这样的操作被按所示出的特定次序或按顺序次序执行,或者要求执行所有图示的操作,以实现所希望的结果。在特定情况下,多任务和并行处理可能是有利的。而且,在上面所描述的实施例中各种系统模块和组件的独立不应该被理解为在所有实施例中要求这样的独立,并且应该理解,所描述的程序组件和系统能够通常被一起集成单个软件产品中或者封装到多个软件产品中。
已经描述了本主题的特定实施例。其它实施例在以下权利要求的范围内。例如,权利要求中所记载的动作能够被按不同次序执行,并且仍然实现所希望的结果。作为一个示例,附图中所描绘的过程未必要求所示出的特定次序或顺序次序来实现所希望的结果。在特定实施方式中,多任务和并行处理可能是有利的。
Claims (33)
1.一种计算机实现的流计算方法,所述方法包括:
在运行时间从用户接收查询,所述查询指定搜索准则和后处理函数原型;
在运行时间从所述查询生成指定以下方面的初始拓扑定义:
一个或多个源节点和至少一个处理节点,其中,所述处理节点在所述拓扑中被指定以便从所述一个或多个源节点接收满足所述搜索准则的数据对象的数据对象标识符的一个或多个流,并且其中,所述处理节点在所述拓扑中被指定以便输出与所述数据对象标识符对应的数据对象的流;
将所述初始拓扑定义提供给实时流计算系统以用于执行;
将根据所述后处理函数原型的后处理节点添加到所述初始拓扑定义,其中,所述后处理节点在所述拓扑中被指定以便接收由所述处理节点输出的数据对象的流,根据所述后处理函数原型来对所述数据对象执行一个或多个操作,并且在所述拓扑中被指定以便输出一个或多个被修改数据对象;以及
将结果得到的拓扑定义提供给所述实时流计算系统以用于执行。
2.根据权利要求1所述的方法,
其中,所述查询是指定一个或多个搜索项的搜索查询,并且
其中,满足所述搜索查询的数据对象的所述数据对象标识符是具有满足所述搜索项的字段值的数据对象。
3.根据权利要求1所述的方法,还包括:
从所述用户接收所述后处理函数原型的引数,其中,所述后处理节点在所述拓扑中被指定以便使用所述引数来对所述数据对象执行所述一个或多个操作。
4.根据权利要求3所述的方法,
其中,所述后处理函数原型是字段提取原型,并且
其中,从所述后处理函数原型生成的所述后处理节点在所述拓扑中被指定以便根据所述引数从所接收到的数据对象中提取字段,并且提供所提取的字段作为输出。
5.根据权利要求3所述的方法,
其中,所述后处理函数原型是过滤原型,并且
其中,从所述后处理函数原型生成的所述后处理节点在所述拓扑中被指定以便根据所述引数对由所述后处理节点接收到的所述数据对象进行过滤,并且提供经过滤的数据对象作为输出。
6.根据权利要求3所述的方法,
其中,所述后处理函数原型是聚合原型,并且
其中,从所述函数原型生成的所述后处理节点在所述拓扑中被指定以便聚合由所述引数指定的一个或多个数据对象值,并且提供聚合值作为输出。
7.根据权利要求1所述的方法,其中,
所述查询以及所述后处理函数原型的标识符是由所述用户作为输入所提供的文本。
8.根据权利要求1所述的方法,还包括:
接收不同的第二后处理函数原型的第二标识符,
其中,所述拓扑定义根据所述第二后处理函数原型来指定第二后处理节点,其中,所述第二后处理节点在所述拓扑中被指定以便接收由所述后处理节点输出的数据对象的流,根据所述第二后处理函数原型来对所述数据对象执行一个或多个操作,并且输出一个或多个第二被修改数据对象。
9.根据权利要求8所述的方法,其中,
所述查询以及所述后处理函数原型的标识符是从所述用户接收到的文本输入,其中,所述文本输入指定由所述后处理节点输出的数据对象的流以及由所述第二后处理节点接收到的数据对象的流的订阅。
10.根据权利要求1所述的方法,其中,
后处理函数原型的标识符是在运行时间从所述用户接收的。
11.根据权利要求1所述的方法,还包括:
由所述流计算系统,来为所述一个或多个源节点、所述处理节点以及所述后处理节点中的每一个分配一个或多个计算节点,
其中,所述处理节点从所述一个或多个源节点订阅流,其中,所述后处理节点从所述处理节点订阅流。
12.一种计算机实现的流计算系统,所述系统包括:
一个或多个计算机以及存储有指令的一个或多个存储装置,当由所述一个或多个计算机执行时,所述指令是可操作的以便使所述一个或多个计算机执行包括以下步骤的操作:
在运行时间从用户接收指定搜索准则和后处理函数原型的查询;
在运行时间从所述查询生成指定以下方面的初始拓扑定义:
一个或多个源节点和至少一个处理节点,其中,所述处理节点在所述拓扑中被指定以便从所述一个或多个源节点接收满足所述搜索准则的数据对象的数据对象标识符的一个或多个流,并且其中,所述处理节点在所述拓扑中被指定以便输出与所述数据对象标识符对应的数据对象的流;
将所述初始拓扑定义提供给实时流计算系统以用于执行;
将根据所述后处理函数原型的后处理节点添加到所述初始拓扑定义,其中,所述后处理节点在所述拓扑中被指定以便接收由所述处理节点输出的数据对象的流,根据所述后处理函数原型来对所述数据对象执行一个或多个操作,并且在所述拓扑中被指定以便输出一个或多个被修改数据对象;以及
将结果得到的拓扑定义提供给所述实时流计算系统以用于执行。
13.根据权利要求12所述的系统,
其中,所述查询是指定一个或多个搜索项的搜索查询,并且
其中,满足所述搜索查询的数据对象的所述数据对象标识符是具有满足所述搜索项的字段值的数据对象。
14.根据权利要求12所述的系统,其中,所述操作还包括:
从所述用户接收所述后处理函数原型的引数,其中,所述后处理节点在所述拓扑中被指定以便使用所述引数来对所述数据对象执行所述一个或多个操作。
15.根据权利要求14所述的系统,
其中,所述后处理函数原型是字段提取原型,并且
其中,从所述后处理函数原型生成的所述后处理节点在所述拓扑中被指定以便根据所述引数从所接收到的数据对象中提取字段,并且提供所提取的字段作为输出。
16.根据权利要求14所述的系统,
其中,所述后处理函数原型是过滤原型,并且
其中,从所述后处理函数原型生成的所述后处理节点在所述拓扑中被指定以便根据所述引数对由所述后处理节点接收到的所述数据对象进行过滤,并且提供经过滤的数据对象作为输出。
17.根据权利要求14所述的系统,
其中,所述后处理函数原型是聚合原型,并且
其中,从所述函数原型生成的所述后处理节点在所述拓扑中被指定以便聚合由所述引数指定的一个或多个数据对象值,并且提供聚合值作为输出。
18.根据权利要求12所述的系统,其中,
所述查询以及所述后处理函数原型的标识符是由所述用户作为输入所提供的文本。
19.根据权利要求12所述的系统,其中,所述操作还包括:
接收不同的第二后处理函数原型的第二标识符,
其中,所述拓扑定义根据所述第二后处理函数原型来指定第二后处理节点,其中,所述第二后处理节点在所述拓扑中被指定以便接收由所述后处理节点输出的数据对象的流,根据所述第二后处理函数原型来对所述数据对象执行一个或多个操作,并且输出一个或多个第二被修改数据对象。
20.根据权利要求19所述的系统,其中,
所述查询以及所述后处理函数原型的标识符是从所述用户接收到的文本输入,其中,所述文本输入指定由所述后处理节点输出的数据对象的流以及由所述第二后处理节点接收到的数据对象的流的订阅。
21.根据权利要求12所述的系统,其中,
所述后处理函数原型的标识符是在运行时间从所述用户接收的。
22.根据权利要求12所述的系统,其中,所述操作还包括:
由所述流计算系统,来为所述一个或多个源节点、所述处理节点以及所述后处理节点中的每一个分配一个或多个计算节点,
其中,所述处理节点从所述一个或多个源节点订阅流,其中,所述后处理节点从所述处理节点订阅流。
23.一种非暂时性计算机存储介质,计算机程序产品被编码在所述非暂时性计算机存储介质上,所述计算机程序产品包括当由一个或多个计算机执行时使所述一个或多个计算机执行包括以下步骤的操作的指令:
在运行时间从用户接收指定搜索准则和后处理函数原型的查询;
在运行时间从所述查询生成指定以下方面的初始拓扑定义:
一个或多个源节点和至少一个处理节点,其中,所述处理节点在所述拓扑中被指定以便从所述一个或多个源节点接收满足所述搜索准则的数据对象的数据对象标识符的一个或多个流,并且其中,所述处理节点在所述拓扑中被指定以便输出与所述数据对象标识符对应的数据对象的流;
将所述初始拓扑定义提供给实时流计算系统以用于执行;
将根据所述后处理函数原型的后处理节点添加到所述初始拓扑定义,其中,所述后处理节点在所述拓扑中被指定以便接收由所述处理节点输出的数据对象的流,根据所述后处理函数原型来对所述数据对象执行一个或多个操作,并且在所述拓扑中被指定以便输出一个或多个被修改数据对象;以及
将结果得到的拓扑定义提供给所述实时流计算系统以用于执行。
24.根据权利要求23所述的非暂时性计算机存储介质,
其中,所述查询是指定一个或多个搜索项的搜索查询,并且
其中,满足所述搜索查询的数据对象的所述数据对象标识符是具有满足所述搜索项的字段值的数据对象。
25.根据权利要求23所述的非暂时性计算机存储介质,其中,所述操作还包括:
从所述用户接收所述后处理函数原型的引数,其中,所述后处理节点在所述拓扑中被指定以便使用所述引数来对所述数据对象执行所述一个或多个操作。
26.根据权利要求25所述的非暂时性计算机存储介质,
其中,所述后处理函数原型是字段提取原型,并且
其中,从所述后处理函数原型生成的所述后处理节点在所述拓扑中被指定以便根据所述引数从所接收到的数据对象中提取字段,并且提供所提取的字段作为输出。
27.根据权利要求25所述的非暂时性计算机存储介质,
其中,所述后处理函数原型是过滤原型,并且
其中,从所述后处理函数原型生成的所述后处理节点在所述拓扑中被指定以便根据所述引数对由所述后处理节点接收到的所述数据对象进行过滤,并且提供经过滤的数据对象作为输出。
28.根据权利要求25所述的非暂时性计算机存储介质,
其中,所述后处理函数原型是聚合原型,并且
其中,从所述函数原型生成的所述后处理节点在所述拓扑中被指定以便聚合由所述引数指定的一个或多个数据对象值,并且提供聚合值作为输出。
29.根据权利要求23所述的非暂时性计算机存储介质,其中,
所述查询以及所述后处理函数原型的标识符是由所述用户作为输入所提供的文本。
30.根据权利要求23所述的非暂时性计算机存储介质,其中,所述操作还包括:
接收不同的第二后处理函数原型的第二标识符,
其中,所述拓扑定义根据所述第二后处理函数原型来指定第二后处理节点,其中,所述第二后处理节点在所述拓扑中被指定以便接收由所述后处理节点输出的数据对象的流,根据所述第二后处理函数原型来对所述数据对象执行一个或多个操作,并且输出一个或多个第二被修改数据对象。
31.根据权利要求30所述的非暂时性计算机存储介质,
其中,所述查询以及所述后处理函数原型的标识符是从所述用户接收到的文本输入,其中,所述文本输入指定由所述后处理节点输出的数据对象的流以及由所述第二后处理节点接收到的数据对象的流的订阅。
32.根据权利要求23所述的非暂时性计算机存储介质,其中,
后处理函数原型的标识符是在运行时间从所述用户接收的。
33.根据权利要求23所述的非暂时性计算机存储介质,其中,所述操作还包括:
由所述流计算系统为所述一个或多个源节点、所述处理节点以及所述后处理节点中的每一个分配一个或多个计算节点,
其中,所述处理节点从所述一个或多个源节点订阅流,其中,所述后处理节点从所述处理节点订阅流。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/086980 WO2015070379A1 (en) | 2013-11-12 | 2013-11-12 | Dynamic stream computing topology |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106062739A CN106062739A (zh) | 2016-10-26 |
CN106062739B true CN106062739B (zh) | 2020-02-28 |
Family
ID=53056603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380081647.5A Active CN106062739B (zh) | 2013-11-12 | 2013-11-12 | 动态流计算拓扑 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9740745B2 (zh) |
EP (1) | EP3069271B1 (zh) |
CN (1) | CN106062739B (zh) |
WO (1) | WO2015070379A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015070379A1 (en) | 2013-11-12 | 2015-05-21 | Pivotal Software, Inc. | Dynamic stream computing topology |
US20170144893A1 (en) | 2015-11-25 | 2017-05-25 | Adrian Vazquez Torres | Desalination method by heat and condensation |
US10122788B2 (en) * | 2016-03-29 | 2018-11-06 | Amazon Technologies, Inc. | Managed function execution for processing data streams in real time |
CN112424765B (zh) * | 2018-07-20 | 2024-09-10 | 毕威拓软件公司 | 用于用户定义的函数的容器框架 |
US11169785B2 (en) * | 2019-03-11 | 2021-11-09 | Nec Corporation | Specification and execution of real-time streaming applications |
US11095522B2 (en) * | 2019-08-21 | 2021-08-17 | Microsoft Technology Licensing, Llc | Dynamic scaling for data processing streaming system |
CN112632082B (zh) * | 2020-12-30 | 2024-06-07 | 中国农业银行股份有限公司 | 一种创建Flink作业的方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682052A (zh) * | 2010-12-28 | 2012-09-19 | 微软公司 | 过滤数据存储上的查询数据 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030101253A1 (en) * | 2001-11-29 | 2003-05-29 | Takayuki Saito | Method and system for distributing data in a network |
US6978264B2 (en) * | 2002-01-03 | 2005-12-20 | Microsoft Corporation | System and method for performing a search and a browse on a query |
US7383253B1 (en) * | 2004-12-17 | 2008-06-03 | Coral 8, Inc. | Publish and subscribe capable continuous query processor for real-time data streams |
US7991766B2 (en) * | 2007-10-20 | 2011-08-02 | Oracle International Corporation | Support for user defined aggregations in a data stream management system |
US8620900B2 (en) * | 2009-02-09 | 2013-12-31 | The Hong Kong Polytechnic University | Method for using dual indices to support query expansion, relevance/non-relevance models, blind/relevance feedback and an intelligent search interface |
US8359305B1 (en) * | 2011-10-18 | 2013-01-22 | International Business Machines Corporation | Query metadata engine |
WO2015070379A1 (en) | 2013-11-12 | 2015-05-21 | Pivotal Software, Inc. | Dynamic stream computing topology |
-
2013
- 2013-11-12 WO PCT/CN2013/086980 patent/WO2015070379A1/en active Application Filing
- 2013-11-12 EP EP13897488.6A patent/EP3069271B1/en active Active
- 2013-11-12 CN CN201380081647.5A patent/CN106062739B/zh active Active
-
2014
- 2014-11-12 US US14/539,010 patent/US9740745B2/en active Active
-
2017
- 2017-07-10 US US15/646,023 patent/US9971811B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682052A (zh) * | 2010-12-28 | 2012-09-19 | 微软公司 | 过滤数据存储上的查询数据 |
Also Published As
Publication number | Publication date |
---|---|
EP3069271B1 (en) | 2020-01-08 |
EP3069271A4 (en) | 2017-07-26 |
US20160132560A1 (en) | 2016-05-12 |
CN106062739A (zh) | 2016-10-26 |
EP3069271A1 (en) | 2016-09-21 |
US9740745B2 (en) | 2017-08-22 |
US9971811B2 (en) | 2018-05-15 |
US20170308581A1 (en) | 2017-10-26 |
WO2015070379A1 (en) | 2015-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106062739B (zh) | 动态流计算拓扑 | |
US11720581B2 (en) | Query decomposition for scalability of continuous query processing | |
JP5767748B2 (ja) | ソーシャルネットワークにおいてフィードを追跡すること | |
US10885056B2 (en) | Data standardization techniques | |
US9442967B2 (en) | Systems and methods for efficient data ingestion and query processing | |
KR102049271B1 (ko) | 온라인 소셜 네트워크에서 검색 결과의 블렌딩 | |
KR101826826B1 (ko) | 온라인 소셜 네트워크에서 검색 질의에 대한 정적 순위 | |
Wang et al. | How do developers react to restful api evolution? | |
US11546380B2 (en) | System and method for creation and implementation of data processing workflows using a distributed computational graph | |
WO2017107826A1 (zh) | 一种业务信息的推送方法和装置 | |
CN107038161B (zh) | 一种用于过滤数据的设备及方法 | |
US20130198240A1 (en) | Social Network Analysis | |
WO2013106595A2 (en) | Processing store visiting data | |
CN109614402A (zh) | 多维数据查询方法和装置 | |
Coletta et al. | Public data integration with websmatch | |
Mătăcuţă et al. | Big Data Analytics: Analysis of Features and Performance of Big Data Ingestion Tools. | |
US20170060977A1 (en) | Data preparation for data mining | |
WO2014117297A1 (en) | Approximate query processing | |
CN115658680A (zh) | 数据存储方法、数据查询方法和相关装置 | |
Bellini et al. | Managing complexity of data models and performance in broker-based Internet/Web of Things architectures | |
CN107665241B (zh) | 一种实时数据多维度去重方法和装置 | |
US20150286725A1 (en) | Systems and/or methods for structuring big data based upon user-submitted data analyzing programs | |
Hashem et al. | A review of modeling toolbox for BigData | |
US11983187B2 (en) | Global status monitoring for open data platform | |
US20180189499A1 (en) | Dynamic security report generator |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: California, USA Patentee after: Pivotal Software, Inc. Country or region after: U.S.A. Address before: California, USA Patentee before: PIVOTAL SOFTWARE, Inc. Country or region before: U.S.A. |