基于Flink引擎的业务数据处理方法及装置
技术领域
本发明涉及大数据处理技术领域,尤其涉及一种基于Flink引擎的业务数据处理方法及装置。
背景技术
随着互联网公司业务的快速发展,随之产生的数据也呈井喷式增长,随之而来的是要求实时平台部门为业务部门提供易用、稳定、高效的实时数据服务,因此,基于数据实时计算的业务作业开始崭露头角,并且越来越多的被投入到线上使用,如实时推荐、双十一实时大屏统计、实时反欺诈等。
现有的常规的实时任务开发,需要针对每个实时任务做定制开发,当一个实时任务开发完后,后续待开发的实时任务能复用前一个实时任务的可能性很低,这也就导致了每次实时任务的开发都需要较高的开发成本和维护成本。
发明内容
本发明的目的在于提供一种基于Flink引擎的业务数据处理方法及装置,能够有效降低针对实时任务的开发成本和维护成本。
为了实现上述目的,本发明的一方面提供一种基于Flink引擎的业务数据处理方法,包括:
接收JSON文件,所述JSON文件由实时业务数据基于预设的标准JSON数据协议生成;
校验并解析所述JSON文件,映射为与所述JSON文件对应的实体类信息;
根据所述实体类信息利用Flink引擎构建Flink任务,并将所述Flink任务提交至集群处理。
优选地,接收JSON文件,所述JSON文件由实时业务数据,基于预设的标准JSON数据协议生成的方法包括:
基于所述Flink任务的数据结构和算子特征抽象建模,预设标准JSON数据协议;
通过所述标准JSON数据协议将实时业务数据转换生成所述JSON文件;
将所述JSON文件发送至服务端中的Flink引擎。
较佳地,校验并解析所述JSON文件,映射为与所述JSON文件对应的实体类信息的方法包括:
Flink引擎调用所述标准JSON数据协议对接收到的JSON文件合法性实施校验;
合法性校验通过后,利用Flink引擎中的解析器解析所述JSON文件,同时将解析结果与预定义的本地原生代码Flink数据实体类映射,生成实体类信息。
优选地,根据所述实体类信息利用Flink引擎构建Flink任务,并将所述Flink任务提交至集群处理的方法包括:
从所述实体类信息中提取配置信息用于配置Flink引擎的运行环境,所述配置信息包括节点属性值;
提取所述实体类信息的节点属性值,并在运行环境中依次执行注册数据源Source操作、注册自定义函数UDF操作、接入Sink输出操作和构建执行计划操作,以此配置Flink引擎;
通过Flink引擎处理所述JSON文件生成Flink任务,并将其提交至集群处理。
优选地,在配置Flink引擎之前还包括:
基于配置的运行环境对所述JSON文件进行预校验,确保任务可被Flink引擎解析。
与现有技术相比,本发明提供的基于Flink引擎的业务数据处理方法具有以下有益效果:
本发明提供的基于Flink引擎的业务数据处理方法中,通过将实时业务数据基于标准JSON数据协议转换成JSON文件,使得数据接入方式变得更加灵活,无论是可视化拖拽、代码构建、甚至手动编辑等方式生成JSON文件,都可接入Flink引擎,有利于降低开发门槛提高开发效率,接着,校验并解析上述JSON文件,使之映射为与之对应的实体类信息,之后根据实体类信息利用Flink引擎构建Flink任务分发至相应集群处理,由于Flink引擎作为新一代的实时组件,具有吞吐量高、实时性高、优秀的内存管理和流控等优点,因此可极大提高业务数据的处理效率。
本发明的另一方面提供一种基于Flink引擎的业务数据处理装置,应用有上述技术方案提到的基于Flink引擎的业务数据处理方法中,该装置包括:
转换单元,用于接收JSON文件,所述JSON文件由实时业务数据基于预设的标准JSON数据协议生成;
解析单元,用于校验并解析所述JSON文件,映射为与所述JSON文件对应的实体类信息;
任务构建单元,用于根据所述实体类信息利用Flink引擎构建Flink任务,并将所述Flink任务提交至集群处理。
优选地,所述转换单元包括:
标准协议预设模块,用于基于所述Flink任务的数据结构和算子特征抽象建模,预设标准JSON数据协议;
数据转换模块,用于通过所述标准JSON数据协议将实时业务数据转换生成所述JSON文件;
数据发送模块,用于将所述JSON文件发送至服务端中的Flink引擎。
优选地,所述解析单元包括:
第一校验模块,用于Flink引擎调用所述标准JSON数据协议对接收到的JSON文件合法性实施校验;
解析模块,用于在合法性校验通过后,利用Flink引擎中的解析器解析所述JSON文件,同时将解析结果与预定义的本地原生代码Flink数据实体类映射,生成实体类信息。
优选地,所述任务构建单元包括:
环境配置模块,用于从所述实体类信息中提取配置信息用于配置Flink引擎的运行环境,所述配置信息包括节点属性值;
第二校验模块,基于配置的运行环境对所述JSON文件进行预校验,确保任务可被Flink引擎解析;
引擎配置模块,用于提取所述实体类信息的节点属性值,并在运行环境中依次执行注册数据源Source操作、注册自定义函数UDF操作、接入Sink输出操作和构建执行计划操作,以此配置Flink引擎;
任务分发模块,用于通过Flink引擎处理所述JSON文件生成Flink任务,并将其提交至集群处理。
与现有技术相比,本发明提供的基于Flink引擎的业务数据处理装置的有益效果与上述技术方案提供的基于Flink引擎的业务数据处理方法的有益效果相同,在此不做赘述。
本发明的第三方面提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述基于Flink引擎的业务数据处理方法的步骤。
与现有技术相比,本发明提供的计算机可读存储介质的有益效果与上述技术方案提供的基于Flink引擎的业务数据处理方法的有益效果相同,在此不做赘述。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例一中基于Flink引擎的业务数据处理方法的一种流程示意图;
图2为本发明实施例一中基于Flink引擎的业务数据处理方法的另一种流程图;
图3为JSON生成器在任务画布上的拖拽示例图;
图4为JSON文件的描述示例图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
实施例一
请参阅图1和图2,本实施例提供一种基于Flink引擎的业务数据处理方法,包括:
接收JSON文件,JSON文件由实时业务数据基于预设的标准JSON数据协议生成;校验并解析JSON文件,映射为与JSON文件对应的实体类信息;根据实体类信息利用Flink引擎构建Flink任务,并将Flink任务提交至集群处理。
本实施例提供的基于Flink引擎的业务数据处理方法中,通过将实时业务数据基于标准JSON数据协议转换成JSON文件,使得数据接入方式变得更加灵活,无论是可视化拖拽、代码构建、甚至手动编辑等方式生成JSON文件,都可接入Flink引擎,有利于降低开发门槛提高开发效率,接着,校验并解析上述JSON文件,使之映射为与之对应的实体类信息,之后根据实体类信息利用Flink引擎构建Flink任务分发至相应集群处理,由于Flink引擎作为新一代的实时组件,具有吞吐量高、实时性高、优秀的内存管理和流控等优点,因此可极大提高业务数据的处理效率。
具体地,上述实施例中接收JSON文件,JSON文件由实时业务数据,基于预设的标准JSON数据协议生成的方法包括:
基于Flink任务的数据结构和算子特征抽象建模,预设标准JSON数据协议;通过标准JSON数据协议将实时业务数据转换生成JSON文件;将JSON文件发送至服务端中的Flink引擎。
具体实施时,在标准JSON数据协议预设完成后,根据业务场景,通过可视化拖拽、代码构建、甚至手动编辑等方式生成JSON文件方式,生成符合预定义协议的JSON文件(.json文件),然后将JSON文件上传至中转文件***或以报文方式发送至服务端中的Flink引擎,其中,上述抽象建模为本领域技术人员熟知的技术手段,本实施例在此不做赘述。
请继续参阅图2,上述实施例中校验并解析JSON文件,映射为与JSON文件对应的实体类信息的方法包括:
Flink引擎调用标准JSON数据协议对接收到的JSON文件合法性实施校验;合法性校验通过后,利用Flink引擎中的解析器解析JSON文件,同时将解析结果与预定义的本地原生代码Flink数据实体类映射,生成实体类信息。
具体实施时,当Flink引擎收到JSON文件后自动调用上述标准JSON数据协议对JSON文件的合法性实施校验,其中,校验的对象包括json语法和语言节点属性值,当合法性校验通过后,利用Flink引擎中的解析器解析JSON文件,并将JSON文件与预定义的本地原生代码Flink数据实体类进行映射,生成实体类信息,实现数据流转;需要说明的是,上述针对JSON文件的合法性校验和JSON文件的解析过程为本领域技术人员常用的技术手段,本实施例再次不做赘述。
进一步地,上述实施例中的根据实体类信息利用Flink引擎构建Flink任务,并将Flink任务提交至集群处理的方法包括:
从实体类信息中提取配置信息用于配置Flink引擎的运行环境,配置信息包括节点属性值;提取实体类信息的节点属性值,并在运行环境中依次执行注册数据源Source操作、注册自定义函数UDF操作、接入Sink输出操作和构建执行计划操作,以此配置Flink引擎;通过Flink引擎处理JSON文件生成Flink任务,并将其提交至集群处理。
优选地,上述实施例在配置Flink引擎之前还包括:
基于配置的运行环境对JSON文件进行预校验,确保任务可被Flink引擎解析。
为了便于理解,本实施例采用下述方案做示例性说明:
请参阅图3,首先根据具体的业务逻辑,利用JSON生成器拖拽相应的组件至任务画布上,组件划分纯粹是从业务层面进行,并且每个组件之间由箭头连接,表明数据流向。
接着通过.json语言的节点属性值(tableNodeList)的方式描述各组件和组件之间的关系,如使用节点属性值(tableNodeList)描述各个组件,使用属性值(linkList)描述组件之间的关系,如图4所示。
当需要提交实时任务时,将.json文件发送至Flink引擎,由Flink引擎对.json文件进行解析并进行实体类数据映射,继而构建Flink运行环境、注册自定义函数并提交至Yarn运行。
可见,相较于现有的方案在开发实时任务时,需要重复配置运行环境,执行注册自定义函数UDF、注册数据源Source和接入Sink输出等操作,本实施例通过可视化拖拽的方式节省了上述操作流程,用户无需关注这些重复性工作,通过转交Flink引擎构建、处理,能够大幅降低开发门槛并提高开发效率。
实施例二
本实施例提供一种基于Flink引擎的业务数据处理装置,包括:
转换单元,用于接收JSON文件,JSON文件由实时业务数据基于预设的标准JSON数据协议生成;
解析单元,用于校验并解析JSON文件,映射为与JSON文件对应的实体类信息;
任务构建单元,用于根据实体类信息利用Flink引擎构建Flink任务,并将Flink任务提交至集群处理。
优选地,转换单元包括:
标准协议预设模块,用于基于Flink任务的数据结构和算子特征抽象建模,预设标准JSON数据协议;
数据转换模块,用于通过标准JSON数据协议将实时业务数据转换生成JSON文件;
数据发送模块,用于将JSON文件发送至服务端中的Flink引擎。
优选地,解析单元包括:
第一校验模块,用于Flink引擎调用标准JSON数据协议对接收到的JSON文件合法性实施校验;
解析模块,用于在合法性校验通过后,利用Flink引擎中的解析器解析JSON文件,同时将解析结果与预定义的本地原生代码Flink数据实体类映射,生成实体类信息。
优选地,任务构建单元包括:
环境配置模块,用于从实体类信息中提取配置信息用于配置Flink引擎的运行环境,配置信息包括节点属性值;
第二校验模块,基于配置的运行环境对JSON文件进行预校验,确保任务可被Flink引擎解析;
引擎配置模块,用于提取实体类信息的节点属性值,并在运行环境中依次执行注册数据源Source操作、注册自定义函数UDF操作、接入Sink输出操作和构建执行计划操作,以此配置Flink引擎;
任务分发模块,用于通过Flink引擎处理JSON文件生成Flink任务,并将其提交至集群处理。
与现有技术相比,本实施例提供的基于Flink引擎的业务数据处理装置的有益效果与上述实施例提供的基于Flink引擎的业务数据处理方法的有益效果相同,在此不做赘述。
实施例三
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述基于Flink引擎的业务数据处理方法的步骤。
与现有技术相比,本实施例提供的计算机可读存储介质的有益效果与上述技术方案提供的基于Flink引擎的业务数据处理方法的有益效果相同,在此不做赘述。
本领域普通技术人员可以理解,实现上述发明方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,上述程序可以存储于计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,上述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。