CN104020994A - 基于流系统的流过程定义装置和流过程定义方法 - Google Patents
基于流系统的流过程定义装置和流过程定义方法 Download PDFInfo
- Publication number
- CN104020994A CN104020994A CN201410242101.XA CN201410242101A CN104020994A CN 104020994 A CN104020994 A CN 104020994A CN 201410242101 A CN201410242101 A CN 201410242101A CN 104020994 A CN104020994 A CN 104020994A
- Authority
- CN
- China
- Prior art keywords
- operator
- descriptor
- template
- parameter
- user defined
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明实施例提供了一种基于流系统的流过程定义装置及流过程定义方法,该流过程定义装置包括:算子模板配置单元,用于将用户自定义算子的可配置项和非可配置项分别设定为算子参数和算子模板文件;算子库,用于存储用户自定义算子的算子模板文件和公共算子;模板适配器,用于对应用描述文件进行解析以获取至少一个算子描述符,根据第一算子描述符中携带的算子标识从算子库中提取中第一算子描述符对应的算子模板文件,根据第一算子描述符对应的算子模板文件和第一算子描述符中携带的算子参数生成第一算子描述符对应的算子源码文件;编译器,用于对该应用描述文件中所有算子描述符生成的算子源码文件进行编译得到该应用描述文件的算子机器码文件。
Description
技术领域
本发明实施例涉及流处理领域,并且更具体地,涉及一种基于流系统的流过程定义装置和流过程定义方法。
背景技术
流计算(Stream Computing),即实时流处理,是指将待处理数据看成数据流的形式来处理。数据流是在时间分布和数量上无限的一系列数据记录的集合体;数据元组是数据流的最小组成单元。实时流计算最重要的特性是能够实现计算结果的实时响应。当数据的价值随着时间的流逝而降低,数据出现后必须尽快地对其进行处理,最好数据出现时便立刻对其进行处理,产生一个数据进行一次处理,而不是缓存起来成一批处理,这就是流计算的意义所在。
流处理系统(Stream Processing System),简称流系统,是对海量数据进行实时流计算的一套系统软件平台,包含业务应用开发套件、部署工具和控制台监控程序。用户可以在流系统上通过开发套件实现所需要的应用场景,然后部署在分布式运行环境上,再通过监控界面查看业务应用运行状况,获取数据实时分析结果。
如上所述,海量数据实时流处理的场景需求是多种多样、复杂多变的。现有技术中,流系统在面对不同的业务应用时,往往需要频繁开发自定义算子而无法实现自定义算子的可配置和可复用,流系统在开发应用上灵活性和易用性较低,用户开发复杂度较高。
发明内容
本发明实施例提供一种基于流系统的流过程定义装置和流过程定义方法,使得用户自定义算子能够通过参数配置实现在不同场景下的复用,解决了流系统中用户自定义算子无法通用化,用户无法扩展算子库的问题,提高了流系统的易用性、灵活性。
第一方面,提供了一种基于流系统的流过程定义装置,该流过程定义装置包括:算子模板配置单元、算子库、模板适配器和编译器,其中,算子模板配置单元,用于在流系统中将用户自定义算子的可配置项设定为算子参数,将所述用户自定义算子的非可配置项设定为算子模板文件并将所述算子模板文件存储于所述算子库中;算子库,用于存储所述流系统中的公共算子和所述流系统中用户自定义算子的算子模板文件;模板适配器,用于对应用描述文件进行解析以获取所述应用描述文件的至少一个算子描述符,其中,所述应用描述文件用于对业务应用在所述流系统的流过程进行描述定义,所述算子描述符用于对所述业务应用的一个算子进行描述定义,所述算子描述符携带所述算子的算子标识和算子参数,所述算子的算子参数能够表示所述算子与所述业务应用中其它算子之间的逻辑关系;所述模板适配器还用于当所述至少一个算子描述符中的第一算子描述符的算子标识为用户自定义算子时,根据所述第一算子描述符中携带的算子标识从所述算子库中提取中所述第一算子描述符对应的算子模板文件,根据所述第一算子描述符对应的算子模板文件和所述第一算子描述符中携带的算子参数生成所述第一算子描述符对应的算子源码文件;编译器,用于对所述应用描述文件中所有算子描述符生成的算子源码文件进行编译得到所述应用描述文件的算子机器码文件,所述应用描述文件的算子机器码文件能够被所述流系统部署形成所述业务应用的流过程。
结合第一方面,在第一种可能的实现方式中,在用于根据所述第一算子描述符对应的算子模板文件和所述第一算子描述符中携带的算子参数生成所述第一算子描述符的算子源码文件的过程中,所述模板适配器具体用于对所述第一算子描述符对应的算子模板文件进行解析,并根据关键字匹配将所述第一算子描述符中携带的算子参数扩展填充到所述第一算子描述符对应的算子模板文件以生成所述第一算子描述符的算子源码文件。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,当所述第一算子描述符中携带的算子参数为表达式参数时,在用于根据关键字匹配将所述第一算子描述符中携带的算子参数扩展填充到所述第一算子描述符对应的算子模板文件以生成所述第一算子描述符的算子源码文件的过程中,所述模板适配器具体用于根据关键字匹配从所述第一算子描述符中获取对应的表达式参数,并对所述表达式参数进行表达式解析、转换并展开在所述第一算子描述符对应的算子源码文件中。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述流过程定义装置还包括第一算子代码优化生成器,用于对所述第一算子描述符对应的算子源码文件进行处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立。
结合第一方面或第一方面的第一种可能的实现方式至第一方面的第三种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,所述流过程定义装置还包括第二算子代码优化生成器,用于对所述应用描述文件的至少一个算子描述符对应的算子之间的功能逻辑进行合并或拆分。
第二方面,提供了一种基于流系统的流过程定义方法,,该流过程定义方法包括:对应用描述文件进行解析以获取所述应用描述文件的至少一个算子描述符,其中,所述应用描述文件用于对业务应用在所述流系统的流过程进行描述定义,所述算子描述符用于对所述业务应用的一个算子进行描述定义,所述算子描述符携带所述算子的算子标识和算子参数,所述算子的算子参数能够表示所述算子与所述业务应用中其它算子之间的逻辑关系;当所述至少一个算子描述符中的第一算子描述符的算子标识为用户自定义算子时,根据所述第一算子描述符中携带的算子标识从所述算子库中提取中所述第一算子描述符对应的算子模板文件,根据所述第一算子描述符对应的算子模板文件和所述第一算子描述符中携带的算子参数生成所述第一算子描述符对应的算子源码文件;对所述应用描述文件中所有算子描述符生成的算子源码文件进行编译得到所述应用描述文件的算子机器码文件;其中,所述算子参数为所述用户自定义算子的可配置项,所述算子模板文件为所述用户自定义算子的非可配置项,所述算子库用于存储所述流系统中的公共算子和所述流系统中用户自定义算子的算子模板文件,所述应用描述文件的算子机器码文件能够被所述流系统部署形成所述业务应用的流过程。
结合第二方面,在第一种可能的实现方式中,根据所述第一算子描述符对应的算子模板文件和所述第一算子描述符中携带的算子参数生成所述第一算子描述符的算子源码文件的过程中具体实现为:对所述第一算子描述符对应的算子模板文件进行解析,并根据关键字匹配将所述第一算子描述符中携带的算子参数扩展填充到所述第一算子描述符对应的算子模板文件以生成所述第一算子描述符的算子源码文件。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,具体实现为:当所述第一算子描述符中携带的算子参数为表达式参数时,根据关键字匹配将所述第一算子描述符中携带的算子参数扩展填充到所述第一算子描述符对应的算子模板文件以生成所述第一算子描述符的算子源码文件具体实现为:根据关键字匹配从所述第一算子描述符中获取对应的表达式参数,并对所述表达式参数进行表达式解析、转换并展开在所述第一算子描述符对应的算子源码文件中。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:对所述第一算子描述符对应的算子源码文件进行处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立。
结合第二方面或第二方面的第一种可能的实现方式至第二方面的第三种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:对所述应用描述文件的至少一个算子描述符对应的算子之间的功能逻辑进行合并或拆分。
结合第二方面或第二方面的第一种可能的实现方式至第二方面的第四种可能的实现方式中任一种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:将所述用户自定义算子的可配置项设定为所述用户自定义算子的算子参数,将所述用户自定义算子的非可配置项设定为所述用户自定义算子的算子模板文件。
基于以上技术方案,本发明实施例的流系统的流过程定义装置和流过程定义方法,通过对应用描述文件解析获取算子描述符,并在算子描述符的算子为用户自定义算子时,根据算子描述符中携带的算子标识从算子库中提取用户自定义算子的算子模板文件,并以算子描述符中携带的算子参数将算子模板文件具体化成算子源码文件,进而通过编译器进行编译得到算子机器码文件,实现对应用描述文件所描述的业务应用的流过程定义,从而使得用户自定义算子能够通过参数配置实现在不同场景下的复用,解决了流系统中用户自定义算子无法通用化,用户无法扩展算子库的问题,提高了流系统的易用性、灵活性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例流处理平台架构示意图。
图2是本发明实施例基于流系统的流过程定义方法流程图
图3是本发明实施例用户自定义流过程定义的具体方法流程图。
图4是本发明实施例的一个用户自定义算子的算子模板文件及SAL流图描述文件。
图5是本发明实施例的一个SAL应用描述文件。
图6是缓存元组的自适应索引建立方法示意图。
图7是本发明实施例算子逻辑功能合并示意图。
图8是本发明实施例算子逻辑功能拆分示意图。
图9是本发明实施例应用描述文件加载生成算子机器码文件的流程示意图。
图10是本发明实施例流过程定义装置示意图。
图11是本发明实施例另一流过程定义装置示意图。
图12是本发明实施例再一流过程定义装置示意图。
图13是本发明实施例再一流过程定义装置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素。
图1是本发明实施例流处理平台架构示意图。如图1所示,一个流处理平台可包括底层的资源管理模块、任务调度模块、状态/资源监控模块、数据传输和存储模块,以及上层可运行的各种算子处理单元,套件开发的用户界面和可选用的算子库等。当然,流处理平台的架构并不仅限于图1所示的架构,还可以在图1的基础上添加或删减部分子系统或模块。用户在流系统上开发应用场景时,通过用户界面完成应用定制再将应用部署在流系统平台上实现应用的流式计算处理。
为了提高流系统的灵活性,减少不同场景的重复开发和编码工作,提高系统的易用性,提升用户使用效率,本发明实施例提出了一种基于流系统的流过程定义装置及流过程定义方法。
图2是本发明实施例基于流系统的流过程定义方法流程图。图2的方法由流系统中的流过程定义装置执行。
201,对应用描述文件进行解析以获取该应用描述文件的至少一个算子描述符。
其中,该应用描述文件用于对业务应用在该流系统的流过程进行描述定义,该算子描述符用于对该业务应用的一个算子进行描述定义,该算子描述符携带该算子的算子标识和算子参数,该算子的算子参数能够表示该算子与该业务应用中其它算子之间的逻辑关系。
应理解,本发明实施例中,算子参数可包括输入参数和输出参数。其中,输入参数可以是与其它算子无关的参数,或者是其它算子的输出参数,通过算子参数,可以确定算子之间的逻辑关系,更具体地说,可以确定算子之间的状态转移关系。应理解,算子参数中通常会包括输入参数,但不一定包括输出参数。
202,当该至少一个算子描述符中的第一算子描述符的算子标识为用户自定义算子时,根据该第一算子描述符中携带的算子标识从该算子库中提取中该第一算子描述符对应的算子模板文件,根据该第一算子描述符对应的算子模板文件和该第一算子描述符中携带的算子参数生成该第一算子描述符对应的算子源码文件。
203,根据该应用描述文件中每一个算子描述符对应的算子源码文件以及算子描述符中携带的算子逻辑关系进行编译得到该应用描述文件的算子机器码文件。
其中,该算子参数为该用户自定义算子的可配置项,该算子模板文件为该用户自定义算子的非可配置项,该算子库用于存储该流系统中的公共算子和该流系统中用户自定义算子的算子模板文件,该应用描述文件的算子机器码文件能够被该流系统部署形成该业务应用的流过程。
本发明实施例中,通过对应用描述文件解析获取算子描述符,并在算子描述符的算子为用户自定义算子时,根据算子描述符中携带的算子标识从算子库中提取用户自定义算子的算子模板文件,并以算子描述符中携带的算子参数将算子模板文件具体化成算子源码文件,进而通过编译器进行编译得到算子机器码文件,实现对应用描述文件所描述的业务应用的流过程定义,从而使得用户自定义算子能够通过参数配置实现在不同场景下的复用,解决了流系统中用户自定义算子无法通用化,用户无法扩展算子库的问题,提高了流系统的易用性、灵活性。
另外,本发明实施例的方法,还能够简化用户自定义算子的开发过程,避免相似算子的重复开发。
另外,应理解,本发明实施例中,如果算子描述符中的算子为公共算子,则流过程定义装置可从算子库中提取公共算子,并根据算子描述符中携带的算子参数及公共算子形成公共算子的算子源码文件,具体实现可参考现有技术,本发明实施例在此不再赘述。
具体地,步骤202中,根据该第一算子描述符对应的算子模板文件和该第一算子描述符中携带的算子参数生成该第一算子描述符的算子源码文件的过程中具体可实现为:对该第一算子描述符对应的算子模板文件进行解析,并根据关键字匹配将该第一算子描述符中携带的算子参数扩展填充到该第一算子描述符对应的算子模板文件以生成该第一算子描述符的算子源码文件。通过关键字将用户自定义算子的算子参数扩展到用户自定义算子中以将用户自定义算子转换为算子源码文件进行编译,从而能够在流系统中将用户自定义算子通用化,可以根据算子参数的不同实现在不同场景的复用。
更进一步地,该算子参数可包括表达式参数。当该算子参数为表达式参数时,根据关键字匹配将该第一算子描述符中携带的算子参数扩展填充到该第一算子描述符对应的算子模板文件以生成该第一算子描述符的算子源码文件具体可实现为:根据关键字匹配从该第一算子描述符中获取对应的表达式参数,并对该表达式参数进行表达式解析、转换并展开在该第一算子描述符对应的算子源码文件中。通过采用表达式参数作为算子参数,可以使得用户自定义算子以较小的开发复杂度实现较为复杂的算子功能,减小用户自定义算子的开发复杂度。
可选地,该方法还可包括:对该第一算子描述符对应的算子源码文件进行处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立等。通过对用户自定义算子的算子源码文件进行处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立,能够优化用户自定义算子的运行效率,进而提高流系统的工作效率。
可选地,该方法还可包括::对该应用描述文件的至少一个算子描述符对应的算子之间的功能逻辑进行合并或拆分。通过对算子之间的功能逻辑进行合并或拆分,能够均衡业务应用的流过程中算子的复杂度。
可选地,该方法还可包括:将该用户自定义算子的可配置项设定为该用户自定义算子的算子参数,将该用户自定义算子的非可配置项设定为该用户自定义算子的算子模板文件。通过将用户自定义算子的可配置项和非可配置项分别设定为算子参数和算子模板文件,使得流过程定义装置能够在调度用户自定义算子时根据应用场景调整算子参数,从而实现用户自定义算子的复用,减少了用户自定义算子的开发工作量。
下面,将结合具体的例子,对本发明实施例的方法作进一步的描述。
图3是本发明实施例用户自定义流过程定义的具体方法流程图。
301,用户编写算子模板文件实现用户自定义算子。
具体地,用户在编写算子模板文件时,可利用高级语言编写实现算子的处理逻辑,并将处理逻辑中可配置项抽象为算子参数,以关键字和参数名填充;然后将参数化的算子模板文件添加到流系统算子库中。其中,该关键字用于标识算子参数。
算子模板文件(.tpl)支持半源码式的编程语言,即支持用户以源码方式实现算子逻辑,同时也支持+关键字+<参数>方式实现参数化的编程。图4是本发明实施例的一个用户自定义算子的算子模板文件及SAL流图描述文件。如图4所示,模板文件“split.tpl”实现一个自定义的按表达式条件分发的算子。在模板文件split.tpl中采用参数化的判断条件parameter<expression1>,关键字“parameter”,参数名为“expression1”。
应理解,在具体的应用中,步骤301并不是每次都要执行。如果用户自定义算子的算子模板文件已经存在于算子库中,则步骤301不用执行。
302,用户在描述具体应用场景的SAL文件中配置用户自定义算子的算子参数。
应用描述文件可采用多种业务描述语言进行描述,本发明实施例中,采用流分析语言(Stream Analysis Language,SAL)对业务场景进行描述。SAL是与流式应用场景相对应的一种业务描述语言,用户将流式业务场景以SAL文件的形式描述,SAL中可记录:(i)流图中算子的类型、参数等算子配置信息;(ii)连接算子之间的数据流的格式定义等。
图5是本发明实施例的一个SAL应用描述文件。如图5所示,在SAL中,可用<schema>标签表示一个流格式的描述段;用<operator>标签表示一个算子描述段,包括:输入流及其类型、输出流及其类型、参数化的算子配置等。例如,从图5可以看出,用户自定义算子的算子标识为“Filter”,并给出了算子参数expression1、expression2和expression3的具体表达式,详见图5。
如图4所示的SAL流图描述文件所示,用户可在SAL中通过配置expression1=“in.attr1>=in.attr2*0.9”,配置用户自定义算子split在具体业务应用中的表达式参数值,in表示输入参数。
303,模板适配器根据SAL文件中配置的算子参数具体化用户自定义算子的算子模板文件。
在根据算子参数对用户自定义算子的算子模板文件进行具体化操作时,模板适配器首先要对算子模板文件进行解析,然后根据解析结果对算子模板文件中的关键字(token)进行匹配,并在token匹配成功时,根据token生成用户自定义算子的算子专有方法。用户自定义算子的算子专有方法即为用户自定义算子的算子模板文件具体化的结果。根据token生成算子专有方法的具体步骤可包含:表达式匹配、表达式解析和表达式转换三个子步骤。
以图4为例,split.tpl具体化的结果如下所示:
304,算子代码优化生成器将具体化的算子模板文件经过优化,预编译生成算子源码文件。
算子模板文件具体化以后,就形成一个用户自定义算子的算子专有方法。此时,可进一步地进行单算子优化。具体地,在对单个用户自定义算子内部实现进行优化时,可通过算子代码优化生成器对具体化的算子模板文件进行优化,包括:对用户自定义算子进行处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立等。处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立的具体实现可参考现有技术。以存储数据自适应索引建立为例,算子代码优化生成器可在适配阶段提取元组的关注属性,并以关注属性为索引关键字建立索引树,提升查找效率。图6是缓存元组的自适应索引建立方法示意图。在图6中,当算子代码优化生成器提取到一个新到元组时,则进行索引匹配,如果无索引缓存,则输入元组缓存,然后读取缓存元组;如果存在索引缓存,则直接根据索引读取缓存元组。另外,对于无索引缓存的元组,可通过自适应索引建立方法建立该元组的索引。
另外,算子代码优化生成器还可对SAL文件中的多个算子之间的功能逻辑进行优化。具体地,算子代码优化生成器可对多个算子之间的功能逻辑进行合并或拆分。算子代码优化生成器可根据算子逻辑分支、代码指令类型等估算算子复杂度和算子平均复杂度,从而确定是否对算子进行合并或拆分。应理解,在进行合并或拆分操作时,该算子并不局限于用户自定义算子,还可包括公共算子。公共算子的算子源码文件提取方式可参考现有技术,本发明实施例在此不再赘述。
算子代码优化生成器可对邻近的低复杂度算子粘合,减少算子之间的元组传递,均衡算子的复杂度。图7是本发明实施例算子逻辑功能合并示意图。在图7中,虚线框区域内的算子3和算子2的复杂度较低,且两个算子能够合并,则此时算子代码优化生成器可对算子3和算子2进行合并形成算子4,合并后的算子4的功能等价于合并前虚线框区域内的算子3和算子2的功能。
算子代码优化生成器还可对复杂度高的算子进行拆分。图8是本发明实施例算子逻辑功能拆分示意图。在图8中,算子8复杂度较高,且能够拆分成多个复杂度较低的算子。则此时算子代码优化生成器可对算子8进行拆分形成虚线框区域内的算子8.1、算子8.2、算子8.3、算子8.4和算子8.5。虚线框区域内的算子8.1、算子8.2、算子8.3、算子8.4和算子8.5整体的功能等价于拆分前算子8的功能。
算子间合并或拆分的方法可参考现有技术,本发明实施例在此不再赘述。
应理解,本发明实施例中,增加算子代码优化生成器只是一种优选的方案,能够起到算子优化的作用。在实际的应用中,不包含算子代码优化生成器的功能也能实现本发明图2所示的方法。
305,编译器将算子源码文件进行系统编译得到能够被部署运行的机器码文件。
形成算子源码文件后,编译器可对算子源码文件进行编译,从而形成业务应用的算子。
图9是本发明实施例应用描述文件加载生成算子机器码文件的流程示意图。
910,SAL应用加载。
流系统可通过流过程定义装置加载SAL应用描述文件,从而加载SAL应用。其中,SAL应用描述文件用于对SAL应用在流系统的流过程进行定义,所采用的描述语言为SAL语言。
应理解,本发明实施例中,也可采用其它描述语言对业务应用进行定义,本发明实施例在此不作限制。
920,应用解析。
流系统可通过流过程定义装置对SAL应用描述文件进行解析。
具体地,流系统可通过流过程定义装置的模板适配器对SAL应用描述文件进行解析,从而得到SAL应用描述文件中的算子描述符。该算子描述符用于对SAL应用的一个算子进行描述定义,该算子描述符可包括算子的算子标识、算子参数等。应理解,SAL应用描述文件中的算子描述符,可以是用户自定义算子的算子描述符,也可以是公共算子的算子描述符。
如图9所示,对SAL应用描述文件进行应用解析后,可得到算子1描述符、算子2描述符等若干个算子描述符。
930,算子通用方法生成。
本发明实施例中,流过程定义装置可先处理公共算子的算子描述符。
算子库中可存储流系统的公共算子,流过程定义装置可从算子库中提取公共算子的算子通用方法,并将公共算子的算子描述符中携带的算子参数具体化在公共算子的算子通用方法中,形成公共算子的算子源码文件。
940,判断是否存在未处理用户自定义算子。
在处理完公共算子的算子描述符后,流过程定义装置可对用户自定义算子的算子描述符进行处理,生成用户自定义算子的算子源码文件。
如果还存在未处理的用户自定义算子的算子描述符,则对执行步骤950;否则,执行步骤990。
950,匹配算子模板文件并解析。
算子库还可存储用户自定义算子的算子模板文件。在具体的应用中,算子库可进一步划分成公共算子库和算子模板库,其中,公共算子库用于存储公共算子,算子模板库可存储用户自定义算子的算子模板文件。
流过程定义装置可通过模板适配器从用户自定义算子的算子描述符中得到用户自定义算子的算子标识,并根据用户自定义算子的算子标识从算子库中获取对应的算子模板文件。例如,当算子1描述符的算子标识为“join”时,模板适配器可从算子库中获取名为“join.tpl”的算子模板文件。
模板适配器获取到算子模板文件后,可对算子模板文件进行解析,从而建立算子模板文件的上下文语法,以便将算子描述符中的算子参数具体化到算子模板文件中。
960,判断是否存在关键字匹配。
在将算子参数具体化到算子模板文件的过程中,模板适配器要判断算子模板文件是否存在关键字匹配。
模板适配器可根据步骤950解析的结果,进行token匹配的判断操作。
如果存在关键字匹配,则执行步骤970。
如果不存在关键字匹配,则执行步骤980。
以图4的“split.tpl”为例,如果模板适配器匹配到关键字parameter,即可执行步骤970。
970,根据关键字具体化算子模板文件。
具体地,模板适配器在根据token具体化算子模板文件时,可通过步骤971、972、973实现。
971,匹配算子描述符中关键字表达式。
模板适配器可根据算子模板文件中关键字的内容,匹配算子描述符中关键字表达式。
以图4为例,模板适配器在第一次关键字匹配时,可以匹配得到“expression1”在算子描述符中的关键字表达式“expression1=“in.attr1>=in.attr2*0.9””。
972,表达式解析。
模板适配器可对算子描述符中的关键字表达式进行解析以获取算子参数。以“expression1=“in.attr1>=in.attr2*0.9””为例,模板适配器可得到“expression1”的算子参数“in.attr1>=in.attr2*0.9”。
973,表达式转换。
此时,模板适配器可对表达式进行转换,将算子参数具体化到算子模板文件中。以图4为例,模板适配器可在算子模板文件中将“parameter<expression1>”转换为“in.attr1>=in.attr2*0.9”。
步骤971、972、973的具体实现可参考现有技术,本发明实施例在此不再赘述。
以图4的“split.tpl”为例,对步骤960、970的执行过程进行描述。
“split.tpl”的初始内容为:
第一次执行步骤960,模板适配器判断“split.tpl”中存在关键字匹配,并第一次执行步骤970。此时,“split.tpl”的内容为:
第二次执行步骤960,模板适配器判断“split.tpl”中还存在关键字匹配,并第二次执行步骤970。此时,“split.tpl”的内容为:
第三次执行步骤960,模板适配器判断“split.tpl”中不存在关键字匹配。此时,执行步骤980。
应理解,模板适配器在对算子模板文件具体化的过程中,只是对读出的算子模板文件进行操作,并不会影响到算子库的算子模板文件。
980,生成算子专有方法。
如果模板适配器判断已经不存在关键字匹配,则说明算子模板文件具体化完毕,可将算子模板文件的内容输出,生成用户自定义算子的算子专有方法。然后,执行步骤940,对下一个用户自定义算子的算子描述符进行处理操作。
优选地,在生成用户自定义算子的算子源码文件后,还可通过算子代码优化生成器对该用户自定义算子的算子源码文件进行优化,包括:对用户自定义算子进行处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立等。
优选地,在处理完所有用户自定义算子的算子描述符后,还可通过算子代码优化生成器对SAL应用的所有算子之间的功能逻辑进行优化,包括:对SAL应用中多个算子之间的功能逻辑的合并或拆分。应理解,由于合并或拆分操作的存在,最终生成的算子源码文件的个数可以不等于用户自定义算子的算子描述符的个数。
990,编译器执行算子代码编译,生成算子机器码文件。
编译器统一对步骤980中生成的算子源码文件进行算子代码编译,从而生成可执行的算子机器码文件。如图9所示,可生成算子1动态链接库、算子2动态链接库等。至此,SAL应用的流过程定义完成。流系统可基于SAL应用的流过程进行工作。
另外,应理解,本发明图9中只是示出了一种SAL应用加载的流程,在具体的应用中,还可对该流程进行调整,本发明实施例对此并不作限制。例如,流过程定义装置可轮流处理所有算子描述符,如果是公共算子则按公共算子进行处理,如果是用户自定义算子则按用户自定义算子进行处理,最后再进行编译。
图10是本发明实施例流过程定义装置1000的结构示意图。流过程定义装置1000是基于流系统的流过程定义装置,在具体的应用中,流过程定义装置1000可以是流系统的一个子系统。流过程定义装置1000可包括:算子模板配置单元1001、算子库1002、模板适配器1003和编译器1004。其中,
算子模板配置单元1001,用于在流系统中将用户自定义算子的可配置项设定为算子参数,将该用户自定义算子的非可配置项设定为算子模板文件,并将该算子模板文件存储于算子库1002中。
算子库1002,用于存储该流系统中的公共算子和该流系统中用户自定义算子的算子模板文件。
模板适配器1003,用于对应用描述文件进行解析以获取该应用描述文件的至少一个算子描述符,其中,该应用描述文件用于对业务应用在该流系统的流过程进行描述定义,该算子描述符用于对该业务应用的一个算子进行描述定义,该算子描述符携带该算子的算子标识和算子参数,该算子的算子参数能够表示该算子与该业务应用中其它算子之间的逻辑关系。
模板适配器1003还用于当该至少一个算子描述符中的第一算子描述符的算子标识为用户自定义算子时,根据该第一算子描述符中携带的算子标识从该算子库中提取中该第一算子描述符对应的算子模板文件,根据该第一算子描述符对应的算子模板文件和该第一算子描述符中携带的算子参数生成该第一算子描述符对应的算子源码文件。
编译器1004,用于对该应用描述文件中所有算子描述符生成的算子源码文件进行编译得到该应用描述文件的算子机器码文件,该应用描述文件的算子机器码文件能够被该流系统部署形成该业务应用的流过程。
本发明实施例中,流过程定义装置1000通过对应用描述文件解析获取算子描述符,并在算子描述符的算子为用户自定义算子时,根据算子描述符中携带的算子标识从算子库中提取用户自定义算子的算子模板文件,并以算子描述符中携带的算子参数将算子模板文件具体化成算子源码文件,进而通过编译器进行编译得到算子机器码文件,实现对应用描述文件所描述的业务应用的流过程定义,从而使得用户自定义算子能够通过参数配置实现在不同场景下的复用,解决了流系统中用户自定义算子无法通用化,用户无法扩展算子库的问题,提高了流系统的易用性、灵活性。
另外,本发明实施例中,流过程定义装置1000还简化用户自定义算子的开发过程,避免相似算子的重复开发。
具体地,在用于根据该第一算子描述符对应的算子模板文件和该第一算子描述符中携带的算子参数生成该第一算子描述符的算子源码文件的过程中,模板适配器1002具体用于对该第一算子描述符对应的算子模板文件进行解析,并根据关键字匹配将该第一算子描述符中携带的算子参数扩展填充到该第一算子描述符对应的算子模板文件以生成该第一算子描述符的算子源码文件。
更进一步地,该算子参数还可包括表达式参数。当该第一算子描述符中携带的算子参数为表达式参数时,在用于根据关键字匹配将该第一算子描述符中携带的算子参数扩展填充到该第一算子描述符对应的算子模板文件以生成该第一算子描述符的算子源码文件的过程中,模板适配器1002具体用于根据关键字匹配从该第一算子描述符中获取对应的表达式参数,并对该表达式参数进行表达式解析、转换并展开在该第一算子描述符对应的算子源码文件中。
可选地,如图11所示,流过程定义装置1000还可包括:第一算子代码优化生成器1005。其中,第一算子代码优化生成器1005用于对该第一算子描述符对应的算子源码文件进行处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立,以便提高用户自定义算子的运行效率。具体地,处理逻辑优化和表达式优化可以从运算处理上提高提高用户自定义算子的运行效率,存储数据自适应索引建立可以加快算子的关键字查找效率,存储数据存储结构建立可以从数据结构的角度优化用户自定义算子。
可选地,如图11所示,流过程定义装置1000还可包括:第二算子代码优化生成器1006。其中,第二算子代码优化生成器1006用于对该应用描述文件的至少一个算子描述符对应的算子之间的功能逻辑进行合并或拆分。根据算子逻辑分支、代码指令类型等估算算子复杂度和算子平均复杂度,对邻近的低复杂度算子粘合,减少算子之间的元组传递,对高复杂度的算子进行拆分,从而能够均衡每个算子的复杂度。
在具体的应用中,第一算子代码优化生成器1005和第二算子代码优化生成器1006通常可以合并成一个算子代码优化生成器1007,具体可如图12所示。
另外,流过程定义装置1000还可执行图2的方法,并具备流过程定义装置在图2、图3、图9所示实施例的功能,本发明实施例在此不再赘述。
图13是本发明实施例流过程定义装置1300的结构示意图。流过程定义装置1300是基于流系统的流过程定义装置,流过程定义装置1300可包括:通信接口1301、处理器1302和存储器1303。
通信接口1301、处理器1302和存储器1303通过总线1304系统相互连接。总线1304可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器1303,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器1303可以包括只读存储器和随机存取存储器,并向处理器1302提供指令和数据。存储器1303可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。本发明实施例中,存储器可用于存储流系统的算子库,该算子库用于存储该流系统中的公共算子和该流系统中用户自定义算子的算子模板文件。
处理器1302,用于调用存储器1303所存放的程序,并具体用于执行以下操作:
在流系统中将用户自定义算子的可配置项设定为算子参数,将该用户自定义算子的非可配置项设定为算子模板文件,并将该算子模板文件存储于存储器1303的算子库中;
通过通信接口1301加载应用描述文件;
对该应用描述文件进行解析以获取该应用描述文件的至少一个算子描述符,其中,该应用描述文件用于对业务应用在该流系统的流过程进行描述定义,该算子描述符用于对该业务应用的一个算子进行描述定义,该算子描述符携带该算子的算子标识和算子参数,该算子的算子参数能够表示该算子与该业务应用中其它算子之间的逻辑关系;
当该至少一个算子描述符中的第一算子描述符的算子标识为用户自定义算子时,根据该第一算子描述符中携带的算子标识从该算子库中提取中该第一算子描述符对应的算子模板文件,根据该第一算子描述符对应的算子模板文件和该第一算子描述符中携带的算子参数生成该第一算子描述符对应的算子源码文件;
对该应用描述文件中所有算子描述符生成的算子源码文件进行编译得到该应用描述文件的算子机器码文件并通过通信接口1301输出,其中,该应用描述文件的算子机器码文件能够被该流系统部署形成该业务应用的流过程。
上述如本发明图2、图3、图9中任一实施例揭示的流过程定义装置执行的方法可以应用于处理器1302中,或者由处理器1302实现。处理器1302可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1302中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1302可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1303,处理器1302读取存储器1303中的信息,结合其硬件完成上述方法的步骤。
本发明实施例中,流过程定义装置1300通过对应用描述文件解析获取算子描述符,并在算子描述符的算子为用户自定义算子时,根据算子描述符中携带的算子标识从算子库中提取用户自定义算子的算子模板文件,并以算子描述符中携带的算子参数将算子模板文件具体化成算子源码文件,进而通过编译器进行编译得到算子机器码文件,实现对应用描述文件所描述的业务应用的流过程定义,从而使得用户自定义算子能够通过参数配置实现在不同场景下的复用,解决了流系统中用户自定义算子无法通用化,用户无法扩展算子库的问题,提高了流系统的易用性、灵活性。
另外,本发明实施例中,流过程定义装置1300还简化用户自定义算子的开发过程,避免相似算子的重复开发。
具体地,在用于根据该第一算子描述符对应的算子模板文件和该第一算子描述符中携带的算子参数生成该第一算子描述符的算子源码文件的过程中,处理器1302具体用于对该第一算子描述符对应的算子模板文件进行解析,并根据关键字匹配将该第一算子描述符中携带的算子参数扩展填充到该第一算子描述符对应的算子模板文件以生成该第一算子描述符的算子源码文件。
更进一步地,该算子参数还可包括表达式参数。当该第一算子描述符中携带的算子参数为表达式参数时,在用于根据关键字匹配将该第一算子描述符中携带的算子参数扩展填充到该第一算子描述符对应的算子模板文件以生成该第一算子描述符的算子源码文件的过程中,处理器1302具体还用于根据关键字匹配从该第一算子描述符中获取对应的表达式参数,并对该表达式参数进行表达式解析、转换并展开在该第一算子描述符对应的算子源码文件中。
可选地,处理器1302还可用于对该第一算子描述符对应的算子源码文件进行处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立,以便提高用户自定义算子的运行效率。具体地,处理逻辑优化和表达式优化可以从运算处理上提高提高用户自定义算子的运行效率,存储数据自适应索引建立可以加快算子的关键字查找效率,存储数据存储结构建立可以从数据结构的角度优化用户自定义算子。
可选地,处理器1302还可用于对该应用描述文件的至少一个算子描述符对应的算子之间的功能逻辑进行合并或拆分。根据算子逻辑分支、代码指令类型等估算算子复杂度和算子平均复杂度,对邻近的低复杂度算子粘合,减少算子之间的元组传递,对高复杂度的算子进行拆分,从而能够均衡每个算子的复杂度。
另外,流过程定义装置1300还可执行图2的方法,并具备流过程定义装置在图2、图3、图9所示实施例的功能,本发明实施例在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种基于流系统的流过程定义装置,其特征在于,包括:算子模板配置单元、算子库、模板适配器和编译器,其中,
算子模板配置单元,用于在流系统中将用户自定义算子的可配置项设定为算子参数,将所述用户自定义算子的非可配置项设定为算子模板文件,并将所述算子模板文件存储于所述算子库中;
算子库,用于存储所述流系统中的公共算子和所述流系统中用户自定义算子的算子模板文件;
模板适配器,用于对应用描述文件进行解析以获取所述应用描述文件的至少一个算子描述符,其中,所述应用描述文件用于对业务应用在所述流系统的流过程进行描述定义,所述算子描述符用于对所述业务应用的一个算子进行描述定义,所述算子描述符携带所述算子的算子标识和算子参数,所述算子的算子参数能够表示所述算子与所述业务应用中其它算子之间的逻辑关系;
所述模板适配器还用于当所述至少一个算子描述符中的第一算子描述符的算子标识为用户自定义算子时,根据所述第一算子描述符中携带的算子标识从所述算子库中提取中所述第一算子描述符对应的算子模板文件,根据所述第一算子描述符对应的算子模板文件和所述第一算子描述符中携带的算子参数生成所述第一算子描述符对应的算子源码文件;
编译器,用于对所述应用描述文件中所有算子描述符生成的算子源码文件进行编译得到所述应用描述文件的算子机器码文件,所述应用描述文件的算子机器码文件能够被所述流系统部署形成所述业务应用的流过程。
2.如权利要求1所述的流过程定义装置,其特征在于,在用于根据所述第一算子描述符对应的算子模板文件和所述第一算子描述符中携带的算子参数生成所述第一算子描述符的算子源码文件的过程中,所述模板适配器具体用于对所述第一算子描述符对应的算子模板文件进行解析,并根据关键字匹配将所述第一算子描述符中携带的算子参数扩展填充到所述第一算子描述符对应的算子模板文件以生成所述第一算子描述符的算子源码文件。
3.如权利要求2所述的流过程定义装置,其特征在于,当所述第一算子描述符中携带的算子参数为表达式参数时,在用于根据关键字匹配将所述第一算子描述符中携带的算子参数扩展填充到所述第一算子描述符对应的算子模板文件以生成所述第一算子描述符的算子源码文件的过程中,所述模板适配器具体用于根据关键字匹配从所述第一算子描述符中获取对应的表达式参数,并对所述表达式参数进行表达式解析、转换并展开在所述第一算子描述符对应的算子源码文件中。
4.如权利要求1至3任一项所述的流过程定义装置,其特征在于,所述流过程定义装置还包括第一算子代码优化生成器,用于对所述第一算子描述符对应的算子源码文件进行处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立。
5.如权利要求1至4任一项所述的流过程定义装置,其特征在于,所述流过程定义装置还包括第二算子代码优化生成器,用于对所述应用描述文件的至少一个算子描述符对应的算子之间的功能逻辑进行合并或拆分。
6.一种基于流系统的流过程定义方法,其特征在于,包括:
对应用描述文件进行解析以获取所述应用描述文件的至少一个算子描述符,其中,所述应用描述文件用于对业务应用在所述流系统的流过程进行描述定义,所述算子描述符用于对所述业务应用的一个算子进行描述定义,所述算子描述符携带所述算子的算子标识和算子参数,所述算子的算子参数能够表示所述算子与所述业务应用中其它算子之间的逻辑关系;
当所述至少一个算子描述符中的第一算子描述符的算子标识为用户自定义算子时,根据所述第一算子描述符中携带的算子标识从所述算子库中提取中所述第一算子描述符对应的算子模板文件,根据所述第一算子描述符对应的算子模板文件和所述第一算子描述符中携带的算子参数生成所述第一算子描述符对应的算子源码文件;
对所述应用描述文件中所有算子描述符生成的算子源码文件进行编译得到所述应用描述文件的算子机器码文件;
其中,所述算子参数为所述用户自定义算子的可配置项,所述算子模板文件为所述用户自定义算子的非可配置项,所述算子库用于存储所述流系统中的公共算子和所述流系统中用户自定义算子的算子模板文件,所述应用描述文件的算子机器码文件能够被所述流系统部署形成所述业务应用的流过程。
7.如权利要求6所述的方法,其特征在于,所述根据所述第一算子描述符对应的算子模板文件和所述第一算子描述符中携带的算子参数生成所述第一算子描述符的算子源码文件的过程中包括:
对所述第一算子描述符对应的算子模板文件进行解析,并根据关键字匹配将所述第一算子描述符中携带的算子参数扩展填充到所述第一算子描述符对应的算子模板文件以生成所述第一算子描述符的算子源码文件。
8.如权利要求7所述的方法,其特征在于,当所述第一算子描述符中携带的算子参数为表达式参数时,所述根据关键字匹配将所述第一算子描述符中携带的算子参数扩展填充到所述第一算子描述符对应的算子模板文件以生成所述第一算子描述符的算子源码文件包括:
根据关键字匹配从所述第一算子描述符中获取对应的表达式参数,并对所述表达式参数进行表达式解析、转换并展开在所述第一算子描述符对应的算子源码文件中。
9.如权利要求6至8任一项所述的方法,其特征在于,所述方法还包括:对所述第一算子描述符对应的算子源码文件进行处理逻辑优化、表达式优化、存储数据自适应索引建立或存储数据存储结构建立。
10.如权利要求6至9任一项所述的方法,其特征在于,所述方法还包括:对所述应用描述文件的至少一个算子描述符对应的算子之间的功能逻辑进行合并或拆分。
11.如权利要求6至10任一项所述的方法,其特征在于,所述方法还包括:将所述用户自定义算子的可配置项设定为所述用户自定义算子的算子参数,将所述用户自定义算子的非可配置项设定为所述用户自定义算子的算子模板文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410242101.XA CN104020994B (zh) | 2014-05-30 | 2014-05-30 | 基于流系统的流过程定义装置和流过程定义方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410242101.XA CN104020994B (zh) | 2014-05-30 | 2014-05-30 | 基于流系统的流过程定义装置和流过程定义方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104020994A true CN104020994A (zh) | 2014-09-03 |
CN104020994B CN104020994B (zh) | 2017-07-14 |
Family
ID=51437769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410242101.XA Active CN104020994B (zh) | 2014-05-30 | 2014-05-30 | 基于流系统的流过程定义装置和流过程定义方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104020994B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267938A (zh) * | 2014-09-16 | 2015-01-07 | 福建新大陆软件工程有限公司 | 一种流式计算的应用快速开发部署的方法及装置 |
CN105610992A (zh) * | 2016-03-31 | 2016-05-25 | 浪潮通信信息系统有限公司 | 一种分布式流计算系统任务分配负载均衡方法 |
CN106599366A (zh) * | 2016-11-11 | 2017-04-26 | 中国人民解放军国防科学技术大学 | 基于机动性的高层次综合调度方法 |
CN109725899A (zh) * | 2019-01-04 | 2019-05-07 | 中国银行股份有限公司 | 数据流式处理方法及装置 |
CN109828836A (zh) * | 2019-01-20 | 2019-05-31 | 北京工业大学 | 一种批量流式计算系统参数动态配置方法 |
CN110532447A (zh) * | 2019-08-29 | 2019-12-03 | 上海云从汇临人工智能科技有限公司 | 一种业务数据处理方法、装置、介质和设备 |
CN110795104A (zh) * | 2019-10-29 | 2020-02-14 | 中国人民解放军国防科技大学 | 一种用于TensorFlow自定义操作生成的方法 |
CN111382347A (zh) * | 2018-12-28 | 2020-07-07 | 广州市百果园信息技术有限公司 | 一种对象特征的处理和信息推送方法、装置和设备 |
CN112364290A (zh) * | 2020-11-18 | 2021-02-12 | 中睿信数字技术有限公司 | 一种基于流式计算的可视化计算模型构建方法和系统 |
CN116735613A (zh) * | 2023-08-16 | 2023-09-12 | 昆山龙雨智能科技有限公司 | 一种基于ccd相机的产品定位及量测系统与使用方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090192981A1 (en) * | 2008-01-29 | 2009-07-30 | Olga Papaemmanouil | Query Deployment Plan For A Distributed Shared Stream Processing System |
CN102200906A (zh) * | 2011-05-25 | 2011-09-28 | 上海理工大学 | 大规模并发数据流处理系统及其处理方法 |
CN103782270A (zh) * | 2013-10-28 | 2014-05-07 | 华为技术有限公司 | 流处理系统的管理方法和相关设备及系统 |
-
2014
- 2014-05-30 CN CN201410242101.XA patent/CN104020994B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090192981A1 (en) * | 2008-01-29 | 2009-07-30 | Olga Papaemmanouil | Query Deployment Plan For A Distributed Shared Stream Processing System |
CN102200906A (zh) * | 2011-05-25 | 2011-09-28 | 上海理工大学 | 大规模并发数据流处理系统及其处理方法 |
CN103782270A (zh) * | 2013-10-28 | 2014-05-07 | 华为技术有限公司 | 流处理系统的管理方法和相关设备及系统 |
Non-Patent Citations (2)
Title |
---|
亓开元: "针对高速数据流的大规模数据实时处理方法", 《计算机学报》 * |
龚晓庆 等: "一种生产线架构中的工作流过程定义复用方法", 《计算机科学》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267938B (zh) * | 2014-09-16 | 2018-02-23 | 福建新大陆软件工程有限公司 | 一种流式计算的应用快速开发部署的方法及装置 |
CN104267938A (zh) * | 2014-09-16 | 2015-01-07 | 福建新大陆软件工程有限公司 | 一种流式计算的应用快速开发部署的方法及装置 |
CN105610992A (zh) * | 2016-03-31 | 2016-05-25 | 浪潮通信信息系统有限公司 | 一种分布式流计算系统任务分配负载均衡方法 |
CN106599366A (zh) * | 2016-11-11 | 2017-04-26 | 中国人民解放军国防科学技术大学 | 基于机动性的高层次综合调度方法 |
CN111382347A (zh) * | 2018-12-28 | 2020-07-07 | 广州市百果园信息技术有限公司 | 一种对象特征的处理和信息推送方法、装置和设备 |
CN109725899A (zh) * | 2019-01-04 | 2019-05-07 | 中国银行股份有限公司 | 数据流式处理方法及装置 |
CN109725899B (zh) * | 2019-01-04 | 2022-03-22 | 中国银行股份有限公司 | 数据流式处理方法及装置 |
CN109828836A (zh) * | 2019-01-20 | 2019-05-31 | 北京工业大学 | 一种批量流式计算系统参数动态配置方法 |
CN110532447A (zh) * | 2019-08-29 | 2019-12-03 | 上海云从汇临人工智能科技有限公司 | 一种业务数据处理方法、装置、介质和设备 |
CN110795104A (zh) * | 2019-10-29 | 2020-02-14 | 中国人民解放军国防科技大学 | 一种用于TensorFlow自定义操作生成的方法 |
CN110795104B (zh) * | 2019-10-29 | 2023-05-05 | 中国人民解放军国防科技大学 | 一种用于TensorFlow自定义操作生成的方法 |
CN112364290A (zh) * | 2020-11-18 | 2021-02-12 | 中睿信数字技术有限公司 | 一种基于流式计算的可视化计算模型构建方法和系统 |
CN116735613A (zh) * | 2023-08-16 | 2023-09-12 | 昆山龙雨智能科技有限公司 | 一种基于ccd相机的产品定位及量测系统与使用方法 |
CN116735613B (zh) * | 2023-08-16 | 2023-10-13 | 昆山龙雨智能科技有限公司 | 一种基于ccd相机的产品定位及量测系统与使用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104020994B (zh) | 2017-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104020994A (zh) | 基于流系统的流过程定义装置和流过程定义方法 | |
US11714611B2 (en) | Library suggestion engine | |
US11740876B2 (en) | Method and system for arbitrary-granularity execution clone detection | |
CN107885499A (zh) | 一种接口文档生成方法及终端设备 | |
US11734584B2 (en) | Multi-modal construction of deep learning networks | |
WO2019051426A1 (en) | PRUNING ENGINE | |
US8584062B2 (en) | Tool suite for RTL-level reconfiguration and repartitioning | |
WO2019051388A1 (en) | AUTOMATION OF GENERATION OF ENGINE MODELS OF LIBRARY SUGGESTIONS | |
CN106991100B (zh) | 数据导入方法及装置 | |
US10083031B2 (en) | Cognitive feature analytics | |
CN110096263A (zh) | Web前端代码自动生成方法及装置 | |
US20170300305A1 (en) | Executable guidance experiences based on implicitly generated guidance models | |
CN105446952A (zh) | 用于处理语义片段的方法和系统 | |
CN108874395B (zh) | 一种组件化流处理过程中的硬编译方法及装置 | |
Gil | Intelligent workflow systems and provenance-aware software | |
JP7131119B2 (ja) | ソースアプリケーションからのソースデータをターゲットアプリケーションのターゲットデータへとマージするためのシステムおよび方法 | |
US10649743B2 (en) | Application developing method and system | |
US11645110B2 (en) | Intelligent generation and organization of user manuals | |
US20120260224A1 (en) | Digital Netlist Partitioning System For Faster Circuit Reverse-Engineering | |
US8495033B2 (en) | Data processing | |
CN104932982A (zh) | 一种消息访存的编译方法及相关装置 | |
US9280441B2 (en) | Detection and correction of race conditions in workflows | |
US20230237249A1 (en) | Method and system for generating an automation engineering project in a technical installation using multidisciplinary approach | |
EP4369187A1 (en) | Method and system for implementing a virtual assistant for automatic configuration of engineering objects | |
CN103365656A (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 |