CN112287007B - 基于Flink SQL引擎的工业生产数据实时处理方法、系统 - Google Patents
基于Flink SQL引擎的工业生产数据实时处理方法、系统 Download PDFInfo
- Publication number
- CN112287007B CN112287007B CN202011196994.0A CN202011196994A CN112287007B CN 112287007 B CN112287007 B CN 112287007B CN 202011196994 A CN202011196994 A CN 202011196994A CN 112287007 B CN112287007 B CN 112287007B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- flink
- setting
- rabbitmq
- 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
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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于Flink SQL引擎的工业生产数据实时处理方法、系统,所述方法包括:Flink SQL任务配置;对接工业企业生产设备数据,在开源的Flink Table连接器中扩展RabbitMQ Source连接器;扩展额外的自定义函数;执行数据ETL流程,创建中间表;根据不同ETL流程处理,持久化到不同的数据库;设置任务提交运行模式。该方法解决了工业现场数据复杂繁琐的采集流程,通过RabbitMQ实时自动化采集,无需开发代码处理数据,提供了简单易学的SQL语句处理工业现场实时数据,对于工业企业非开发工作人员也易于上手操作,减少工作学习成本以及提高数据传输效率。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于Flink SQL的工业生产数据实时处理方法和一种基于Flink SQL引擎的工业生产数据实时处理系统。Flink SQL为Flink实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准SQL(Structured Query Language,结构化查询语言)语义的开发语言引擎。
背景技术
随着技术的发展,工业生产数据的实时采集与处理变得尤为重要。
相关技术中,工业生产数据的采集与处理存在流程复杂、繁琐的问题,且一般使用Java开发语言,开发难度较大。
发明内容
本发明为解决上述技术问题,提出了一种基于Flink SQL引擎的工业生产数据实时处理方法,该方法解决了工业现场数据复杂繁琐的采集流程,通过RabbitMQ(实现了高级消息队列协议的开源消息代理软件(亦称面向消息的中间件)实时自动化采集,无需开发代码处理数据,提供了简单易学的 SQL语句处理工业现场实时数据,对于工业企业非开发工作人员也易于上手操作,减少工作学习成本以及提高数据传输效率。
本发明还提出一种基于Flink SQL引擎的工业生产数据实时处理系统。
本发明采用的技术方案如下:
本发明第一方面实施例提出了一种基于Flink SQL引擎的工业生产数据实时处理方法,包括以下步骤:指定所述Flink SQL的任务执行模式、任务运行名称、任务资源队列名称、执行任务所需Jar(是一种软件包文件格式) 、任务执行策略、任务文件系统依赖;使用RabbitMQ集群对接工业企业生产设备数据,在开源的Flink Table连接器中扩展RabbitMQSource(源)连接器,创建数据源表,设置连接信息;基于原生Flink Function(函数)扩展额外的自定义函数,根据不同的ETL(Extract-Transform-Load,抽取-转换- 加载)数据处理场景开发不同的函数;执行数据ETL流程,使用Kafka(开源流处理平台)集群作为实时数据流中间件创建中间表,指定 connector(连接器)标识为Kafka,设置连Kafka集群必要参数,指定 Format(一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类)结构为Json(JavaScript Object Notation,JS对象简谱,是一种轻量级的数据交换格式),排除无效信息;根据不同ETL流程处理,持久化到不同的数据库,所述中间表根据所述不同的数据库选择Flink Sink连接器,并指定相对应的connector(连接器)标识和不同结构的Format;设置任务提交运行模式,指定运行jobManager(作业管理器)、TaskManager(任务管理器)、Slot(周边元件扩展插槽)资源。
根据本发明的一个实施例,指定所述任务名称包括:按照任务命名规则设置任务名称;指定所述资源队列名称:根据任务类型和任务功能选择资源队列名称为所述任务资源队列名称;指定所述执行任务所需Jar包括:选择 FlinkSQL RabbitMQ Source连接器为额外依赖的jar,选择FlinkSQL Kafka 连接器为任务packages额外添加的jar,其他非必要依赖根据不同的ETL 流程和输出持久化的不同添加jar;指定所述任务执行策略包括:设置任务故障重启策略、重启次数、重启时间间隔;指定所述任务文件系统依赖包括:设置checkpoints检查点持久化文件系统依赖为HDFS分布式文件系统,根据checkpoints检查点文件恢复任务,设置savepoints保存点持久化文件系统依赖为HDFS分布式文件系统,以在任务程序升级或更新时在任务上次停止时的保存点恢复任务。
根据本发明的一个实施例,所述扩展RabbitMQ连接器包括:实现原生 FlinkSQLDynamicTableSourceFactory(动态表工厂接口)接口开发RabbitMQ Source工厂类,指定RabbitMQ连接器必要参数,实现 ScanTableSource(扫描表源接口)接口复写getScanRuntimeProvider(扫描运行时程序方法)方法消费RabbitMQ数据,实现数据结构化映像为指定表结构;所述创建数据源表包括:根据所述工业生产数据结构schema(模式)创建数据源表,设置connector为RabbitMQ;所述设置连接信息包括:设置 RabbitMQ集群地址、用户和密码、Topic信息,指定Format结构为Json,设置仅对指定结构化数据进行处理保持任务的稳定性。
根据本发明的一个实施例,基于原生Flink Function扩展额外的自定义函数,包括:继承原生FlinkSQL ScalarFunction类,并复写eval(一种函数) 方法,在eval方法中开发数据处理逻辑,指定返回值类型为数据返回结果类型;编译开发好的自定义函数项目打成jar,放入指定udf函数lib库。
根据本发明的一个实施例,设置任务提交运行模式,包括:根据不同任务场景配置运行模式,所述运行模式包括:local、remote、Yarn模式;设置 jobManager、TaskManager、Slot任务所需合理资源,并且提交到Flink集群或Flink On Yarn集群中运行。
本发明第二方面实施例提出了一种基于Flink SQL引擎的工业生产数据实时处理系统,包括:配置模块,所述配置模块用于指定所述Flink SQL的任务执行模式、任务运行名称、任务资源队列名称、执行任务所需Jar、任务执行策略、任务文件系统依赖;数据接入模块,所述数据接入模块使用 RabbitMQ集群对接工业企业生产设备数据,在开源的FlinkTable连接器中扩展RabbitMQ Source连接器,创建数据源表,设置连接信息;函数开发模块,所述函数开发模块用于基于原生Flink Function扩展额外的自定义函数,根据不同的ETL数据处理场景开发不同的函数;数据执行模块,所述数据执行模块用于执行数据ETL流程,使用Kafka集群作为实时数据流中间件创建中间表,指定connector标识为Kafka,设置连接Kafka集群必要参数,指定Format结构为Json,排除无效信息;数据输出模块,所述数据输出模块用于根据不同ETL流程处理,持久化到不同的数据库,所述中间表根据所述不同的数据库选择Flink Sink连接器,并指定相对应的connector标识和不同结构的Format;提交模块,所述提交模块用于设置任务提交运行模式,指定运行jobManager、TaskManager、Slot资源。
根据本发明的一个实施例,所述配置模块具体用于:按照任务命名规则设置任务名称;根据任务类型和任务功能选择资源队列名称为所述任务资源队列名称;选择FlinkSQL RabbitMQ Source连接器为额外依赖的jar,选择 FlinkSQL Kafka连接器为任务packages额外添加的jar,其他非必要依赖根据不同的ETL流程和输出持久化的不同添加jar;设置任务故障重启策略、重启次数、重启时间间隔;设置checkpoints检查点持久化文件系统依赖为 HDFS分布式文件系统,根据checkpoints检查点文件恢复任务,设置savepoints保存点持久化文件系统依赖为HDFS(Hadoop Distributed File System,分布式文件系统)分布式文件系统,以在任务程序升级或更新时在任务上次停止时的保存点恢复任务。
根据本发明的一个实施例,所述数据接入模块具体用于:实现原生 FlinkSQLDynamicTableSourceFactory接口开发RabbitMQ Source工厂类,指定RabbitMQ连接器必要参数,实现ScanTableSource接口复写 getScanRuntimeProvider方法消费RabbitMQ数据,实现数据结构化映像为指定表结构;根据所述工业生产数据结构schema创建数据源表,设置 connector为RabbitMQ;设置RabbitMQ集群地址、用户和密码、Topic信息,指定Format结构为Json,设置仅对指定结构化数据进行处理保持任务的稳定性。
根据本发明的一个实施例,所述函数开发模块具体用于:继承原生 FlinkSQLScalarFunction类,并复写eval方法;在eval方法中开发数据处理逻辑,指定返回值类型为数据返回结果类型;编译开发好的自定义函数项目打成jar,放入指定udf函数lib库。
根据本发明的一个实施例,所述提交模块具体用于:根据不同任务场景配置运行模式,所述运行模式包括:local、remote、Yarn模式;设置 jobManager、TaskManager、Slot任务所需合理资源,并且提交到Flink集群或Flink On Yarn集群中运行。
本发明的有益效果:
本发明解决了工业现场数据复杂繁琐的采集流程,通过RabbitMQ实时自动化采集,无需开发代码处理数据,提供了简单易学的SQL语句处理工业现场实时数据,对于工业企业非开发工作人员也易于上手操作,减少工作学习成本以及提高数据传输效率。
附图说明
图1是根据本发明一个实施例的基于Flink SQL引擎的工业生产数据实时处理方法的流程图;
图2是根据本发明一个实施例的基于Flink SQL引擎的工业生产数据实时处理方法的原理图;
图3是根据本发明一个实施例的基于Flink SQL引擎的工业生产数据实时处理系统的方框示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是根据本发明一个实施例的基于Flink SQL引擎的工业生产数据实时处理方法的流程图。如图1所示,该方法包括以下步骤:
S1,指定Flink SQL的任务执行模式、任务运行名称、任务资源队列名称、执行任务所需Jar、任务执行策略、任务文件系统依赖。
进一步而言,根据本发明的一个实施例,指定任务名称包括:按照任务命名规则设置任务名称;指定资源队列名称:根据任务类型和任务功能选择资源队列名称为任务资源队列名称;指定执行任务所需Jar包括:选择 FlinkSQL RabbitMQ Source连接器为额外依赖的jar,选择FlinkSQL Kafka 连接器为任务packages额外添加的jar,其他非必要依赖根据不同的ETL 流程和输出持久化的不同添加jar;指定任务执行策略包括:设置任务故障重启策略、重启次数、重启时间间隔,当任务遇到网络抖动或非SQL语句导致任务宕机时可按照策略进行重启;指定任务文件系统依赖包括:设置 checkpoints检查点持久化文件系统依赖为HDFS分布式文件系统,根据 checkpoints检查点文件恢复任务,设置savepoints保存点持久化文件系统依赖为HDFS分布式文件系统,以在任务程序升级或更新时在任务上次停止时的保存点恢复任务,保证数据不重复消费。
S2,使用RabbitMQ集群对接工业企业生产设备数据,在开源的Flink Table连接器中扩展RabbitMQ Source连接器,创建数据源表,设置连接信息。
进一步而言,根据本发明的一个实施例,扩展RabbitMQ连接器包括:实现原生FlinkSQL DynamicTableSourceFactory接口开发RabbitMQ Source工厂类,指定RabbitMQ连接器必要参数,实现ScanTableSource接口复写 getScanRuntimeProvider方法消费RabbitMQ数据,实现数据结构化映像为指定表结构;创建数据源表包括:根据工业生产数据结构schema创建数据源表,设置connector为RabbitMQ;设置连接信息包括:设置RabbitMQ集群地址、用户和密码、Topic信息,指定Format结构为Json,设置仅对指定结构化数据进行处理保持任务的稳定性。
S3,基于原生Flink Function扩展额外的自定义函数,根据不同的 ETL数据处理场景开发不同的函数。
进一步而言,根据本发明的一个实施例,基于原生Flink Function扩展额外的自定义函数,包括:继承原生FlinkSQL ScalarFunction类,并复写 eval方法,在eval方法中开发数据处理逻辑,指定返回值类型为数据返回结果类型;编译开发好的自定义函数项目打成jar,放入指定udf函数lib库。
S4,执行数据ETL流程,使用Kafka集群作为实时数据流中间件创建中间表,指定connector标识为Kafka,设置连Kafka集群必要参数,指定 Format结构为Json,排除无效信息。
具体的,根据数据经过ETL处理后的中间表结构schema创建数据中间表,设置connector为Kafka;设置Kafka集群地址、消费组、Topic信息,指定Format结构为Json并把处理后的数据写入到Kafka中间表中;在数据处理过程原生FlinkSql函数不支持处理字段时,可配置已经开发好的自定义函数,在FlinkSql任务配置步骤中指定相应udf函数lib库。
S5,根据不同ETL流程处理,持久化到不同的数据库,中间表根据不同的数据库选择Flink Sink连接器,并指定相对应的connector标识和不同结构的Format。
具体的,根据不同的ETL需求选择不同Sink连接器,可以拓展额外开发自定义Sink连接器热插式集成到FlinkSql引擎中;对不同中间表处理后的结果的Schema创建结构表,设置connector为指定持久化数据库 Sink连接器;设置持久化数据库连接器地址,指定库、表、主键等信息并把处理后的数据写入结果中。
S6,设置任务提交运行模式,指定运行jobManager、TaskManager、 Slot资源。
其中,设置任务运行模式:可根据不同任务场景配置运行模式,可配置local、remote、Yarn模式,其中Yarn模式是集群模式需配置集群信息;任务提交:设置jobManager、TaskManager、Slot任务所需合理资源,并且提交到Flink集群或Flink On Yarn集群中运行。
具体的,如图2所示,使用RabbitMQ集群对接工业企业生产设备数据,在开源的Flink Table连接器中扩展RabbitMQ Source连接器,指定 RabbitMQ连接器实时消费RabbitMQ数据,把字节数组转换标准化 Json字符串,使用FlinkSql映射Json字符串定义数据源表,根据不同工厂企业的数据处理逻辑定义不同的数据处理中间表、数据目标表,其中,根据数据的复杂程度可编写UDF、UDTF、UDAF自定义函数处理数据,除去数据源表以外,其他每层数据通过Kafka集群进行传输;FlinkSql数据实时平台处理引擎将准备就绪的Sql语句提交至Flink 集群,Flink集群根据Sql 语句进行处理,其中根据目标表所选择的Sink连接器将处理后的数据输出不同的数据库(Mysql、clickhouse、Hbase…)。本发明解决了工业现场数据复杂繁琐的采集流程,通过RabbitMQ实时自动化采集,无需开发代码处理数据,提供了简单易学的Sql语句处理工业现场实时数据,对于工业企业非开发工作人员也易于上手操作,减少工作学习成本以及提高数据传输效率。
综上所述,根据本发明实施例的基于Flink SQL引擎的工业生产数据实时处理方法,指定Flink SQL的任务执行模式、任务运行名称、任务资源队列名称、执行任务所需Jar、任务执行策略、任务文件系统依赖;使用 RabbitMQ集群对接工业企业生产设备数据,在开源的Flink Table连接器中扩展RabbitMQ Source连接器,创建数据源表,设置连接信息;基于原生 Flink Function扩展额外的自定义函数,根据不同的ETL数据处理场景开发不同的函数;执行数据ETL流程,使用Kafka集群作为实时数据流中间件创建中间表,指定connector标识为Kafka,设置连Kafka集群必要参数,指定Format结构为Json,排除无效信息;根据不同ETL流程处理,持久化到不同的数据库,中间表根据不同的数据库选择FlinkSink连接器,并指定相对应的connector标识和不同结构的Format;设置任务提交运行模式,指定运行jobManager、TaskManager、Slot资源。由此,解决了工业现场数据复杂繁琐的采集流程,通过RabbitMQ实时自动化采集,无需开发代码处理数据,提供了简单易学的SQL语句处理工业现场实时数据,对于工业企业非开发工作人员也易于上手操作,减少工作学习成本以及提高数据传输效率。
与上述的基于Flink SQL引擎的工业生产数据实时处理方法相对应,本发明还提出一种基于Flink SQL引擎的工业生产数据实时处理系统。由于本发明的系统实施例与上述的方法实施例相对应,对于系统实施例中未披露的细节可参照上述的方法实施例,本发明中不再进行赘述。
图3是根据本发明一个实施例的基于Flink SQL引擎的工业生产数据实时处理系统的方框示意图。如图3所示,该系统包括:配置模块1、数据接入模块2、函数开发模块3、数据执行模块4、数据输出模块5、提交模块 6。
其中,配置模块1用于指定Flink SQL的任务执行模式、任务运行名称、任务资源队列名称、执行任务所需Jar、任务执行策略、任务文件系统依赖;数据接入模块2用于使用RabbitMQ集群对接工业企业生产设备数据,在开源的Flink Table连接器中扩展RabbitMQSource连接器,创建数据源表,设置连接信息;函数开发模块3用于基于原生FlinkFunction扩展额外的自定义函数,根据不同的ETL数据处理场景开发不同的函数;数据执行模块4用于执行数据ETL流程,使用Kafka集群作为实时数据流中间件创建中间表,指定connector标识为Kafka,设置连接Kafka集群必要参数,指定 Format结构为Json,排除无效信息;数据输出模块5用于根据不同ETL流程处理,持久化到不同的数据库,中间表根据不同的数据库选择Flink Sink 连接器,并指定相对应的connector标识和不同结构的Format;提交模块 6用于设置任务提交运行模式,指定运行jobManager、TaskManager、Slot资源。
根据本发明的一个实施例,所述配置模块具体用于:按照任务命名规则设置任务名称;根据任务类型和任务功能选择资源队列名称为所述任务资源队列名称;选择FlinkSQL RabbitMQ Source连接器为额外依赖的jar,选择 FlinkSQL Kafka连接器为任务packages额外添加的jar,其他非必要依赖根据不同的ETL流程和输出持久化的不同添加jar;设置任务故障重启策略、重启次数、重启时间间隔;设置checkpoints检查点持久化文件系统依赖为 HDFS分布式文件系统,根据checkpoints检查点文件恢复任务,设置savepoints保存点持久化文件系统依赖为HDFS分布式文件系统,以在任务程序升级或更新时在任务上次停止时的保存点恢复任务,保证数据不重复消费。
根据本发明的一个实施例,数据接入模块2具体用于:实现原生 FlinkSQLDynamicTableSourceFactory接口开发RabbitMQ Source工厂类,指定RabbitMQ连接器必要参数,实现ScanTableSource接口复写 getScanRuntimeProvider方法消费RabbitMQ数据,实现数据结构化映像为指定表结构;根据工业生产数据结构schema创建数据源表,设置connector为 RabbitMQ;设置RabbitMQ集群地址、用户和密码、Topic信息,指定 Format结构为Json,设置仅对指定结构化数据进行处理保持任务的稳定性。
根据本发明的一个实施例,函数开发模块3具体用于:继承原生 FlinkSQLScalarFunction类,并复写eval方法;在eval方法中开发数据处理逻辑,指定返回值类型为数据返回结果类型;编译开发好的自定义函数项目打成jar,放入指定udf函数lib库。
根据本发明的一个实施例,提交模块6具体用于:根据不同任务场景配置运行模式,运行模式包括:local、remote、Yarn模式;设置jobManager、 TaskManager、Slot任务所需合理资源,并且提交到Flink集群或Flink On Yarn集群中运行。
根据本发明实施例的基于Flink SQL引擎的工业生产数据实时处理系统,通过配置模块指定Flink SQL的任务执行模式、任务运行名称、任务资源队列名称、执行任务所需Jar、任务执行策略、任务文件系统依赖;数据接入模块使用RabbitMQ集群对接工业企业生产设备数据,在开源的Flink Table连接器中扩展RabbitMQ Source连接器,创建数据源表,设置连接信息;函数开发模块基于原生Flink Function扩展额外的自定义函数,根据不同的ETL数据处理场景开发不同的函数;数据执行模块执行数据ETL流程,使用Kafka集群作为实时数据流中间件创建中间表,指定connector标识为 Kafka,设置连接Kafka集群必要参数,指定Format结构为Json,排除无效信息;数据输出模块根据不同ETL流程处理,持久化到不同的数据库,中间表根据不同的数据库选择Flink Sink连接器,并指定相对应的connector标识和不同结构的Format;提交模块设置任务提交运行模式,指定运行jobManager、TaskManager、Slot资源。由此,解决了工业现场数据复杂繁琐的采集流程,通过RabbitMQ实时自动化采集,无需开发代码处理数据,提供了简单易学的SQL语句处理工业现场实时数据,对于工业企业非开发工作人员也易于上手操作,减少工作学习成本以及提高数据传输效率。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置) ,随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种基于Flink SQL引擎的工业生产数据实时处理方法,其特征在于,包括以下步骤:
指定所述Flink SQL的任务执行模式、任务运行名称、任务资源队列名称、执行任务所需Jar、任务执行策略、任务文件系统依赖;
使用RabbitMQ集群对接工业企业生产设备数据,在开源的Flink Table连接器中扩展RabbitMQ Source连接器,创建数据源表,设置连接信息;
基于原生Flink Function扩展额外的自定义函数,根据不同的ETL数据处理场景开发不同的函数;
执行数据ETL流程,使用Kafka集群作为实时数据流中间件创建中间表,指定connector标识为Kafka,设置连Kafka集群必要参数,指定Format结构为Json,排除无效信息;
根据不同ETL流程处理,持久化到不同的数据库,所述中间表根据所述不同的数据库选择Flink Sink连接器,并指定相对应的connector标识和不同结构的Format;
设置任务提交运行模式,指定运行jobManager、TaskManager、Slot资源。
2.根据权利要求1所述的基于Flink SQL引擎的工业生产数据实时处理方法,其特征在于,
指定所述任务运行名称包括:按照任务命名规则设置任务运行名称;
指定所述资源队列名称:根据任务类型和任务功能选择资源队列名称为所述任务资源队列名称;
指定所述执行任务所需Jar包括:选择FlinkSQL RabbitMQ Source连接器为额外依赖的jar,选择FlinkSQL Kafka连接器为任务packages额外添加的jar,其他非必要依赖根据不同的ETL流程和输出持久化的不同添加jar;
指定所述任务执行策略包括:设置任务故障重启策略、重启次数、重启时间间隔;
指定所述任务文件系统依赖包括:设置checkpoints检查点持久化文件系统依赖为HDFS分布式文件系统,根据checkpoints检查点文件恢复任务,设置savepoints保存点持久化文件系统依赖为HDFS分布式文件系统,以在任务程序升级或更新时在任务上次停止时的保存点恢复任务。
3.根据权利要求1所述的基于Flink SQL引擎的工业生产数据实时处理方法,其特征在于,
所述扩展RabbitMQ Source连接器包括:实现原生FlinkSQLDynamicTableSourceFactory接口开发RabbitMQ Source工厂类,指定RabbitMQ Source连接器必要参数,实现ScanTableSource接口复写getScanRuntimeProvider方法消费RabbitMQ数据,实现数据结构化映像为指定表结构;
所述创建数据源表包括:根据所述工业生产数据结构schema创建数据源表,设置connector为RabbitMQ;
所述设置连接信息包括:设置RabbitMQ集群地址、用户和密码、Topic信息,指定Format结构为Json,设置仅对指定结构化数据进行处理保持任务的稳定性。
4.根据权利要求1所述的基于Flink SQL引擎的工业生产数据实时处理方法,其特征在于,基于原生Flink Function扩展额外的自定义函数,包括:
继承原生FlinkSQL ScalarFunction类,并复写eval方法,
在eval方法中开发数据处理逻辑,指定返回值类型为数据返回结果类型;
编译开发好的所述自定义函数项目打成jar,放入指定udf函数lib库。
5.根据权利要求1所述的基于Flink SQL引擎的工业生产数据实时处理方法,其特征在于,设置任务提交运行模式,包括:
根据不同任务场景配置运行模式,所述运行模式包括:local、remote、Yarn模式;
设置jobManager、TaskManager、Slot任务所需合理资源,并且提交到Flink集群或Flink On Yarn集群中运行。
6.一种基于Flink SQL引擎的工业生产数据实时处理系统,其特征在于,包括:
配置模块,所述配置模块用于指定所述Flink SQL的任务执行模式、任务运行名称、任务资源队列名称、执行任务所需Jar、任务执行策略、任务文件系统依赖;
数据接入模块,所述数据接入模块用于使用RabbitMQ集群对接工业企业生产设备数据,在开源的Flink Table连接器中扩展RabbitMQ Source连接器,创建数据源表,设置连接信息;
函数开发模块,所述函数开发模块用于基于原生Flink Function扩展额外的自定义函数,根据不同的ETL数据处理场景开发不同的函数;
数据执行模块,所述数据执行模块用于执行数据ETL流程,使用Kafka集群作为实时数据流中间件创建中间表,指定connector标识为Kafka,设置连接Kafka集群必要参数,指定Format结构为Json,排除无效信息;
数据输出模块,所述数据输出模块用于根据不同ETL流程处理,持久化到不同的数据库,所述中间表根据所述不同的数据库选择Flink Sink连接器,并指定相对应的connector标识和不同结构的Format;
提交模块,所述提交模块用于设置任务提交运行模式,指定运行jobManager、TaskManager、Slot资源。
7.根据权利要求6所述的基于Flink SQL引擎的工业生产数据实时处理系统,其特征在于,所述配置模块具体用于:
按照任务命名规则设置任务运行名称;
根据任务类型和任务功能选择资源队列名称为所述任务资源队列名称;
选择FlinkSQL RabbitMQ Source连接器为额外依赖的jar,选择FlinkSQL Kafka连接器为任务packages额外添加的jar,其他非必要依赖根据不同的ETL流程和输出持久化的不同添加jar;
设置任务故障重启策略、重启次数、重启时间间隔;
设置checkpoints检查点持久化文件系统依赖为HDFS分布式文件系统,根据checkpoints检查点文件恢复任务,设置savepoints保存点持久化文件系统依赖为HDFS分布式文件系统,以在任务程序升级或更新时在任务上次停止时的保存点恢复任务。
8.根据权利要求6所述的基于Flink SQL引擎的工业生产数据实时处理系统,其特征在于,所述数据接入模块具体用于:
实现原生FlinkSQL DynamicTableSourceFactory接口开发RabbitMQ Source工厂类,指定RabbitMQ Source连接器必要参数,实现ScanTableSource接口复写getScanRuntimeProvider方法消费RabbitMQ数据,实现数据结构化映像为指定表结构;
根据所述工业生产数据结构schema创建数据源表,设置connector为RabbitMQ;
设置RabbitMQ集群地址、用户和密码、Topic信息,指定Format结构为Json,设置仅对指定结构化数据进行处理保持任务的稳定性。
9.根据权利要求6所述的基于Flink SQL引擎的工业生产数据实时处理系统,其特征在于,所述函数开发模块具体用于:
继承原生FlinkSQL ScalarFunction类,并复写eval方法;
在eval方法中开发数据处理逻辑,指定返回值类型为数据返回结果类型;
编译开发好的所述自定义函数项目打成jar,放入指定udf函数lib库。
10.根据权利要求6所述的基于Flink SQL引擎的工业生产数据实时处理系统,其特征在于,所述提交模块具体用于:
根据不同任务场景配置运行模式,所述运行模式包括:local、remote、Yarn模式;
设置jobManager、TaskManager、Slot任务所需合理资源,并且提交到Flink集群或Flink On Yarn集群中运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011196994.0A CN112287007B (zh) | 2020-10-30 | 2020-10-30 | 基于Flink SQL引擎的工业生产数据实时处理方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011196994.0A CN112287007B (zh) | 2020-10-30 | 2020-10-30 | 基于Flink SQL引擎的工业生产数据实时处理方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112287007A CN112287007A (zh) | 2021-01-29 |
CN112287007B true CN112287007B (zh) | 2022-02-11 |
Family
ID=74352902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011196994.0A Active CN112287007B (zh) | 2020-10-30 | 2020-10-30 | 基于Flink SQL引擎的工业生产数据实时处理方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112287007B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010512A (zh) * | 2021-02-24 | 2021-06-22 | 上海中通吉网络技术有限公司 | 基于Flink的实时数据处理方法、平台和设备 |
CN114385139B (zh) * | 2021-12-29 | 2022-12-16 | 武汉达梦数据库股份有限公司 | 一种flink框架运行ETL流程的消息序列化以及比较方法与装置 |
CN114385140B (zh) * | 2021-12-29 | 2023-03-24 | 武汉达梦数据库股份有限公司 | 基于flink框架的ETL流程组件多个不同输出的处理方法与装置 |
CN114661248B (zh) * | 2022-05-25 | 2022-10-04 | 恒生电子股份有限公司 | 数据处理方法及装置 |
CN115617495A (zh) * | 2022-12-06 | 2023-01-17 | 深圳安德空间技术有限公司 | 一种基于分布式架构的探地雷达数据推理方法及其系统 |
CN115904722A (zh) * | 2022-12-14 | 2023-04-04 | 上海汇付支付有限公司 | 一种大数据实时处理平台 |
CN115795242A (zh) * | 2023-02-09 | 2023-03-14 | 云筑信息科技(成都)有限公司 | 一种基于Flink流式计算引擎实现海量数据近实时处理的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918441A (zh) * | 2019-04-03 | 2019-06-21 | 颜沿(上海)智能科技有限公司 | 一种终端信息处理展示方法及系统 |
CN111666296A (zh) * | 2020-04-28 | 2020-09-15 | 中国平安财产保险股份有限公司 | 基于Flink的SQL数据实时处理方法、装置、计算机设备和介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10275278B2 (en) * | 2016-09-14 | 2019-04-30 | Salesforce.Com, Inc. | Stream processing task deployment using precompiled libraries |
US10311047B2 (en) * | 2016-10-19 | 2019-06-04 | Salesforce.Com, Inc. | Streamlined creation and updating of OLAP analytic databases |
CN110147398B (zh) * | 2019-04-25 | 2020-05-15 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、介质和电子设备 |
CN110704518B (zh) * | 2019-08-26 | 2022-11-08 | 苏宁云计算有限公司 | 基于Flink引擎的业务数据处理方法及装置 |
CN110851514B (zh) * | 2019-10-17 | 2022-10-21 | 杭州安恒信息技术股份有限公司 | 基于flink的etl处理方法 |
CN111026779B (zh) * | 2019-12-19 | 2023-10-17 | 厦门安胜网络科技有限公司 | 一种基于Flink SQL的数据处理方法、装置、存储介质 |
CN111078781B (zh) * | 2019-12-30 | 2023-05-26 | 电信科学技术第五研究所有限公司 | 一种多源流式大数据融合汇聚处理框架模型实现方法 |
CN111352616A (zh) * | 2020-02-20 | 2020-06-30 | 苏宁云计算有限公司 | 实时计算可视化开发系统及其应用方法 |
CN111339175B (zh) * | 2020-02-28 | 2023-08-11 | 成都运力科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
-
2020
- 2020-10-30 CN CN202011196994.0A patent/CN112287007B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918441A (zh) * | 2019-04-03 | 2019-06-21 | 颜沿(上海)智能科技有限公司 | 一种终端信息处理展示方法及系统 |
CN111666296A (zh) * | 2020-04-28 | 2020-09-15 | 中国平安财产保险股份有限公司 | 基于Flink的SQL数据实时处理方法、装置、计算机设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112287007A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112287007B (zh) | 基于Flink SQL引擎的工业生产数据实时处理方法、系统 | |
EP3709227B1 (en) | System and method for interoperable communication of an automation system component with multiple information sources | |
US9465590B2 (en) | Code generation framework for application program interface for model | |
EP3014479B1 (en) | Omega names: name generation and derivation | |
US7895156B2 (en) | Method, system, and computer program product for implementing a model exchange framework generating a synchronization record in response to a model exchange request using fusion technology | |
US8495352B2 (en) | System and method for instantiation of distributed applications from disk snapshots | |
US8196100B2 (en) | Content management system for computer software with dynamic traceability between code and design documents | |
US20100001834A1 (en) | System and method for a message registry and message handling in a service -oriented business framework | |
JP2004038958A (ja) | プロパティをオブジェクトに関連付けするための、コンピュータ可読媒体、システム、および、方法 | |
JP6673359B2 (ja) | システム構築支援システム、方法およびプログラム | |
US10666744B2 (en) | Managing discovery and selection of service interface specifications | |
CN111124379B (zh) | 页面生成方法、装置、电子设备及存储介质 | |
CN111104103B (zh) | 一种软件编辑微服务的可视化方法及系统 | |
US20120079454A1 (en) | Expressing equivalency relationships with identity graphs | |
CN112698921A (zh) | 一种逻辑代码运行方法、装置、计算机设备和存储介质 | |
CN113094028B (zh) | 一种Windows桌面程序开发系统、方法及相关组件 | |
CN110888736A (zh) | 一种基于容器云平台的应用管理方法、系统及相关组件 | |
CN115280283A (zh) | 在kubernets中运行pbs作业 | |
JP2005301985A (ja) | 情報処理装置、オブジェクト生成方法、オブジェクト変換方法、オブジェクト生成プログラム、オブジェクト変換プログラム及び記録媒体 | |
CN112698819A (zh) | 面向树化对象编程程序设计方法、装置及存储介质 | |
US20110137922A1 (en) | Automatic generation of a query lineage | |
JP2013534347A (ja) | 高性能コンピューティングアプリケーションの実行のためのシステムおよび方法 | |
JP2008225898A (ja) | 変換装置、変換プログラム及び変換方法 | |
JP3712984B2 (ja) | 業務進捗制御装置及びその方法と、業務進捗制御プログラム及びそのプログラムを記録した記録媒体 | |
CN115048190A (zh) | 虚拟机快照管理方法、系统及计算机可读介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |