CN111435352A - 一种分布式实时计算方法、装置、系统及其存储介质 - Google Patents
一种分布式实时计算方法、装置、系统及其存储介质 Download PDFInfo
- Publication number
- CN111435352A CN111435352A CN201910025471.0A CN201910025471A CN111435352A CN 111435352 A CN111435352 A CN 111435352A CN 201910025471 A CN201910025471 A CN 201910025471A CN 111435352 A CN111435352 A CN 111435352A
- Authority
- CN
- China
- Prior art keywords
- data
- acyclic graph
- directed acyclic
- nodes
- computing
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000008569 process Effects 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 12
- 230000009191 jumping Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 20
- 238000010586 diagram Methods 0.000 description 17
- 125000002015 acyclic group Chemical group 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种分布式实时计算方法、装置、系统及其存储介质,该方法包括接收可以被解析为有向无环图的计算逻辑信息;解析所述计算逻辑信息生成有向无环图,所述有向无环图具有多个节点和连接所述节点的有向边,所述节点用于指示计算逻辑中的数据操作,所述有向边用于指示计算逻辑中的数据流向;根据所述有向无环图生成计算作业;将所述计算作业提交至分布式计算集群生成常驻计算任务;根据实时数据流通过所述计算任务计算得到实时数据结果。有向无环图可以直观地使开发人员理解数据架构,降低开发周期和开发难度。解决了现有技术中开发周期长、开发难度大的技术问题。
Description
技术领域
本发明涉及互联网技术领域,尤其是指一种分布式实时计算方法、装置、系统及其存储介质。
背景技术
分布式实时计算(Stream Computing也称“流计算”),是一种持续、低时延、事件触发的计算模型。计算逻辑信息开发的第一步是将计算逻辑信息通过实时计算框架编程语言进行编码,还必须要进行后续的编译调试、测试、部署等多个必要的环节。在程序开发的环节中由于实时计算框架的编程语言不但十分复杂,还需要开发人员熟悉框架相关的概念、命令和API(Application Programming Interface,应用程序编程接口)等相关知识,因此开发人员需要具备深厚的编程功底,即便是经验丰富的开发人员在上述过程中也需要大量的时间去研究程序的架构。在实现本发明过程中,发明人发现现有技术中至少存在如下问题,一个现有技术中的计算逻辑信息完整开发的周期大约需要几个到十几个工作日,发开周期过长并且难度大!
发明内容
本发明的实施例提供了一种分布式实时计算方法,该方法包括:
接收可以被解析为有向无环图的计算逻辑信息;
解析所述计算逻辑信息生成有向无环图,所述有向无环图具有多个节点和连接所述节点的有向边,所述节点用于指示计算逻辑中的数据操作,所述有向边用于指示计算逻辑中的数据流向;
根据所述有向无环图生成计算作业;
将所述计算作业提交至分布式计算集群生成常驻计算任务;
根据实时数据流通过所述计算任务计算得到实时数据结果。
可选地,所述接收可以被解析为有向无环图的计算逻辑信息步骤前,该方法还包括:
将计算作业中的数据操作定义为不同类型的节点;
将所述数据操作的执行顺序定义为数据流向;
根据所述计算作业中的所述节点和所述数据流向架构计算逻辑信息,所述计算逻辑信息可以被解析为有向无环图。
可选地,所述将计算作业中的数据操作定义为不同类型的节点包括:通过SQL编程语言对所述节点进行定义。
可选地,所述将计算作业中的数据操作定义为不同类型的节点包括:所述数据操作的类型包括数据输入、数据输出、数据计算和/或数据转换。
可选地,所述解析所述计算逻辑信息生成有向无环图的步骤后,该方法还包括:从所述有向无环图中用于数据输入的节点开始对每个所述节点进行遍历;
在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口。
可选地,在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口的步骤后,该方法还包括:
判断所述有向无环图是否完成遍历;
如果所述有向无环图完成遍历,根据所述有向无环图生成计算作业;
如果所述有向无环图未完成遍历,跳转到从所述有向无环图中用于数据输入的节点开始对每个所述节点进行遍历的步骤,直到所述有向无环图完成遍历后,根据所述有向无环图生成计算作业。
本申请还提供了一种分布式实时计算装置,所述装置包括:
接收模块,用于接收可以被解析为有向无环图的计算逻辑信息;
解析模块,用于解析所述计算逻辑信息生成有向无环图,所述有向无环图具有多个节点和连接所述节点的有向边,所述节点用于指示计算逻辑中的数据操作,所述有向边用于指示计算逻辑中的数据流向;
生成模块,用于根据所述有向无环图生成计算作业;
提交模块,用于将所述计算作业提交至分布式计算集群生成常驻计算任务;
计算模块,用于根据实时数据流通过所述计算任务计算得到实时数据结果。
可选地,所述装置进一步还包括:
定义模块,用于将计算作业中的数据操作定义为不同类型的节点,还用于将所述数据操作的执行顺序定义为数据流向;
架构模块,用于根据所述计算作业中的所述节点和所述数据流向架构计算逻辑信息,所述计算逻辑信息可以被解析为有向无环图。
可选地,所述定义模块还用于通过SQL编程语言对所述节点进行定义。
可选地,所述数据操作的类型包括数据输入、数据输出、数据计算和/或数据转换。
可选地,所述装置进一步包括:
遍历模块,用于从所述有向无环图用于数据输入的节点开始对每个所述节点进行遍历;
添加模块,还用于在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口。
可选地,所述装置进一步包括:
判断模块,用于判断所述有向无环图是否完成遍历;
如果所述有向无环图完成遍历,根据所述有向无环图生成计算作业;
如果所述有向无环图未完成遍历,跳转到对所述有向无环图从所述数据操作中用于数据输入的节点开始对每个所述节点进行遍历的步骤,直到所述有向无环图完成遍历后,根据所述有向无环图生成计算作业。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的分布式实时计算方法步骤。
如上可见,基于上述实施例,本申请的分布式实施计算方法通过有向无环图直观的表达了计算逻辑的数据结构,使本领域的技术人员可以通过有向无环图直观清楚的理解计算逻辑的数据架构,从而降低了开发难度,缩短了研发周期。
附图说明
图1为一个实施例中分布式实时计算方法的数据处理框架示意图;
图2为一个实施例中分布式实时计算方法的流程示意图;
图3为另一个实施例中分布式实时计算方法的流程示意图;
图4为一个实施例中分布式实时计算方法的开发界面示意图;
图5为另一个实施例中分布式实时计算的方法的流程示意图;
图6为另一个实施例中分布式实时计算的方法的流程示意图;
图7为一个实施例中分布式实时计算装置的架构示意图;
图8为另一个实施例中分布式实时计算装置的架构示意图;
图9为另一个实施例中分布式实时计算装置的架构示意图;
图10为另一个实施例中分布式实时计算装置的架构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
图1为一个实施例中分布式实时计算方法的数据处理框架示意图,如图1所示,对于分布式实时计算作业,必须预先定义计算逻辑信息,并将根据计算逻辑信息生成的计算作业提交到分布式计算集群中,生成常驻的计算任务。
图2为一个实施例中分布式实时计算方法的流程示意图。如图2所示,在一个实施例中,公开了一种分布式实时计算方法,该方法包括:
S101:接收可以被解析为有向无环图的计算逻辑信息;
本步骤中的计算逻辑信息可以解析为有向无环图,计算逻辑信息可以以应用程序的形式存在,也可以以其他的形式存在。计算逻辑信息是计算逻辑的信息载体,计算逻辑是指具体的数据操作,以及对应数据操作的执行顺序。上述的计算逻辑一方面通过有向无环图的方式进行表达,另一方面有向无环图上也加载了具体的数据操作方法,以及数据操作对应的执行顺序。简言之,可以通过有向无环图得到计算逻辑的具体数据操作和数据操作之间的执行顺序。具体的接收方式可以是从RESTful service接收计算逻辑信息。(REST是英文:Representational State Transfer的缩写,是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件,RESTful service即对应该风格构建的服务)。有向无环图可以采用邻接矩阵表示法以一个二维数组的形式保存在含有计算逻辑信息的应用程序中或计算逻辑信息其他的存在形式中,二维数组与邻接矩阵相对应。当然具体的保存形式不限于邻接矩阵。
S102:解析所述计算逻辑信息生成有向无环图,所述有向无环图具有多个节点和连接所述节点的有向边,所述节点用于指示计算逻辑中的数据操作,所述有向边用于指示计算逻辑中的数据流向;
本步骤中通过所述计算逻辑信息生成了有向无环图。有向无环图可以非常清楚的展现计算逻辑的数据架构,开发人员可以根据有向图无环图准确的理解计算逻辑的数据架构,为编译调试、测试、部署等环节大幅缩减开发时间,降低开发难度。需要指出的是上述的数据流向是有向无环图表达数据操作执行顺序的具体方式。
S103:根据所述有向无环图生成计算作业;
本步骤中有向无环图生成计算作业用于分布式实施计算。需要指出的是由于现有技术的分布式实时计算中不存在有向无环图,所以没有关于对有向无环图的处理步骤。另外,还需要指出的是虽然有向无环图使研发人员对计算逻辑的数据架构可以进行直观的理解,但是在实际的应用中与现有技术相比并不会增加数据处理上的负担。因为有向无环图事实上就是计算逻辑的一种表现形式,只是数据的表达形式发生了改变。
S104:根据将所述计算作业提交至分布式计算集群生成常驻计算任务;
本步骤中将计算作业提交给分布式计算集群生成常驻计算任务,本步骤同时又佐证了有向无环图在本发明中不会影响后续的计算应用。
S105:根据实时数据流通过所述计算任务计算得到实时数据结果。
本步骤执行后则完成了分布式实时计算的过程。
在本实施例中通过对计算逻辑信息的解析得到有向无环图,有向无环图可以直观地使开发人员理解数据架构,降低开发周期和开发难度。其中,有向无环图中的节点指示了具体的数据操作,而有向边用于指示数据流向。由于有向无环图是计算逻辑的其中一种表现形式,因此与现有技术相比也不会增加本实施例在处理数据上的负担。最后根据有向无环图生成计算作业提交到分布式计算集群生成常驻计算任务,进而根据实时数据流通过所述计算任务计算得到实时数据结果,完成分布式实时计算。
图3为另一个实施例中分布式实时计算方法的流程示意图,如图3所示,在一实施方式中,所述接收可以被解析为有向无环图的计算逻辑信息步骤前,该方法还包括:
S201:将计算作业中的数据操作定义为不同类型的节点;
本步骤对用户提出的计算作业进行定义,与现有技术不同的是计算作业的定义方式有所不同,现有技术是将计算作业整体进行编码,而在本实施例中首先要将具体的数据操作定义为节点,并且上述的节点定义方式将以节点的不同类型进行定义。
S202:将所述数据操作的执行顺序定义为数据流向;
本步骤继续对计算作业中数据操作之间的执行顺序进行定义,再通过上一步骤中节点的定义则可以形成有向无环图架构中所需要的数据结构。
S203:根据所述计算作业中的所述节点和所述数据流向架构计算逻辑信息,所述计算逻辑信息可以被解析为有向无环图。
本步骤中开始通过节点和数据流向架构计算逻辑信息,实际上计算逻辑信息的计算过程与现有技术中对计算作业整体进行编程一致。不同的是编程定义的方式不同,使计算逻辑呈现的方式不同。
本实施例提供了一种计算逻辑信息的定义方式,即对计算作业的具体数据操作根据不同类型定义为不同类型的节点,对数据操作之间的执行顺序定义为数据流向,进而生成对应的计算逻辑信息,该计算逻辑信息可以被解析为有向无环图。需要指出的是计算逻辑信息并不一定采用有向无环图的方式进行保存,可以通过任何可能的方式进行保存,只需要该方式能够被解析为有向无环图即可。
在一实施例中,所述将计算作业中的数据操作定义为不同类型的节点包括:
通过SQL编程语言对所述节点进行定义。
本步骤提供了一种对节点定义的具体编程语言。SQL编程语言(Structured QueryLanguage,一种结构化查询语言),SQL编程语言是数据分析的自然语言,在数据处理方面相比其它语言具有天然的优势。SQL编程语言还具有语法简单、学习成本低、受众广泛的优势,一般的开发人员、数据分析人员都能熟练使用SQL编程语言进行数据分析。
另外,通过有向无环图与采用SQL编程语言进行定义节点的方式简化了实时计算应用开发的难度,极大提升了开发效率。使用图的方式定义计算流程更加符合人类的自然思维,具有可视化的优点,用户无需学习即可使用。
图4为另一个实施例中分布式实时计算方法的开发界面示意图,如图4所示,在开发过程中,可以根据上述开发模式设计如图4中所示的开发软件,方便开发人员开发。
在一实施例中,所述将计算作业中的数据操作定义为不同类型的节点包括:
所述数据操作的类型包括数据输入、数据输出、数据计算,以及数据转换。
本步骤中节点包括如下几种类型:
数据输入:定义数据的来源,包括输入来源(Socket端口、文件等)和输入数据的格式,输入的数据可以是结构化的(例如JSON格式),也可以是非结构化的(例如图片、文本)。
其中,socket表示网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式。
数据转换:将结构化或非结构化的输入数据流转换为便于处理的结构化数据流。数据转换一般定义在输入之后和输出之前,但需要指出的是数据转换并非必须的步骤。
数据计算:使用SQL或API对数据流进行过滤、变换、汇聚等实时计算操作。
数据输出:定义计算结果输出,包括输出方式(例如,数据库、Socket端口等)和输出的数据格式。
一个实时计算应用可以包含多个输入、输出、数据转换和计算节点。
使用SQL作为描述计算的语言,也可以通过扩展支持其他语言。鉴于实时计算的特性,在使用SQL进行实时计算时,将数据操作的执行顺序作为一个无界流动的表进行查询和操作,所以SQL为标准子集。
SQL必须以“SELECT”作为开头的查询语句,即从一张数据流表中查询数据,经过计算后,写入另外一张数据流表中,以保证数据的流动性,SELECT为一程序调用语句。
图5为另一个实施例中分布式实时计算的方法的流程示意图,如图5所示,在一实施例中,所述解析所述计算逻辑信息生成有向无环图的步骤后,该方法还包括:
S301:从所述有向无环图中用于数据输入的节点开始对每个所述节点进行遍历;
本步骤中的遍历采用广度优先遍历,遍历是指沿着某条搜索路线,依次对树中每个节点均做一次且仅做一次访问,访问节点所做的操作依赖于具体的应用问题。针对于本步骤来说则是针对有向无环图进行遍历,遍历的起点则是数据输入类型的节点。
S302:在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口。
本步骤中不但需要对每个节点均进行遍历,而且要随之判断节点的类型,其目的在于将有向无环图呈现的计算逻辑用于计算,并且根据有向无环图生成计算作业。
图6为另一个实施例中分布式实时计算的方法的流程示意图,如图6所示,在一实施例中,在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口的步骤后,该方法还包括:
S401,接收可以被解析为有向无环图的计算逻辑信息;
S402,解析所述计算逻辑信息生成有向无环图,所述有向无环图具有多个节点和连接所述节点的有向边,所述节点用于指示计算逻辑中的数据操作,所述有向边用于指示计算逻辑中的数据流向;
S403,根据所述有向无环图生成计算作业;
上述步骤S401至S403与之前实施例中的S101至S103步骤分别对应,方法相似,在此就不再赘述了。
S404,从所述有向无环图用于数据输入的节点开始对每个所述节点进行遍历;
S405,在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口。
上述步骤S404至S405与之前实施例中的S301至S302步骤分别对应,方法相似,在此就不再赘述了。
S406:判断所述有向无环图是否完成遍历;
如果所述有向无环图完成遍历,根据所述有向无环图生成计算作业;
如果所述有向无环图未完成遍历,跳转到从所述有向无环图中用于数据输入的节点开始对每个所述节点进行遍历的步骤,直到所述有向无环图完成遍历后,根据所述有向无环图生成计算作业。
在本实施例中在有向无环图进行遍历后,增加了判断是否完成遍历的步骤。有节点未被遍历,则重新对有向无环图进行遍历。如果所有节点完全被遍历,那么进行之后的相关操作。
在实际操作中,可以通过Apache Flink进行实现,需要指出的是Apache Flink只是其中的一种实现方式,Apache Flink是一种开源的分布式实时计算框架。
数据输入的节点(input):调用Flink API构造StreamSource,然后调用addSource方法将StreamSrouce添加为数据源。
数据输出的节点(output):调用Flink API构造StreamSink,然后调用addSink方法将StreamSink添加为输出口。
数据计算和数据转换的节点(conversion):Conversion Service将conversion节点转换成Flink的MapFunction,然后调用Flink API的map方法将生成的MapFunction作为参数传入。Flinkmap的功能是:在数据流处理过程中将输入的数据经过计算输出,输入的数据格式和输出的数据格式可以不同,输入、输出的数据格式和计算的方法在传入的参数MapFunction中定义。
数据查询的节点(computation):首先调用Flink API sqlQuery传入SQL,返回Table对象,然后调用Flink API registerTable将返回的Table对象注册为Flink内部表,供后续计算节点查询。
其中,StreamSource、addSource、StreamSink、MapFunction、Flink APIsqlQuery,以及Flink API registerTable均为程序的调用语句。
基于上述的举例说明,在完成遍历后,调用Flink API生成JobGraph。JobGraph是一个Flink对象,可以直接提交到分布式计算集群上运行,JobGraph即公开计算作业的其中一种对应形式。根据Flink集群类型不同,调用相应的本地或远程API,将JobGraph提交到分布式计算集群上执行,以实现根据实时数据流通过所述计算任务计算得到实时数据结果。最后,当提交完计算作业(即JobGraph)后会生成一个用于跟踪反馈(即JOBID)。
步骤407,将所述计算作业提交至分布式计算集群生成常驻计算任务;
步骤408,根据实时数据流通过所述计算任务计算得到实时数据结果。
上述步骤S407至S408与之前实施例中的S104至S105步骤分别对应,方法相似,在此就不再赘述了。
图7为一个实施例中分布式实时计算装置的架构示意图。如图7所示,在一实施例中,本实施例公开了一种分布式实时计算装置,包括:
接收模块101,接收可以被解析为有向无环图的计算逻辑信息;
解析模块102,用于解析所述计算逻辑信息生成有向无环图,所述有向无环图具有多个节点和连接所述节点的有向边,所述节点用于指示计算逻辑中的数据操作,所述有向边用于指示计算逻辑中的数据流向;
生成模块103,用于根据所述有向无环图生成计算作业;
提交模块104,用于将所述计算作业提交至分布式计算集群生成常驻计算任务;
计算模块105,用于根据实时数据流通过所述计算任务计算得到实时数据结果。
图8为另一个实施例中分布式实时计算装置的架构示意图。如图8所示,在一实施例中,所述装置进一步还包括:
定义模块201,用于将计算作业中的数据操作定义为不同类型的节点,还用于将所述数据操作的执行顺序定义为数据流向;
架构模块202,用于根据所述计算作业中的所述节点和所述数据流向架构计算逻辑信息,所述计算逻辑信息可以被解析为有向无环图。
在一实施例中,包括:所述定义模块106,还用于通过SQL编程语言对所述节点进行定义。
在一实施例中,包括:所述数据操作的类型包括数据输入、数据输出、数据计算和/或数据转换。
图9为另一个实施例中分布式实时计算装置的架构示意图。如图9所示,在一实施例中,所述装置进一步包括:
遍历模块301,用于所述有向无环图从所述数据操作中用于数据输入的节点开始对每个所述节点进行遍历;
添加模块302,还用于在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口。
图10为另一个实施例中分布式实时计算装置的架构示意图。如图10所示,在一实施例中,包括:
接收模块401,接收可以被解析为有向无环图的计算逻辑信息;
解析模块402,用于解析所述计算逻辑信息生成有向无环图,所述有向无环图具有多个节点和连接所述节点的有向边,所述节点用于指示计算逻辑中的数据操作,所述有向边用于指示计算逻辑中的数据流向;
生成模块403,用于根据所述有向无环图生成计算作业;
上述的模块101至103与模块401至403对应,且功能相似,在此不再进行赘述了。
遍历模块404,用于从所述有向无环图用于数据输入的节点开始对每个所述节点进行遍历;
添加模块405,还用于在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口;
上述的模块404至405与模块301至302对应,且功能相似,在此不再进行赘述了。
判断模块406,用于判断所述有向无环图是否完成遍历;
如果所述有向无环图完成遍历,根据所述有向无环图生成计算作业;
如果所述有向无环图未完成遍历,跳转到对所述有向无环图从所述数据操作中用于数据输入的节点开始对每个所述节点进行遍历的步骤,直到所述有向无环图完成遍历后,根据所述有向无环图生成计算作业;
提交模块407,用于将所述计算作业提交至分布式计算集群生成常驻计算任务;
计算模块408,用于根据实时数据流通过所述计算任务计算得到实时数据结果。
上述的模块407至408与模块104至105对应,且功能相似,在此不再进行赘述了。
在一实施例中,公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的分布式实时计算方法步骤。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (13)
1.一种分布式实时计算方法,其特征在于,该方法包括:
接收可以被解析为有向无环图的计算逻辑信息;
解析所述计算逻辑信息生成有向无环图,所述有向无环图具有多个节点和连接所述节点的有向边,所述节点用于指示计算逻辑中的数据操作,所述有向边用于指示计算逻辑中的数据流向;
根据所述有向无环图生成计算作业;
将所述计算作业提交至分布式计算集群生成常驻计算任务;
根据实时数据流通过所述计算任务计算得到实时数据结果。
2.根据权利要求1所述的分布式实时计算方法,其特征在于,所述接收可以被解析为有向无环图的计算逻辑信息步骤前,该方法还包括:
将计算作业中的数据操作定义为不同类型的节点;
将所述数据操作的执行顺序定义为数据流向;
根据所述计算作业中的所述节点和所述数据流向架构计算逻辑信息,所述计算逻辑信息可以被解析为有向无环图。
3.根据权利要求2所述的分布式实时计算方法,其特征在于,所述将计算作业中的数据操作定义为不同类型的节点包括:
通过SQL编程语言对所述节点进行定义。
4.根据权利要求2所述分布式实时计算方法,其特征在于,所述将计算作业中的数据操作定义为不同类型的节点包括:
所述数据操作的类型包括数据输入、数据输出、数据计算和/或数据转换。
5.根据权利要求1至4任一项所述的分布式实时计算方法,其特征在于,所述解析所述计算逻辑信息生成有向无环图的步骤后,该方法还包括:
从所述有向无环图中用于数据输入的节点开始对每个所述节点进行遍历;
在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口。
6.根据权利要求5所述的分布式实时计算方法,其特征在于,在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口的步骤后,该方法还包括:
判断所述有向无环图是否完成遍历;
如果所述有向无环图完成遍历,根据所述有向无环图生成计算作业;
如果所述有向无环图未完成遍历,跳转到从所述有向无环图中用于数据输入的节点开始对每个所述节点进行遍历的步骤,直到所述有向无环图完成遍历后,根据所述有向无环图生成计算作业。
7.一种分布式实时计算装置,其特征在于,所述装置包括:
接收模块,用于接收可以被解析为有向无环图的计算逻辑信息;
解析模块,用于解析所述计算逻辑信息生成有向无环图,所述有向无环图具有多个节点和连接所述节点的有向边,所述节点用于指示计算逻辑中的数据操作,所述有向边用于指示计算逻辑中的数据流向;
生成模块,用于根据所述有向无环图生成计算作业;
提交模块,用于将所述计算作业提交至分布式计算集群生成常驻计算任务;
计算模块,用于根据实时数据流通过所述计算任务计算得到实时数据结果。
8.根据权利要求7所述的分布式实时计算装置,其特征在于,所述装置进一步还包括:
定义模块,用于将计算作业中的数据操作定义为不同类型的节点,还用于将所述数据操作的执行顺序定义为数据流向;
架构模块,用于根据所述计算作业中的所述节点和所述数据流向架构计算逻辑信息,所述计算逻辑信息可以被解析为有向无环图。
9.根据权利要求8所述的分布式实时计算装置,其特征在于,
所述定义模块,还用于通过SQL编程语言对所述节点进行定义。
10.根据权利要求8的所述的分布式实时计算装置,其特征在于,
所述数据操作的类型包括数据输入、数据输出、数据计算和/或数据转换。
11.根据权利要求7至10任一项所述的分布式实时计算装置,其特征在于,所述装置进一步包括:
遍历模块,用于从所述有向无环图中用于数据输入的节点开始对每个所述节点进行遍历;
添加模块,还用于在遍历过程中判断每个所述节点的类型,将所述数据操作中用于数据输入的节点添加为数据源,所述数据操作中用于数据输出的节点添加为数据输出口。
12.根据权利要求11所述的分布式实时计算装置,其特征在于,所述装置进一步包括:
判断模块,用于判断所述有向无环图是否完成遍历;
如果所述有向无环图完成遍历,根据所述有向无环图生成计算作业;
如果所述有向无环图未完成遍历,跳转到从所述有向无环图中用于数据输入的节点开始对每个所述节点进行遍历的步骤,直到所述有向无环图完成遍历后,根据所述有向无环图生成计算作业。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6任一项所述的分布式实时计算方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910025471.0A CN111435352A (zh) | 2019-01-11 | 2019-01-11 | 一种分布式实时计算方法、装置、系统及其存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910025471.0A CN111435352A (zh) | 2019-01-11 | 2019-01-11 | 一种分布式实时计算方法、装置、系统及其存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111435352A true CN111435352A (zh) | 2020-07-21 |
Family
ID=71580253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910025471.0A Pending CN111435352A (zh) | 2019-01-11 | 2019-01-11 | 一种分布式实时计算方法、装置、系统及其存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111435352A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486641A (zh) * | 2020-11-18 | 2021-03-12 | 鹏城实验室 | 一种基于图神经网络的任务调度方法 |
CN112632082A (zh) * | 2020-12-30 | 2021-04-09 | 中国农业银行股份有限公司 | 一种创建Flink作业的方法及装置 |
CN113342489A (zh) * | 2021-05-25 | 2021-09-03 | 上海商汤智能科技有限公司 | 任务处理方法及装置、电子设备和存储介质 |
CN113342488A (zh) * | 2021-05-25 | 2021-09-03 | 上海商汤智能科技有限公司 | 任务处理方法及装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293892A (zh) * | 2015-06-26 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 分布式流计算系统、方法和装置 |
CN108388474A (zh) * | 2018-02-06 | 2018-08-10 | 北京易沃特科技有限公司 | 基于dag的智能分布式计算管理系统及方法 |
US20180276040A1 (en) * | 2017-03-23 | 2018-09-27 | Amazon Technologies, Inc. | Event-driven scheduling using directed acyclic graphs |
CN109033109A (zh) * | 2017-06-09 | 2018-12-18 | 杭州海康威视数字技术股份有限公司 | 数据处理方法及系统 |
-
2019
- 2019-01-11 CN CN201910025471.0A patent/CN111435352A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293892A (zh) * | 2015-06-26 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 分布式流计算系统、方法和装置 |
US20180276040A1 (en) * | 2017-03-23 | 2018-09-27 | Amazon Technologies, Inc. | Event-driven scheduling using directed acyclic graphs |
CN109033109A (zh) * | 2017-06-09 | 2018-12-18 | 杭州海康威视数字技术股份有限公司 | 数据处理方法及系统 |
CN108388474A (zh) * | 2018-02-06 | 2018-08-10 | 北京易沃特科技有限公司 | 基于dag的智能分布式计算管理系统及方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486641A (zh) * | 2020-11-18 | 2021-03-12 | 鹏城实验室 | 一种基于图神经网络的任务调度方法 |
CN112632082A (zh) * | 2020-12-30 | 2021-04-09 | 中国农业银行股份有限公司 | 一种创建Flink作业的方法及装置 |
CN112632082B (zh) * | 2020-12-30 | 2024-06-07 | 中国农业银行股份有限公司 | 一种创建Flink作业的方法及装置 |
CN113342489A (zh) * | 2021-05-25 | 2021-09-03 | 上海商汤智能科技有限公司 | 任务处理方法及装置、电子设备和存储介质 |
CN113342488A (zh) * | 2021-05-25 | 2021-09-03 | 上海商汤智能科技有限公司 | 任务处理方法及装置、电子设备和存储介质 |
WO2022247112A1 (zh) * | 2021-05-25 | 2022-12-01 | 上海商汤智能科技有限公司 | 任务处理方法、装置、设备、存储介质、计算机程序及程序产品 |
WO2022247110A1 (zh) * | 2021-05-25 | 2022-12-01 | 上海商汤智能科技有限公司 | 任务处理方法及装置、电子设备和存储介质 |
CN113342488B (zh) * | 2021-05-25 | 2024-09-13 | 上海商汤智能科技有限公司 | 任务处理方法及装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111435352A (zh) | 一种分布式实时计算方法、装置、系统及其存储介质 | |
CN110673854A (zh) | Sas语言编译方法、装置、设备及可读存储介质 | |
CN111221842A (zh) | 大数据处理系统及方法 | |
CN113705798A (zh) | 处理单元、计算装置及深度学习模型的计算图优化方法 | |
CN113504900A (zh) | 一种编程语言转换方法和装置 | |
US20190213007A1 (en) | Method and device for executing the distributed computation task | |
US9696968B2 (en) | Lightweight optionally typed data representation of computation | |
US11604774B2 (en) | Method and apparatus of converting schema in deep learning framework, and computer storage medium | |
CN111104796B (zh) | 用于翻译的方法和装置 | |
CN113238739A (zh) | 一种插件开发和数据获取方法、装置、电子设备及介质 | |
CN116670660A (zh) | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 | |
CN114756211B (zh) | 模型训练方法、装置、电子设备和存储介质 | |
KR20190020800A (ko) | 태스크 프로세싱 방법 및 분산 컴퓨팅 프레임워크 | |
CN112579151A (zh) | 一种模型文件的生成方法和装置 | |
CN112527304A (zh) | 基于异构平台的自适应节点融合编译优化方法 | |
CN112860534B (zh) | 硬件架构性能评估和性能优化方法及装置 | |
CN113221126B (zh) | 一种TensorFlow程序漏洞检测方法、装置及电子设备 | |
CN115809688A (zh) | 一种模型调试方法、装置、电子设备及存储介质 | |
CN113705799A (zh) | 处理单元、计算装置及深度学习模型的计算图处理方法 | |
CN111240972B (zh) | 一种基于源代码的模型验证装置 | |
CN112394914A (zh) | 一种面向物联网应用的以边缘为中心的编程方法 | |
CN111444112B (zh) | 一种基于共享不可行路径池的代码并行验证方法和装置 | |
CN109358855A (zh) | 一种用于编程的前端模拟数据敏捷开发方法及电子设备 | |
CN114429051B (zh) | 数据流芯片的建模方法、装置、设备及介质 | |
US11907693B2 (en) | Job decomposition processing method for distributed computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |