CN115481156A - 一种数据处理方法、装置、设备及介质 - Google Patents
一种数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115481156A CN115481156A CN202211136227.XA CN202211136227A CN115481156A CN 115481156 A CN115481156 A CN 115481156A CN 202211136227 A CN202211136227 A CN 202211136227A CN 115481156 A CN115481156 A CN 115481156A
- Authority
- CN
- China
- Prior art keywords
- flink
- file
- sql
- flink task
- parameters
- 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
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据处理领域,具体涉及一种数据处理方法、装置、设备及介质,用于解决现有利用流式处理引擎flink进行流处理/批处理的方法,需要深入了解flink内部开发原理,才能定制化开发每种业务逻辑,使得开发工作较复杂的问题。该方法包括:基于预进行的业务,确定对应的结构化查询语言SQL文件;获取配置文件中的配置参数;根据所述配置参数和所述SQL文件,确定flink任务;基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理。
Description
技术领域
本公开涉及数据处理技术领域,具体涉及一种数据处理方法、装置、设备及介质。
背景技术
当前开源的流批处理框架主流分为spark(计算引擎)和flink(流式处理引擎),在数据处理领域,flink被作为实时数据处理的首选方案,在批处理方面也同样有不俗的性能表现。
在工具成熟度方面flink相对于spark处于劣势。flink提供了应用于流处理的datastream API(Application Programming Interface,应用程序接口),其是对数据流进行转换的常规程序,使用Java语言编写。flink提供了应用于流处理和批处理的table API和SQL API,需要开发人员把关于任务处理逻辑的SQL(Structured Query Language,结构化查询语言)代码高度集成至程序代码里。
上述利用datastream API、table API和SQL API进行流处理/批处理,都需要深入了解flink内部开发原理,才能定制化开发每种业务逻辑,使得开发工作较复杂。
发明内容
本申请实施例提供一种数据处理方法、装置、设备及介质,用于解决现有利用flink进行流处理/批处理的方法,需要深入了解flink内部开发原理,才能定制化开发每种业务逻辑,使得开发工作较复杂的问题。
第一方面,本申请提供一种数据处理方法,所述方法包括:
基于预进行的业务,确定对应的SQL文件;
获取配置文件中的配置参数;
根据所述配置参数和所述SQL文件,确定flink任务;
基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理。
本申请的实施例提供的技术方案,能够让开发人员在实际流批作业开发时,利用SQL语言进行开发作业,得到flink任务。使开发人员无需了解flink内部原理,只需要熟悉SQL语言,即可迅速开发出各种应用场景逻辑,相对原始的写Java代码利用底层API开发作业,降低了作业的技术开发难度,降低了业务系统错误,提升了作业的健壮性。
在一种可能的实施例中,所述配置参数包括目标属性和目标属性对应的属性值,所述根据所述配置参数和所述SQL文件,确定flink任务,包括:
将所述SQL文件中的目标属性使用所述配置参数中的对应的目标属性和属性值替换,得到替换后的SQL文件;其中,所述SQL文件中的目标属性为未有对应属性值的属性;
从所述替换后的SQL文件中获取SQL语句,并将所述SQL语句转化为所述flink任务。
本申请的实施例提供的技术方案,无需在SQL文件里明确指定目标属性对应的属性值,例如,数据库连接信息等,将目标属性和目标属性对应的属性值保存在配置参数中,再对SQL文件中的目标属性使用配置参数进行替换,从而保证了数据的安全。
在一种可能的实施例中,所述基于所述配置参数,执行所述flink任务之后,所述方法还包括:
若所述flink任务执行异常,则基于设定的重试策略对所述flink任务进行重启。
在一种可能的实施例中,所述方法还包括:
若在设定的第一时间间隔内所述flink任务的重启次数达到设定阈值,且所述flink任务重启失败,则结束所述flink任务;
根据所述配置文件,确定所述flink任务编号和检查点信息文件;
基于所述flink任务编号,在所述检查点信息文件中确定最近一次成功的检查点信息;
基于所述检查点信息,恢复所述flink任务。
本申请的实施例提供的技术方案利用检查点(CheckPoint)功能,实现根据最近一次成功的检查点信息,恢复所述flink任务,以此进行作业失败自动迁移。
在一种可能的实施例中,所述配置参数包括并发参数和所需资源参数,所述获取配置文件中的配置参数之后,还包括:
若在设定的第二时间间隔内历史待处理数据的数据量大于或等于设定的第一阈值,则增加所述并发参数和所需资源参数中的部分或全部;
若在设定的第二时间间隔内历史待处理数据的数据量小于设定的第二阈值,则减少所述并发参数和所需资源参数中的部分或全部,其中,所述第一阈值大于所述第二阈值。
本申请的实施例提供的技术方案,可以根据历史待处理数据的数据量的大小,调整并发参数和所需资源参数中的部分或全部,合理使用系统资源。针对数据量比较大的实时场景下,处理延迟较小,取得了比较理想的实际效果。
在一种可能的实施例中,所述基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理,包括:
基于所述所需资源参数,利用资源管理系统yarn为所述flink任务分配对应的资源;
基于所述分配的资源,执行所述flink任务,对获取的待处理数据进行处理。
本申请的实施例提供的技术方案利用yarn(一种资源管理系统)为所述flink任务分配对应的资源,即只需要简单配置下yarn资源即可调整集群资源满足任务运行要求,并且使得处理大数据的开发任务更方便、更简单,同时也保持了每个任务的资源隔离性,避免某一个任务失败导致其他任务收到影响。
第二方面,本申请提供一种数据处理装置,所述装置包括:
第一确定模块,用于基于预进行的业务,确定对应的SQL文件;
获取模块,用于获取配置文件中的配置参数;
第二确定模块,用于根据所述配置参数和所述SQL文件,确定flink任务;
处理模块,用于基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理。
在一种可能的实施例中,所述配置参数包括目标属性和目标属性对应的属性值,所述第二确定模块,用于根据所述配置参数和所述SQL文件,确定flink任务,包括:
将所述SQL文件中的目标属性使用所述配置参数中的对应的目标属性和属性值替换,得到替换后的SQL文件;其中,所述SQL文件中的目标属性为未有对应属性值的属性;
从所述替换后的SQL文件中获取SQL语句,并将所述SQL语句转化为所述flink任务。
在一种可能的实施例中,所述处理模块用于基于所述配置参数,执行所述flink任务之后,还用于:
若所述flink任务执行异常,则基于设定的重试策略对所述flink任务进行重启。
在一种可能的实施例中,所述装置还包括:
结束模块,用于若在设定的第一时间间隔内所述flink任务的重启次数达到设定阈值,且所述flink任务重启失败,则结束所述flink任务;
第三确定模块,用于根据所述配置文件,确定所述flink任务编号和检查点信息文件;
第四确定模块,用于基于所述flink任务编号,在所述检查点信息文件中确定最近一次成功的检查点信息;
恢复模块,用于基于所述检查点信息,恢复所述flink任务。
在一种可能的实施例中,所述配置参数包括并发参数和所需资源参数,所述获取模块用于获取配置文件中的配置参数之后,还用于:
若在设定的第二时间间隔内历史待处理数据的数据量大于或等于设定的第一阈值,则增加所述并发参数和所需资源参数中的部分或全部;
若在设定的第二时间间隔内历史待处理数据的数据量小于设定的第二阈值,则减少所述并发参数和所需资源参数中的部分或全部,其中,所述第一阈值大于所述第二阈值。
在一种可能的实施例中,所述处理模块,用于基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理,包括:
基于所述所需资源参数,利用yarn为所述flink任务分配对应的资源;
基于所述分配的资源,执行所述flink任务,对获取的待处理数据进行处理。
第三方面,本申请提供一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中任一项所述的方法包括的步骤。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任一项所述的方法。
第五方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行第一方面中任一项所述的方法。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的应用场景示意图;
图2是根据一示例性实施例示出的一种数据处理方法的流程图;
图3是根据一示例性实施例示出的一种数据处理方法的具体流程图;
图4是根据一示例性实施例示出的一种恢复flink任务的流程图;
图5是根据一示例性实施例示出的一种数据处理装置的示意图;
图6是根据一示例性实施例示出的一种数据处理方法的电子设备示意图;
图7是根据一示例性实施例示出的一种数据处理方法的程序产品示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以按不同于此处的顺序执行所示出或描述的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
本申请技术方案中,对数据的采集、传播、使用等,均符合国家相关法律法规要求。
在介绍本申请实施例所提供的数据处理方法之前,为了便于理解,首先对下面对本申请实施例的技术背景进行详细介绍。
当前开源的流批处理框架主流分为spark和flink,在数据处理领域,flink被作为实时数据处理的首选方案,在批处理方面也同样有不俗的性能表现。
在工具成熟度方面flink相对于spark处于劣势。flink提供了应用于流处理的datastream API,其是对数据流进行转换的常规程序,使用Java语言编写。flink提供了应用于流处理和批处理的table API和SQL API,需要开发人员把关于任务处理逻辑的SQL代码高度集成至程序代码里。其中,流处理为业务系统不间断产生的持续数据形成的一种事件流,通过实时处理该事件流实现实时的数据收集、清洗、统计和入库。批处理针对的是有界数据流,有数据流定义的开始和结束,并且该有界数据流可以在摄取所有数据后进行处理,不需要有序提取。
上述利用datastream API、table API和SQL API进行流处理/批处理,都需要深入了解flink内部开发原理,才能定制化开发每种业务逻辑,使得开发工作较复杂。
因此,为了解决上述问题,本公开提供一种数据处理方法、装置、设备及介质。
首先参考图1,其为本公开实施例的应用场景示意图,包括编写器11、服务器12和数据库13。其中编写器11可以为支持SQL文件编写的平板电脑、计算机等,用于用户根据需要处理的业务,编写的SQL文件;服务器12用于根据SQL文件,确定对应的flink任务并执行,从而实现对获取的待处理数据进行处理;数据库13可以为Kafka(一种高吞吐量的分布式发布订阅消息系统)、Mysql(My Structured Query Language,一种数据库)、Oracle(OracleDatabase,一种关系数据库管理系统)、HBase(Hadoop Database,一种分布式存储系统)、Hive(基于Hadoop的一个数据仓库工具)、HDFS(Hadoop Distributed File System,文件系统)等数据库,用于与服务器12连接,向服务器12提供待处理数据并将处理后的数据进行存储。
本公开实施例中,服务器12与编写器11的一种实现方式为,基于预进行的业务,确定对应的SQL文件;获取配置文件中的配置参数;根据所述配置参数和所述SQL文件,确定flink任务;基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理。
本公开实施例中,提供了一种数据处理方法,本公开基于同一构思,还提供了一种数据处理装置、一种电子设备、一种计算机可读存储介质以及一种计算机程序产品。
在一些实施例中,下面通过具体的实施例对本公开提供的一种数据处理方法进行说明,如图2所示,包括:
步骤201,基于预进行的业务,确定对应的SQL文件;
开发人员按照实际业务,利用SQL语言编写该业务的处理逻辑,得到对应的SQL文件。其中,SQL是一种数据库查询和程序设计语言,同时也是目前使用最广泛的数据库操作语言。
步骤202,获取配置文件中的配置参数;
上述配置参数可以包括目标属性和目标属性对应的属性值、并发参数和所需资源参数等。上述目标属性可以为密码、用户名、数据库连接信息等,上述所需资源参数可以为内存参数等。
步骤203,根据所述配置参数和所述SQL文件,确定flink任务;
上述步骤具体包括:
将所述SQL文件中的目标属性使用所述配置参数中的对应的目标属性和属性值替换,得到替换后的SQL文件;其中,所述SQL文件中的目标属性为未有对应属性值的属性;
从所述替换后的SQL文件中获取SQL语句,并将所述SQL语句转化为所述flink任务。
步骤204,基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理。
上述flink任务包括多个flink子任务。上述配置参数可以为所需资源参数和并发参数等。
本申请的实施例提供的技术方案,能够使开发人员无需了解flink内部原理,只需要熟悉SQL语言,即可迅速开发出各种应用场景逻辑,相对原始的写Java代码利用底层API开发作业,降低了作业的技术开发难度,降低了业务系统错误,提升了作业的健壮性。
本申请提供一种数据处理方法,具体过程如图3所示,包括:
步骤301,基于预进行的业务,确定对应的SQL文件;
开发人员按照实际业务,利用SQL语言编写该业务的处理逻辑,得到对应的SQL文件。不同业务对应的SQL文件不同。
步骤302,将启动脚本(ruif_flink_start.sh)进行启动,使用Application main方法读取配置文件(common.env.conf)及配置文件中的配置参数;
上述配置参数包括目标属性和目标属性对应的属性值、并发参数和所需资源参数等。
针对数据量比较大或数据量比较小的实时场景下,在获取配置文件中的配置参数之后,本申请使用以下方法调整配置参数:
若在设定的第二时间间隔内历史待处理数据的数据量大于或等于设定的第一阈值,则增加所述并发参数和所需资源参数中的部分或全部;
具体的,在处理数据量大,处理逻辑复杂的情形下,可以增加所述并发参数和所需资源参数中的部分或全部。
上述并发参数可以为上述多个flink子任务的并发处理的数量,上述所需资源参数可以为需要的yarn container(容器)资源的数量等。
若在设定的第二时间间隔内历史待处理数据的数据量小于设定的第二阈值,则减少所述并发参数和所需资源参数中的部分或全部,其中,所述第一阈值大于所述第二阈值。
上述第二时间间隔、第一阈值和第二阈值可以根据实际业务进行设置。
具体的,在处理数据量小,处理逻辑不复杂的情形下,则可以减少所述并发参数和所需资源参数中的部分或全部。
上述方法可以广泛应用在实时达标处理、数据采集、数据明细加工等场景,在像交易流水这种数据量比较大的实时场景下,处理延迟在毫秒级,取得了比较理想的实际效果。
步骤303,初始化执行环境;
该步骤具体包括:创建flink table environment执行环境,并指定执行模式,所述执行模式包括流处理模式或者批处理模式。
本申请支持流处理和批处理,用户可以根据需求进行选择。
步骤304,读取SQL文件内容;
针对SQL文件中的SQL语句,按照字符串的格式读出来,获得SQL文件内容。
步骤305,基于所述配置参数对SQL文件内容进行替换,获得替换后的SQL文件;
上述配置参数包括目标属性和目标属性对应的属性值,而所述SQL文件内容中的目标属性为未有对应属性值的属性,因此,可以使用以下方法获得替换后的SQL文件:
将所述SQL文件中的目标属性使用所述配置参数中的对应的目标属性和属性值替换,得到替换后的SQL文件。
具体的,SQL文件内容中包括占位符,这些占位符就是目标属性对应的属性值,但其并不包含具体内容,因此需要使用配置参数中的对应的目标属性和属性值替换。配置参数包括的目标属性和目标属性对应的属性值,可以为Kafka连接信息、HBase连接信息等数据库连接信息、用户密码、用户名等。这些信息也可以在common.env.conf中指定。
上述配置参数中包括的目标属性和目标属性对应的属性值可以为加密的,在进行替换的过程中,将所述SQL文件中的目标属性使用解密后的所述配置参数中的对应的目标属性和属性值进行替换。
由于无需在SQL文件里明确指定Kafka、HBase、ElasticSearch(一种分布式搜索和分析引擎)等外部存储的连接信息和影响数据安全的信息,保证了数据的安全。
例如,在配置信息中包括:源数据库=kafka1,目标数据库=hbase2,用户名=张三,密码=000000。在SQL文件中包括源数据库=******,目标数据库=******,用户名=**,密码=******。因此,针对SQL文件,使用配置信息中包括的内容进行替换,得到的替换后的SQL文件中包括:源数据库=kafka1,目标数据库=hbase2,用户名=张三,密码=000000。
步骤306,从所述替换后的SQL文件中获取SQL语句;
对所述替换后的SQL文件进行解析,得到DDL(Data Definition Language,数据定义语言)、DML(Data Manipulation Language,数据操纵语言)、DQL(Data Query Language,数据查询语言)。其中,DDL用于定义数据库对象,如数据库、数据表和数据字段;DML用于对数据库中的数据进行增加等操作;DQL用于查询数据库中的数据。
上述SQL语句具体包括建表语句(CREATE_TABLE)、设置参数语句(SET_OPTION)、自定义函数语句(CREATE_FUNCTION)、插入语句(INSERT)和查询语句(SELECT)。
步骤307,将所述SQL语句转化为所述flink任务;
利用flink框架中的flink sql API翻译SQL语句,形成执行任务图并交由引擎。其具体过程为现有技术,此处不再详细赘述。
步骤308,基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理。
上述配置参数包括并行参数和所需资源参数。
上述flink任务包括多个flink子任务,可以根据所述配置参数中的并行参数进行并行执行。
flink提供了一种应用于流处理和批处理的flink sql client(客户端),相当于对table API和SQL API进行集成,通过调用flink sql client将任务提交给集群资源进行处理,但在迭代开发中,多个任务共享集群资源,每个任务对应的集群资源的之间的隔离性较差,若一个任务执行失败,则影响其他任务的执行。
针对上述问题,本申请使用了yarn进行资源分配,具体过程如下:
基于所述所需资源参数,利用yarn为所述flink任务分配对应的资源;
基于所述分配的资源,执行所述flink任务,对获取的待处理数据进行处理。
本申请通过使用上述方法,从而只需要简单配置下yarn资源即可调整集群资源满足任务运行要求,并且使得处理大数据的开发任务更方便、更简单,同时也保持了每个任务的资源隔离性,若一个flink子任务失败,只需要利用yarn为该flink子任务分配新的资源,避免某一个任务失败导致其他任务收到影响。
针对flink任务执行异常的情况,如图4所示,使用如下方法恢复flink任务:
步骤401,判断flink任务是否执行异常,若执行正常,则执行步骤402,否则执行步骤403;
本申请中使用调度脚本实时检测所述flink任务执行状态,确定所述flink任务执行是否异常。
步骤402,执行所述flink任务;
步骤403,基于设定的重试策略对所述flink任务进行重启;
当所述flink任务执行异常时,整个应用集群都会自动Cancel(注销)重试。
步骤404,确定在设定的第一时间间隔内所述flink任务的重启次数达到设定阈值;
上述flink任务的重启次数和第一时间间隔可以根据实际情况进行设置。
步骤405,判断所述flink任务重启是否成功,若成功,则执行步骤406,否则执行步骤407;
步骤406,继续执行所述flink任务;
例如,第一时间间隔为30秒,设定阈值为5次,若在30秒内重启3次成功,则继续执行所述flink任务;若在30秒内重启5次成功,则继续执行所述flink任务。
步骤407,结束所述flink任务;
上述结束所述flink任务可以根据调度脚本,调用ruif_flink_start.sh中配置的kill task函数,结束所述flink任务。
例如,第一时间间隔为30秒,设定阈值为5次,若在30秒内重试5次失败,则结束所述flink任务。
步骤408,根据所述配置文件,确定所述flink任务编号和检查点信息文件;
其中,检查点(CheckPoint)信息可以保存在HDFS中。CheckPoint是Flink实现容错的核心保障,它通过周期性的对算子状态快照的持久化存储,在程序发生错误时,有选择的把程序恢复到某一个(比如最近的)检查点,从该检查点可以开始重新执行计算,进而实现数据的容错。
根据所述配置文件,确定所述flink任务的flink任务编号,以及相连接的包括检查点信息文件的文件系统。
步骤409,基于所述flink任务编号,在所述检查点信息文件中确定最近一次成功的检查点信息;
上述检查点信息文件中包括flink任务编号及对应的最近一次成功的CheckPoint信息。所述CheckPoint信息包括所述flink任务的状态。
步骤410,基于所述检查点信息,恢复所述flink任务。
步骤411,判断所述flink任务是否恢复成功,若恢复成功,则执行步骤412,否则执行步骤413;
步骤412,继续执行所述flink任务;
步骤413,人工恢复所述flink任务。
上述基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理,主要包括以下五种情况:
第一种情况,若所述flink任务为建表任务,则基于所述flink任务中的源数据库名和源表名,从所述源数据库中的源表获取待处理数据;基于所述flink任务中的目标数据库名和目标表名,以及所述待处理数据,在所述目标数据库中建立目标表名对应的目标表。
上述源数据库和目标数据库可以相同或不同。
第二种情况,若所述flink任务为数据新增任务,则基于所述flink任务中的源数据库名和源表名,从所述源数据库中的源表获取待处理数据;基于所述flink任务中的目标数据库名和目标表名,将所述待处理数据增加到所述目标数据库中的目标表。
第三种情况,若所述flink任务为数据查询任务,则基于所述flink任务中的源数据库名和源表名以及查询条件,确定所述源数据库的源表中的待处理数据满足查询条件;基于所述flink任务中的目标数据库名和目标表名,将所述满足条件的待处理数据添加到所述目标数据库中的目标表。
上述查询条件可以根据实际请款进行设置。
第四种情况,若所述flink任务为属性值处理任务,则基于所述flink任务中的源数据库名和源表名,从所述源表获取待处理数据;基于所述flink任务中的待处理属性,对所述待处理数据的待处理属性对应的属性值进行对应处理,得到处理后的数据;基于所述flink任务中的目标数据库名和目标表名,将所述处理后的数据添加到所述目标数据库中的目标表。
例如,上述属性值处理任务可以为将待处理属性对应的各属性值从小写字母变换为大写字母,也可以为将多个属性对应的属性值进行合并等。
第五种情况,若所述flink任务为数据库参数设置任务,则基于所述flink任务中的源数据库名称及源表名,确定对应的源表;基于所述flink任务中的参数,更新所述源表中的参数。
例如,对源表的名称、属性等进行更新。
基于同一发明构思,本申请实施例提供一种数据处理装置,请参照图5,该装置包括:
第一确定模块501,用于基于预进行的业务,确定对应的SQL文件;
获取模块502,用于获取配置文件中的配置参数;
第二确定模块503,用于根据所述配置参数和所述SQL文件,确定flink任务;
处理模块504,用于基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理。
作为一种可选的实施方式,所述配置参数包括目标属性和目标属性对应的属性值,所述第二确定模块,用于根据所述配置参数和所述SQL文件,确定flink任务,包括:
将所述SQL文件中的目标属性使用所述配置参数中的对应的目标属性和属性值替换,得到替换后的SQL文件;其中,所述SQL文件中的目标属性为未有对应属性值的属性;
从所述替换后的SQL文件中获取SQL语句,并将所述SQL语句转化为所述flink任务。
作为一种可选的实施方式,所述处理模块用于基于所述配置参数,执行所述flink任务之后,还用于:
若所述flink任务执行异常,则基于设定的重试策略对所述flink任务进行重启。
作为一种可选的实施方式,所述装置还包括:
结束模块,用于若在设定的第一时间间隔内所述flink任务的重启次数达到设定阈值,且所述flink任务重启失败,则结束所述flink任务;
第三确定模块,用于根据所述配置文件,确定所述flink任务编号和检查点信息文件;
第四确定模块,用于基于所述flink任务编号,在所述检查点信息文件中确定最近一次成功的检查点信息;
恢复模块,用于基于所述检查点信息,恢复所述flink任务。
作为一种可选的实施方式,所述配置参数包括并发参数和所需资源参数,所述获取模块用于获取配置文件中的配置参数之后,还用于:
若在设定的第二时间间隔内历史待处理数据的数据量大于或等于设定的第一阈值,则增加所述并发参数和所需资源参数中的部分或全部;
若在设定的第二时间间隔内历史待处理数据的数据量小于设定的第二阈值,则减少所述并发参数和所需资源参数中的部分或全部,其中,所述第一阈值大于所述第二阈值。
作为一种可选的实施方式,所述处理模块,用于基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理,包括:
基于所述所需资源参数,利用yarn为所述flink任务分配对应的资源;
基于所述分配的资源,执行所述flink任务,对获取的待处理数据进行处理。
基于同一发明构思,本申请实施例提供一种电子设备,该设备可以实现前文论述的数据处理的功能,请参照图6,该设备包括处理器601和存储器602,其中,所述存储器602用于存储程序指令;
所述处理器601调用所述存储器中存储的程序指令,通过运行所述程序指令以实现如下步骤:
基于预进行的业务,确定对应的SQL文件;
获取配置文件中的配置参数;
根据所述配置参数和所述SQL文件,确定flink任务;
基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理。
作为一种可选的实施方式,所述配置参数包括目标属性和目标属性对应的属性值,所述根据所述配置参数和所述SQL文件,确定flink任务,包括:
将所述SQL文件中的目标属性使用所述配置参数中的对应的目标属性和属性值替换,得到替换后的SQL文件;其中,所述SQL文件中的目标属性为未有对应属性值的属性;
从所述替换后的SQL文件中获取SQL语句,并将所述SQL语句转化为所述flink任务。
作为一种可选的实施方式,所述基于所述配置参数,执行所述flink任务之后,所述处理器还执行:
若所述flink任务执行异常,则基于设定的重试策略对所述flink任务进行重启。
作为一种可选的实施方式,所述处理器还执行:
若在设定的第一时间间隔内所述flink任务的重启次数达到设定阈值,且所述flink任务重启失败,则结束所述flink任务;
根据所述配置文件,确定所述flink任务编号和检查点信息文件;
基于所述flink任务编号,在所述检查点信息文件中确定最近一次成功的检查点信息;
基于所述检查点信息,恢复所述flink任务。
作为一种可选的实施方式,所述配置参数包括并发参数和所需资源参数,所述获取配置文件中的配置参数之后,所述处理器还执行:
若在设定的第二时间间隔内历史待处理数据的数据量大于或等于设定的第一阈值,则增加所述并发参数和所需资源参数中的部分或全部;
若在设定的第二时间间隔内历史待处理数据的数据量小于设定的第二阈值,则减少所述并发参数和所需资源参数中的部分或全部,其中,所述第一阈值大于所述第二阈值。
作为一种可选的实施方式,所述基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理,包括:
基于所述所需资源参数,利用yarn为所述flink任务分配对应的资源;
基于所述分配的资源,执行所述flink任务,对获取的待处理数据进行处理。
基于同一发明构思,本申请实施例提供一种计算机可读存储介质,计算机程序产品包括:计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行如前文论述任一的数据处理方法。由于上述计算机可读存储介质解决问题的原理与数据处理方法相似,因此上述计算机可读存储介质的实施可以参见方法的实施,重复之处不再赘述。
基于同一发明构思,本申请实施例还提供了一种计算机程序产品,如图7所示,该计算机程序产品70包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行如前文论述任一的数据处理方法。由于上述计算机程序产品解决问题的原理与数据处理方法相似,因此上述计算机程序产品的实施可以参见方法的实施,重复之处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列用户操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种数据处理方法,其特征在于,该方法包括:
基于预进行的业务,确定对应的结构化查询语言SQL文件;
获取配置文件中的配置参数;
根据所述配置参数和所述SQL文件,确定流式处理引擎flink任务;
基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理。
2.如权利要求1所述的方法,其特征在于,所述配置参数包括目标属性和目标属性对应的属性值,所述根据所述配置参数和所述SQL文件,确定流式处理引擎flink任务,包括:
将所述SQL文件中的目标属性使用所述配置参数中的对应的目标属性和属性值替换,得到替换后的SQL文件;其中,所述SQL文件中的目标属性为未有对应属性值的属性;
从所述替换后的SQL文件中获取SQL语句,并将所述SQL语句转化为所述flink任务。
3.如权利要求1所述的方法,其特征在于,所述基于所述配置参数,执行所述flink任务之后,所述方法还包括:
若所述flink任务执行异常,则基于设定的重试策略对所述flink任务进行重启。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
若在设定的第一时间间隔内所述flink任务的重启次数达到设定阈值,且所述flink任务重启失败,则结束所述flink任务;
根据所述配置文件,确定所述flink任务编号和检查点信息文件;
基于所述flink任务编号,在所述检查点信息文件中确定最近一次成功的检查点信息;
基于所述检查点信息,恢复所述flink任务。
5.如权利要求1所述的方法,其特征在于,所述配置参数包括并发参数和所需资源参数,所述获取配置文件中的配置参数之后,还包括:
若在设定的第二时间间隔内历史待处理数据的数据量大于或等于设定的第一阈值,则增加所述并发参数和所需资源参数中的部分或全部;
若在设定的第二时间间隔内历史待处理数据的数据量小于设定的第二阈值,则减少所述并发参数和所需资源参数中的部分或全部,其中,所述第一阈值大于所述第二阈值。
6.如权利要求5所述的方法,其特征在于,所述基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理,包括:
基于所述所需资源参数,利用资源管理系统yarn为所述flink任务分配对应的资源;
基于所述分配的资源,执行所述flink任务,对获取的待处理数据进行处理。
7.一种数据处理装置,其特征在于,该装置包括:
第一确定模块,用于基于预进行的业务,确定对应的结构化查询语言SQL文件;
获取模块,用于获取配置文件中的配置参数;
第二确定模块,用于根据所述配置参数和所述SQL文件,确定流式处理引擎flink任务;
处理模块,用于基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理。
8.如权利要求7所述的装置,其特征在于,所述配置参数包括目标属性和目标属性对应的属性值,所述第二确定模块,用于根据所述配置参数和所述SQL文件,确定流式处理引擎flink任务,包括:
将所述SQL文件中的目标属性使用所述配置参数中的对应的目标属性和属性值替换,得到替换后的SQL文件;其中,所述SQL文件中的目标属性为未有对应属性值的属性;
从所述替换后的SQL文件中获取SQL语句,并将所述SQL语句转化为所述flink任务。
9.如权利要求7所述的装置,其特征在于,所述处理模块用于基于所述配置参数,执行所述flink任务之后,还用于:
若所述flink任务执行异常,则基于设定的重试策略对所述flink任务进行重启。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
结束模块,用于若在设定的第一时间间隔内所述flink任务的重启次数达到设定阈值,且所述flink任务重启失败,则结束所述flink任务;
第三确定模块,用于根据所述配置文件,确定所述flink任务编号和检查点信息文件;
第四确定模块,用于基于所述flink任务编号,在所述检查点信息文件中确定最近一次成功的检查点信息;
恢复模块,用于基于所述检查点信息,恢复所述flink任务。
11.如权利要求7所述的装置,其特征在于,所述配置参数包括并发参数和所需资源参数,所述获取模块用于获取配置文件中的配置参数之后,还用于:
若在设定的第二时间间隔内历史待处理数据的数据量大于或等于设定的第一阈值,则增加所述并发参数和所需资源参数中的部分或全部;
若在设定的第二时间间隔内历史待处理数据的数据量小于设定的第二阈值,则减少所述并发参数和所需资源参数中的部分或全部,其中,所述第一阈值大于所述第二阈值。
12.如权利要求11所述的装置,其特征在于,所述处理模块,用于基于所述配置参数,执行所述flink任务,对获取的待处理数据进行处理,包括:
基于所述所需资源参数,利用资源管理系统yarn为所述flink任务分配对应的资源;
基于所述分配的资源,执行所述flink任务,对获取的待处理数据进行处理。
13.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行权利要求1-6中任一项所述的方法包括的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如权利要求1-6中任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211136227.XA CN115481156A (zh) | 2022-09-19 | 2022-09-19 | 一种数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211136227.XA CN115481156A (zh) | 2022-09-19 | 2022-09-19 | 一种数据处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115481156A true CN115481156A (zh) | 2022-12-16 |
Family
ID=84392604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211136227.XA Pending CN115481156A (zh) | 2022-09-19 | 2022-09-19 | 一种数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115481156A (zh) |
-
2022
- 2022-09-19 CN CN202211136227.XA patent/CN115481156A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5970617B2 (ja) | 開発支援システム | |
US11544137B2 (en) | Data processing platform monitoring | |
CN110895487B (zh) | 分布式任务调度系统 | |
JP2016129056A (ja) | フォールトトレラントバッチ処理 | |
CN106557470B (zh) | 数据提取方法和装置 | |
CN110895484A (zh) | 任务调度方法及装置 | |
CN108804215B (zh) | 一种任务处理方法、装置以及电子设备 | |
CN110895488B (zh) | 任务调度方法及装置 | |
CN110895486B (zh) | 分布式任务调度系统 | |
CN110895483A (zh) | 任务恢复方法及装置 | |
WO2020253045A1 (zh) | 配置化的数据转发异常补处理方法、装置及可读存储介质 | |
CN107463390B (zh) | 一种软件升级方法及升级服务器 | |
CN113157411B (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
CN110895485A (zh) | 任务调度系统 | |
US20200356885A1 (en) | Service management in a dbms | |
CN110119283B (zh) | 一种应用更新处理方法、装置及系统、应用更新系统 | |
CN111435356A (zh) | 数据特征提取方法、装置、计算机设备以及存储介质 | |
CN115481156A (zh) | 一种数据处理方法、装置、设备及介质 | |
US20200210307A1 (en) | Method for automatically analyzing bottleneck in real time and an apparatus for performing the method | |
CN115437766A (zh) | 一种任务处理方法和装置 | |
CN112115118B (zh) | 数据库压测的优化方法及装置、存储介质、电子设备 | |
US11321120B2 (en) | Data backup method, electronic device and computer program product | |
CN114791900A (zh) | 基于Operator的Redis运维方法、装置、系统及存储介质 | |
CN112162840A (zh) | 一种基于中断重入机制的协程处理及管理方法 | |
CN111538491A (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 |