CN110908641B - 基于可视化的流计算平台、方法、设备和存储介质 - Google Patents
基于可视化的流计算平台、方法、设备和存储介质 Download PDFInfo
- Publication number
- CN110908641B CN110908641B CN201911181321.5A CN201911181321A CN110908641B CN 110908641 B CN110908641 B CN 110908641B CN 201911181321 A CN201911181321 A CN 201911181321A CN 110908641 B CN110908641 B CN 110908641B
- Authority
- CN
- China
- Prior art keywords
- stream
- data
- computing
- component
- stream 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012800 visualization Methods 0.000 title claims abstract description 23
- 238000011161 development Methods 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims description 65
- 230000006870 function Effects 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 25
- 238000003672 processing method Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 238000007726 management method Methods 0.000 claims description 8
- 238000013523 data management Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims description 2
- 238000004321 preservation Methods 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000000007 visual effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000011068 loading method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011981 development test Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例公开了一种基于可视化的流计算平台、方法、设备和存储介质。其中,该流计算平台包括:数据开发组件、流计算组件以及智能调度组件;其中,所述数据开发组件用于通过流计算中的拖拽算子可视化开发对应的流计算应用,并确定所述流计算应用对应的流计算引擎;所述流计算组件用于解析所述流计算应用中携带的调度参数,并调用所述流计算引擎执行所述流计算应用;所述智能调度组件用于根据所述调度参数调度所述流计算应用的执行。本发明实施例提供的技术方案,无需仅由深入了解流计算应用技术的开发人员来实现,提高了流计算平台的应用范围,支持不同流计算引擎的可扩展性,提高流计算开发的灵活性。
Description
技术领域
本发明实施例涉及数据处理领域,尤其涉及一种基于可视化的流计算平台、方法、设备和存储介质。
背景技术
在传统的数据处理流程中,通常是将所收集到的数据统一存储到数据库中,当用户需要时对数据库进行数据查询得到结果,或者进行相关的数据处理。随着网页应用、网络监控以及传感检测等领域的兴起,产生了一种新的数据密集型应用:流数据,即数据以大量、快速、时变的流式持续产生。传统的数据处理方式,如MapReduce方式的离线处理并不能很好的处理这些流式数据,于是产生了一种新的数据处理方式:流计算,可以实时获取来自不同数据源的海量数据,经过实时分析处理,获取有价值的信息。
流计算秉承着数据的价值随着时间流逝而降低的基本理念,例如淘宝双11的实时交易额等,因此当时间出现时就应该立即进行处理,而不是缓存起来进行批量处理。为了及时处理流数据,就需要一个低延迟、可扩展、高可靠的流式数据处理引擎。
现有的流计算引擎主要有商业级的InfoSphere Streams和StreamBase以及开源版本的Twitter Storm、Spark Streaming和Flink,用的比较广泛的是Spark Streaming和Flink引擎。
其中,Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力,支持从多种数据源获取数据之后,可以使用诸如map、reduce、join和window等高级函数进行复杂算法的处理,最后将处理结果保存到文件系统、数据库或者展示在仪表盘上。Spark Streaming的内部机制是:接收实时的流数据,并根据一定的时间间隔拆分成一批批的数据,封装成一个个弹性分布式数据集(Resilient DistributedDatasets,RDD),然后通过流计算引擎处理这些数据,最后得到处理后的一批批结果。这种微批的处理方式使得它可以同时兼容批量和实时数据处理的逻辑和算法,方便用于历史数据和实时数据联合分析的特定应用场景。
Flink是一个用于对无边界和有边界数据流进行有状态计算的框架和分布式处理引擎,支持流处理与批处理两种类型应用。Flink是完全支持流处理,它把流处理中的输入数据流定义为无界的,批处理被看成一种特殊的流处理,将它的输入数据流定义为有界的。Flink在出现无序或者延迟加载的数据情况下也可以提供准确的结果,而且它是状态化容错的,在维护一次完整的应用转态势,能无缝修复错误,有很好的吞吐量和低延迟。
Spark Streaming与Flink都是通用的开源大规模流数据处理引擎,目前是在一个系统支持所有的数据处理以带来效能的提升,都有成熟的生态系统,但两套引擎都需要有资深的程序员才能参与开发,而且目前的流计算产品通常采用全托管的方式进行流计算,不支持多种复杂应用的处理接口,使得流计算开发的灵活性较低,无法满足不同应用对流计算引擎的需求。
发明内容
本发明实施例提供了一种基于可视化的流计算平台、方法、设备和存储介质,提高流计算开发的灵活性,支持流计算引擎的可扩展性。
第一方面,本发明实施例提供了一种基于可视化的流计算平台,该平台包括:数据开发组件、流计算组件以及智能调度组件;其中,
所述数据开发组件用于通过流计算中的拖拽算子可视化开发对应的流计算应用,并确定所述流计算应用对应的流计算引擎;
所述流计算组件用于解析所述流计算应用中携带的调度参数,并调用所述流计算引擎执行所述流计算应用;
所述智能调度组件用于根据所述调度参数调度所述流计算应用的执行。
第二方面,本发明实施例提供了一种流数据处理方法,该方法包括:
实时获取通过流计算中的拖拽算子可视化开发的流计算应用对应的流数据,并确定对应的流计算引擎;
根据所述流计算应用中携带的调度参数,调用所述流计算引擎按照所述拖拽算子中的处理算子调度处理所述流数据。
第三方面,本发明实施例提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例中所述的流数据处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的流数据处理方法。
本发明实施例提供了一种基于可视化的流计算平台、方法、设备和存储介质,通过流计算中的拖拽算子可视化开发对应的流计算应用,无需仅由深入了解流计算应用技术的开发人员来实现,提高了流计算平台的应用范围,并确定相应的流计算引擎,从而根据该流计算应用中携带的调度参数,调用对应的流计算引擎调度执行各个流计算应用,支持不同流计算引擎的可扩展性,提高流计算开发的灵活性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1A为本发明实施例一提供的一种基于可视化的流计算平台的原理架构图;
图1B为本发明实施例一提供的另一种基于可视化的流计算平台的原理架构图;
图2为本发明实施例二提供的一种基于可视化的流计算平台的原理架构图;
图3为本发明实施例三提供的一种流数据处理方法的流程图;
图4为本发明实施例四提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图1A为本发明实施例一提供的一种基于可视化的流计算平台的原理架构图,本实施例可适用于对流数据进行实时处理的情况中。参照图1A,本实施例中流计算平台10可以包括:数据开发组件110、流计算组件120以及智能调度组件130。
其中,数据开发组件110用于通过流计算中的拖拽算子可视化开发对应的流计算应用,并确定流计算应用对应的流计算引擎;流计算组件120用于解析流计算应用中携带的调度参数,并调用流计算引擎执行流计算应用;智能调度组件130用于根据调度参数调度流计算应用的执行。
具体的,数据开发组件110中预先配置有流计算下包含的多种流处理功能对应的算子,支持开发人员在可视化界面中采用拖拽算子的方式主动选择相应的流处理功能,此时由于可视化界面中各个算子的处理功能是预先设定好的,无需开发人员深入了解流计算的深层技术,因此对开发人员具备的技术要求较低,满足不同用户对流计算平台提供技术能力的需求,提高了流计算平台的应用范围;此外,本实施例的数据开发组件110中还支持开发人员新增加额外的算子,并自定义该新增算子对应的流处理功能,从而保证流计算中算子开发的可扩展性。
进一步的,数据开发组件110根据开发人员在可视化界面中的拖拽算子开发出对应的流计算应用,该流计算应用中包含流数据的来源、处理方式以及存储等各项信息,以明确该流计算应用的作业类型;同时为了保证该流计算应用的执行效果,还需要采用匹配的流计算引擎来执行该流计算应用,因此数据开发组件110还会根据该流计算应用所处的具体应用场景确定对应的流计算引擎,此时数据开发组件110中预先配置有多种流计算引擎,在减少流计算引擎开发工作量的基础上,支持不同流计算引擎在流计算平台中针对各个流计算应用的适应性调整。具体的,本实施例中的流计算引擎可以包括Spark与Flink两种,也可以额外扩展其他的流计算引擎,本实施例对此不作限定。
示例性的,如图1B所示,本实施例中的数据开发组件110上包括流式架构模块、流计算开发模块和流式服务模块三部分;其中,流式架构模块用于通过流计算中的拖拽算子将流计算应用转换为流计算引擎的原生接口所支持的格式;流计算开发模块提供流计算应用的作业类型,用于根据流式架构模块中的拖拽算子开发不同作业类型下的流计算应用;流式服务模块提供流计算应用在执行过程中的作业接口,用于负责流计算应用的生命周期管理。
可选的,由于开发人员在数据开发组件110中以拖拽算子的方式非常便捷的可视化开发对应的流计算应用,而该流计算应用在真正执行的时候需要落地到对应的流计算引擎上,但本实施例中的流计算引擎通过提供该流计算引擎的原生接口给开发人员使用,因此本实施例中的流式架构模块在确定开发人员的拖拽算子后,需要将各个拖拽算子转换到流计算引擎的原生接口上,也就是将流计算应用转换为该原生接口所支持的格式。
接下来对于流式架构模块中流计算应用的拖拽算子与流计算引擎的原生接口之间的转换进行详细的介绍:
流式架构模块(也就是Streaming Framework模块)是数据开发组件110中的核心执行框架,用于对流计算应用中的实时流数据进行统一处理,及时快速的获取准确的结构数据,实现对流数据完整性和实时性的容错以及相应的外部功能配置,同时支持从多数据源和多目标源实时获取流数据,提高流式架构模块的流数据采集宽度。
具体的,流式架构模块通过对流计算应用下的实时流数据进行统一处理,按照相应的处理逻辑和输出手段进行该流数据的计算,此时该流式架构模块可以配置实现以下功能:1)流计算数据倾斜处理在线测试;2)支持复杂事件处理(Complex Event Processing,CEP);3)支持用户自定义函数(User Defined Function,UDF)的编写;4)支持用户上传归档的jar包;5)支持默认参数;6)支持用户在线写代码。
此外,按照执行供能划分,本实施例中流式架构模块可以包括:数据源单元、流处理单元和存储单元。
其中,数据源单元用于从至少一个数据源获取流计算应用对应的流数据;流处理单元用于根据拖拽算子中对应的处理算子对流数据进行计算,得到相应的流计算结果;存储单元用于通过至少一个外部存储系统存储流计算结果。
具体的,在流计算平台中,流式架构模块通过数据源单元从文件系统、消息队列或者数据库等多个源头来获取实时流数据,并通过流处理单元对流数据进行清洗转换之后执行一定的结构化语句或代码逻辑进行计算,此时流处理单元中的算子仅包括相应的执行流计算功能的处理算子,最后通过存储单元将流计算结果输出到关系数据库、Kafka、HBase、Redis、MPP、ElasticSearch等外部存储中。
示例性的,本实施例中数据源单元,也就是Source单元,采用Kafka分布式消息订阅系统,此时开发人员预先在该数据源单元下的拖拽算子中设置好不同流数据的格式,因此数据源单元仅需要按照规定好的设置对流数据进行整理,从而生成一个临时表来注册好,以待后续部分的使用即可。流处理单元,也就是Operator单元,根据注册的临时表对数据源单元中的流数据进行计算,此时流处理单元下的处理算子可以是数据抽取、转换和加载(Extraction Transformation Loading,ETL)操作、数据结构化查询(Structured QueryLanguage,SQL)计算或自定义的操作等,实现流计算中算子的可扩展性。存储单元,也就是Sink单元,将流计算结果输出到关系数据库、Kafka、HBase、Redis、MPP、ElasticSearch等外部存储系统中。
具体的,本实施例的数据源单元通过暴露给用户程序可扩展的Streaming-api接口,比如用户可扩展AppConfigUpdater接口,来实现缓存流数据(如维表、白名单、IP地址库等)的加载与更新;流处理单元通过Streaming-core核心类库,实现与流处理引擎(如Flink或Spark Streaming等)无关的核心功能,比如流计算应用的配置定义,同时通过Streaming-libraries功能库,在依赖Streaming-api和Streaming-core下,提供一些通用流计算功能的实现,比如结构化ETLFunction;存储单元通过Streaming-flink,在依赖Streaming-core和Streaming-libraries下,绑定一种具体的流计算引擎,并构建该流计算引擎的有向无环图(Directed Acyclic Graph,DAG),从而实现流计算引擎与流式架构模块中Source单元、Operator单元和Sink单元的衔接。此时,流式架构模块涵盖了工作流参数以及Source单元、Operator单元和Sink单元的基础功能模块,以及在线写代码、UDF、上传jar包以及在线测试等高级功能,并把这些功能以算子按钮的方式展现在流计算平台的可视化界面中,开发人员在开发流计算应用时,可以以拖拉拽的方式完成,如拖拽新增UDF算子后,弹出单选框提醒选择Java/Scala语法,确认后会自动生成对应的算子处理模板,只需修改eval方法,在参数中配置注册的函数名,保存后会自动组装成完整的UDF。
在本实施例中,流式架构模块Source算子负责读取外部流数据源,一般来说也就是从流计算平台内置的Kafka系统中实时读入流数据,然后交由Operator算子进行流数据处理,比如进行ETL数据转换之类,最后由Sink算子负责把数据写出,比如可以写出到关系型数据库,如Redis,Kafka等。
进一步的,如图1B所示,流计算开发模块提高流计算平台支持开发的流计算应用的多种作业类型,如模板管理、UDF管理、项目管理、版本管理、在线测试和持续集成/持续部署(Continuous Integration/Continuous Deployment,CI/CD)等,此时开发人员通过选择对应的作业类型,并拖拽可视化界面中的对应算子,开发该作业类型下的流计算应用,实现不同作业类型下流计算应用的开发,保证流计算应用的可扩展性。
同时,流式服务模块提供流计算应用在执行过程中所有需要到的作业接口,例如查询Savepoint API和停止Flink作业API等,用于负责流计算应用的生命周期管理,此时流计算应用的开始与停止都需要调用该流式服务模块所提供的作业接口。
具体的,流计算应用在实际执行过程中,为了保证流数据执行的完整性,可以通过流式服务模块对应获取流计算应用的作业执行情况,该生命周期管理具体可以指:流计算应用的作业保存点(savepoint)及记录该savepoint的存储位置、开始或者停止作业执行等。
示例性的,流式服务模块的具体功能包括如下:1)保存启动后的流计算应用在实际执行过程中的相关信息到数据库;2)获取savepoint的位置;3)请求全链路监控系统收集流计算应用运行的相关服务运行信息;4)请求flinkjobmanager保存流计算应用的savepoint并停止流计算应用;5)保存savepoint地址到数据库;6)请求全链路监控系统停止收集流计算应用的相关服务运行信息;7)删除流计算应用的相关信息;8)删除savepoint文件目录。
具体的,流式服务模块通过生命周期控制器LifecycleController内的start函数、stop函数、save函数、getSavepoints函数或者getSavepoint函数等分别调用LifecycleService中的各个对应方法,start函数为启动流计算应用进行相关信息的存储和请求抓取服务运行信息;stop函数进行流计算应用的取消、作业信息的保存以及取消服务运行信息的抓取;save函数用于手动保存流计算应用的savepoint;getSavepoints函数用于获取savepoint列表信息;getSavepoint函数是用来获取最近一次的savepoint位置信息。此时通过生命周期控制器LifecycleController根据智能调度组件130提供的运行模式参数获取流式服务的对应实现,然后再去调用相应的方法。
进一步的,本实施例中的流计算组件120通过解析数据开发组件110根据拖拽算子所开发的流计算应用中携带的调度参数,以便后续智能调度组件130根据该调度参数对应调度多个流计算应用的执行,同时流计算组件120可以调用数据开发组件110确定的流计算引擎执行该流计算应用。
具体的,本实施例中的流计算组件120中包括流式插件,用于对接数据开发组件110和智能调度组件130,在智能调度组件130根据各个流计算应用中携带的调度参数的调度下,调用对应的流计算引擎执行各个流计算应用,并通知数据开发组件110记录流计算应用的作业信息。
示例性的,流式插件对流计算应用中携带的调度参数进行统一处理,并进行相应的加工和整理,经由智能调度组件130的调度运行,进行参数的转换和整理以及流计算应用的启动等功能,实现从调度到实时任务的启动的系列功能。
以流计算引擎flink为例,其启动流计算应用的流程如下:
1)流式插件进行参数转换整理,涉及各组件的参数以及调度传递过来的参数;2)请求元数据库获取需要的元数据信息;3)流式插件通过数据开发组件110中的流式服务模块获取savepoint的路径,有则使用,无则使用调度传过来的路径;4)生成相应的yarn任务并运行在yarn-cluster上;5)通过数据开发组件110中的流式服务模块存储流计算应用的相关信息到数据库,并请求全链路监控系统收集流计算应用的相关服务运行信息;6)通过flink shell命令将flink任务发到yarn queue上来运行,并在执行完成后返回。
进一步的,智能调度组件130根据该流计算平台中所开发的不同流计算应用携带的调度参数,调度各个流计算应用的并行执行,提高流计算的处理效率。
本实施例提供的技术方案,通过流计算中的拖拽算子可视化开发对应的流计算应用,无需仅由深入了解流计算应用技术的开发人员来实现,提高了流计算平台的应用范围,并确定相应的流计算引擎,从而根据该流计算应用中携带的调度参数,调用对应的流计算引擎调度执行各个流计算应用,支持不同流计算引擎的可扩展性,提高流计算开发的灵活性。
实施例二
图2为本发明实施例二提供的一种基于可视化的流计算平台的原理架构图,本实施例是在上述实施例的基础上进行优化。参照图2,本实施例中基于可视化的流计算平台20在包括数据开发组件210、流计算组件220以及智能调度组件230之外,还可以包括:数据采集组件240、数据管理组件250和运营组件260。
其中,数据采集组件240用于实时采集流计算应用对应的流数据,并发送给流计算组件220,以使流计算组件调用流计算引擎处理流计算应用对应的流数据;数据管理组件250用于管理流计算应用对应的元数据和数据权限;运营组件260用于维护流计算组件220的运行情况。
具体的,在流计算应用的实际执行过程中,首先会通过数据采集组件240实时采集对应的流数据,并发送给流计算组件220调用对应的流计算引擎执行;数据管理组件250对流计算应用的实际执行过程中生成的元数据和数据权限进行管理,以便后续使用;运营组件260用于维护流计算组件220的运行情况,避免流计算应用在实际执行过程中出现故障。
此时,流计算平台借助数据开发、智能调度的能力,构建从开发测试到部署运维一站式的开发环境,提供给开发人员可视化的应用开发界面,同时输出不同抽象粒度的作业接口,兼顾开发效率与扩展性。流计算平台致力于提供给用户更高效的流计算应用开发环境与更好的运维保障,同时流计算平台与数据管理相结合,通过获取元数据信息,实现端到端SQL化的能力。
本实施例提供的技术方案,通过流计算中的拖拽算子可视化开发对应的流计算应用,无需仅由深入了解流计算应用技术的开发人员来实现,提高了流计算平台的应用范围,并确定相应的流计算引擎,从而根据该流计算应用中携带的调度参数,调用对应的流计算引擎调度执行各个流计算应用,支持不同流计算引擎的可扩展性,提高流计算开发的灵活性。
实施例三
图3为本发明实施例三提供的一种流数据处理方法的流程图,本实施例可适用于对流数据进行实时处理的情况中。本实施例提供的流数据处理方法可以应用于本发明实施例提供的基于可视化的流计算平台上,本实施例提供的一种流数据处理方法可以由本发明实施例提供的设备来执行,在本实施例中执行本方法的设备可以是配置有流计算平台的终端设备。
具体的,参考图3,该方法可以包括如下步骤:
S310,实时获取通过流计算中的拖拽算子可视化开发的流计算应用对应的流数据,并确定对应的流计算引擎。
具体的,开发人员通过流计算平台中的数据开发组件在可视化界面中拖拽算子,并选择相应流计算应用的作业类型,此时数据开发组件根据开发人员在可视化界面中的拖拽算子开发出对应的流计算应用,该流计算应用中包含流数据的来源、处理方式以及存储等各项信息,以明确该流计算应用的作业类型;同时为了保证该流计算应用的执行效果,还需要采用匹配的流计算引擎来执行该流计算应用,因此数据开发组件还会根据该流计算应用所处的具体应用场景确定对应的流计算引擎,此时数据开发组件中预先配置有多种流计算引擎,在减少流计算引擎开发工作量的基础上,支持不同流计算引擎在流计算平台中针对各个流计算应用的适应性调整。
需要说明的是,本实施例中的流计算引擎可以包括Spark与Flink两种,也可以额外扩展其他的流计算引擎,本实施例对此不作限定。
S320,根据流计算应用中携带的调度参数,调用流计算引擎按照拖拽算子中的处理算子调度处理流数据。
具体的,本实施例中的流计算应用中包括Source算子、Operator算子和Sink算子三种,其中Source算子为从多数据源和多目标源实时获取对应的流数据,Operator算子为流计算应用对应的流数据进行处理计算的算子,也就是本实施例中拖拽算子中的处理算子,Sink算子为输出流计算应用的流计算结果。因此流计算平台通过智能调度组件根据流计算组件所解析的数据开发组件根据拖拽算子所开发的各个流计算应用中携带的调度参数,调度各个流计算应用的执行,也就是通过流计算组件基于各个流计算应用的调度执行顺序调用流计算引擎按照各个流计算应用中拖拽算子中的处理算子调度处理对应的流数据,得到各个流计算应用的流计算结果。
示例性的,本实施例中根据流计算应用中携带的调度参数,调用流计算引擎按照拖拽算子中的处理算子调度处理流数据,具体可以包括:根据拖拽算子与流计算引擎的原生接口之间的转换关系,将流数据转换为原生接口所支持的格式;调用流计算引擎调度处理转换后的流数据。
具体的,由于开发人员在数据开发组件中以拖拽算子的方式非常便捷的可视化开发对应的流计算应用,而该流计算应用在真正执行的时候需要落地到对应的流计算引擎上,但本实施例中的流计算引擎通过提供该流计算引擎的原生接口给开发人员使用,因此本实施例中的流式架构模块在确定开发人员的拖拽算子后,需要将各个拖拽算子转换到流计算引擎的原生接口上,也就是根据拖拽算子与流计算引擎的原生接口之间的转换关系,将流计算应用对应的流数据转换为该原生接口所支持的格式,后续基于智能调度模块的调度执行顺序,调用对应的流计算引擎调度处理该流计算应用在转换后的流数据。
本实施例提供的技术方案,通过流计算中的拖拽算子可视化开发对应的流计算应用,无需仅由深入了解流计算应用技术的开发人员来实现,提高了流计算平台的应用范围,并确定相应的流计算引擎,从而根据该流计算应用中携带的调度参数,调用对应的流计算引擎调度执行各个流计算应用,支持不同流计算引擎的可扩展性,提高流计算开发的灵活性。
实施例四
图4为本发明实施例四提供的一种设备的结构示意图。如图4所示,该设备包括处理器40、存储装置41和通信装置42;设备中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;设备的处理器40、存储装置41和通信装置42可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储装置41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块。处理器40通过运行存储在存储装置41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的流数据处理方法。
存储装置41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信装置42可用于实现设备间网络连接或者移动数据连接。
本实施例提供的一种设备可用于执行上述任意实施例提供的流数据处理方法,具备相应的功能和有益效果。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的流数据处理方法。该方法具体可以包括:
实时获取通过流计算中的拖拽算子可视化开发的流计算应用对应的流数据,并确定对应的流计算引擎;
根据流计算应用中携带的调度参数,调用流计算引擎按照拖拽算子中的处理算子调度处理流数据。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的流数据处理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于可视化的流计算装置,其特征在于,包括:数据开发组件、流计算组件以及智能调度组件;其中,
所述数据开发组件用于通过流计算中的拖拽算子可视化开发对应的流计算应用,并确定所述流计算应用对应的流计算引擎;其中,所述拖拽算子的处理功能是预先设定的;
所述流计算组件用于解析所述流计算应用中携带的调度参数,并调用所述流计算引擎执行所述流计算应用;
所述智能调度组件用于根据所述调度参数调度所述流计算应用的执行;
其中,所述数据开发组件上包括流式架构模块、流计算开发模块和流式服务模块;其中,
所述流式架构模块用于通过流计算中的拖拽算子将所述流计算应用转换为所述流计算引擎的原生接口所支持的格式;
所述流计算开发模块提供所述流计算应用的作业类型,用于根据所述流式架构模块中的拖拽算子开发不同作业类型下的流计算应用;
所述流式服务模块提供所述流计算应用在执行过程中的作业接口,用于负责所述流计算应用的生命周期管理;所述流计算应用的开始与停止都需要调用所述流式服务模块所提供的作业接口;
其中,所述流式架构模块包括数据源单元、流处理单元和存储单元;其中,
所述数据源单元用于从至少一个数据源获取所述流计算应用对应的实时流数据;
所述流处理单元用于根据所述拖拽算子中对应的处理算子对所述流数据进行清洗转换之后执行结构化语句或代码逻辑进行计算,得到相应的流计算结果;
所述存储单元用于通过至少一个外部存储系统存储所述流计算结果;
其中,所述数据开发组件还用于增加额外的算子,并自定义新增算子对应的流处理功能;
所述流式服务模块还用于:
保存启动后的流计算应用在实际执行过程中的信息到数据库;
获取所述流计算应用的作业保存点的位置;
请求全链路监控系统收集所述流计算应用运行的服务运行信息;
请求作业管理器保存所述作业保存点并停止所述流计算应用;
保存所述作业保存点地址到数据库;
删除所述流计算应用的信息和所述作业保存点的文件目录。
2.根据权利要求1所述的流计算装置,其特征在于,所述流计算组件包括流式插件,用于对接所述数据开发组件和所述智能调度组件,在所述智能调度组件根据所述调度参数的调度下,调用所述流计算引擎执行所述流计算应用,并通知所述数据开发组件记录所述流计算应用的作业信息。
3.根据权利要求1所述的流计算装置,其特征在于,所述流计算引擎包括Spark与Flink。
4.根据权利要求1所述的流计算装置,其特征在于,还包括:数据采集组件、数据管理组件和运营组件;其中,
所述数据采集组件用于实时采集所述流计算应用对应的流数据,并发送给所述流计算组件,以使所述流计算组件调用所述流计算引擎处理所述流计算应用对应的流数据;
所述数据管理组件用于管理所述流计算应用对应的元数据和数据权限;
所述运营组件用于维护所述流计算组件的运行情况。
5.一种流数据处理方法,其特征在于,应用于权利要求1-4任一项所述的基于可视化的流计算装置中,包括:
实时获取通过流计算中的拖拽算子可视化开发的流计算应用对应的流数据,并确定对应的流计算引擎;
根据所述流计算应用中携带的调度参数,调用所述流计算引擎按照所述拖拽算子中的处理算子调度处理所述流数据。
6.根据权利要求5所述的方法,其特征在于,所述调用所述流计算引擎按照所述拖拽算子中的处理算子调度处理所述流数据,包括:
根据所述拖拽算子与所述流计算引擎的原生接口之间的转换关系,将所述流数据转换为所述原生接口所支持的格式;
调用所述流计算引擎调度处理转换后的流数据。
7.一种电子设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求5或6所述的流数据处理方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求5或6所述的流数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911181321.5A CN110908641B (zh) | 2019-11-27 | 2019-11-27 | 基于可视化的流计算平台、方法、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911181321.5A CN110908641B (zh) | 2019-11-27 | 2019-11-27 | 基于可视化的流计算平台、方法、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110908641A CN110908641A (zh) | 2020-03-24 |
CN110908641B true CN110908641B (zh) | 2024-04-26 |
Family
ID=69818708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911181321.5A Active CN110908641B (zh) | 2019-11-27 | 2019-11-27 | 基于可视化的流计算平台、方法、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908641B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113687816B (zh) * | 2020-05-19 | 2023-09-01 | 杭州海康威视数字技术股份有限公司 | 算子的可执行代码的生成方法及装置 |
CN112364290B (zh) * | 2020-11-18 | 2022-09-02 | 中睿信数字技术有限公司 | 一种基于流式计算的可视化计算模型构建方法和系统 |
CN112596917A (zh) * | 2020-11-20 | 2021-04-02 | 广东电网有限责任公司广州供电局 | 电力数据信息处理方法、装置、控制设备和存储介质 |
CN112506497B (zh) * | 2020-11-30 | 2021-08-24 | 北京九章云极科技有限公司 | 一种数据处理方法和数据处理系统 |
CN112685004B (zh) * | 2020-12-21 | 2022-08-05 | 福建新大陆软件工程有限公司 | 一种基于实时流计算的在线组件编排计算方法及系统 |
CN113010429A (zh) * | 2021-03-26 | 2021-06-22 | 北京金山云网络技术有限公司 | 一种流计算应用的测试方法、装置及设备 |
CN113821200B (zh) * | 2021-08-20 | 2022-08-30 | 浙江时空道宇科技有限公司 | 大数据任务可拖拽建模方法、系统、存储介质和终端 |
CN115576537B (zh) * | 2022-11-26 | 2024-05-14 | 山东麦格字节数据科技有限公司 | 一种串口数据包和解析器的堆栈式模型配置方法、装置 |
CN115795242A (zh) * | 2023-02-09 | 2023-03-14 | 云筑信息科技(成都)有限公司 | 一种基于Flink流式计算引擎实现海量数据近实时处理的方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572182A (zh) * | 2014-12-23 | 2015-04-29 | 杭州华为数字技术有限公司 | 一种流应用的配置方法、节点及流计算系统 |
CN107678790A (zh) * | 2016-07-29 | 2018-02-09 | 华为技术有限公司 | 流计算方法、装置及系统 |
CN107688659A (zh) * | 2017-09-08 | 2018-02-13 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及装置 |
CN107943945A (zh) * | 2017-11-24 | 2018-04-20 | 清华大学 | 一种大数据分析开发平台中异构算子管理方法 |
CN108037919A (zh) * | 2017-12-01 | 2018-05-15 | 北京博宇通达科技有限公司 | 一种基于web的可视化大数据工作流配置方法及系统 |
CN109697062A (zh) * | 2019-01-14 | 2019-04-30 | 深圳孟德尔软件工程有限公司 | 一种多源数据交换系统及融合方法 |
CN109710215A (zh) * | 2018-12-25 | 2019-05-03 | 福建南威软件有限公司 | 分布式流计算的可视化流程处理引擎及其使用方法 |
CN109725899A (zh) * | 2019-01-04 | 2019-05-07 | 中国银行股份有限公司 | 数据流式处理方法及装置 |
CN110209646A (zh) * | 2019-05-14 | 2019-09-06 | 汇通达网络股份有限公司 | 一种基于实时流式计算的数据平台系统 |
-
2019
- 2019-11-27 CN CN201911181321.5A patent/CN110908641B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572182A (zh) * | 2014-12-23 | 2015-04-29 | 杭州华为数字技术有限公司 | 一种流应用的配置方法、节点及流计算系统 |
CN107678790A (zh) * | 2016-07-29 | 2018-02-09 | 华为技术有限公司 | 流计算方法、装置及系统 |
CN107688659A (zh) * | 2017-09-08 | 2018-02-13 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及装置 |
CN107943945A (zh) * | 2017-11-24 | 2018-04-20 | 清华大学 | 一种大数据分析开发平台中异构算子管理方法 |
CN108037919A (zh) * | 2017-12-01 | 2018-05-15 | 北京博宇通达科技有限公司 | 一种基于web的可视化大数据工作流配置方法及系统 |
CN109710215A (zh) * | 2018-12-25 | 2019-05-03 | 福建南威软件有限公司 | 分布式流计算的可视化流程处理引擎及其使用方法 |
CN109725899A (zh) * | 2019-01-04 | 2019-05-07 | 中国银行股份有限公司 | 数据流式处理方法及装置 |
CN109697062A (zh) * | 2019-01-14 | 2019-04-30 | 深圳孟德尔软件工程有限公司 | 一种多源数据交换系统及融合方法 |
CN110209646A (zh) * | 2019-05-14 | 2019-09-06 | 汇通达网络股份有限公司 | 一种基于实时流式计算的数据平台系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110908641A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908641B (zh) | 基于可视化的流计算平台、方法、设备和存储介质 | |
US10275221B2 (en) | Systems and methods for generating data visualization applications | |
Li et al. | Performance modeling and predictive scheduling for distributed stream data processing | |
JP6117378B2 (ja) | 分散型データベースクエリ・エンジン用のシステムおよび方法 | |
CN109656963B (zh) | 元数据获取方法、装置、设备及计算机可读存储介质 | |
WO2020238597A1 (zh) | 基于Hadoop的数据更新方法、装置、系统及介质 | |
CN109815283B (zh) | 一种异构数据源可视化查询方法 | |
US11314808B2 (en) | Hybrid flows containing a continous flow | |
CN107103064B (zh) | 数据统计方法及装置 | |
JP2017515180A (ja) | ビッグ・データ・リポジトリにおけるデータ・セットの処理 | |
US20140156849A1 (en) | Map-reduce workflow processing apparatus and method, and storage media storing the same | |
CN111797157B (zh) | 一种数据处理方法、系统及电子设备和存储介质 | |
CN110569090A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US20160063107A1 (en) | Data retrieval via a telecommunication network | |
WO2018035799A1 (zh) | 数据查询方法、应用和数据库服务器、中间件及系统 | |
CN112379884A (zh) | 基于Spark和并行内存计算的流程引擎实现方法及系统 | |
US11182386B2 (en) | Offloading statistics collection | |
CN113886111B (zh) | 一种基于工作流的数据分析模型计算引擎系统及运行方法 | |
CN115857918A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113806429A (zh) | 基于大数据流处理框架的画布式日志分析方法 | |
CN118035204A (zh) | 数据血缘显示方法、分布式任务调度系统及存储介质 | |
CN115220131B (zh) | 气象数据质检方法及系统 | |
CN110928938B (zh) | 一种接口中间件系统 | |
US20170337644A1 (en) | Data driven invocation of realtime wind market forecasting analytics | |
US11475017B2 (en) | Asynchronous data enrichment for an append-only data store |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220920 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |