一种数据处理方法、装置、设备及可读存储介质
文献发布时间:2024-04-18 19:58:26
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据处理方法、装置、设备及可读存储介质。
背景技术
随着5G、大数据、人工智能、物联网等新兴技术的不断发展,数据呈现出爆炸性增长,越来越多的大数据产品出现,也使得数据量变得十分庞大。
由于数据量的暴增,导致数据部署的难度提高。而目前在进行数据传输时,均采用的人工的方式进行,但是,人工进行数据传输的方式十分繁琐,并且人工操作也会待来不确定性的误差,如此导致数据传输的效率低。
发明内容
有鉴于此,本申请提供了一种数据处理方法、装置、设备及可读存储介质,能够提高数据传输的效率。
为解决上述问题,本申请提供的技术方案如下:
第一方面,本申请提供了一种数据处理方法,所述方法包括:
获取数据传输请求,所述数据传输请求包括数据的库名、数据的表名和数据的存储日期;
利用所述数据的库名、所述数据的表名和数据的存储日期从待导出数据表中确定待导出数据集合;
利用所述待导出数据集合中的待导出数据的库名、待导出数据的表名和待导出数据的存储日期从待传输数据表中确定待传输数据集合;
利用所述传输数据集合中的待传输数据创建传输任务;
若所述传输任务中的待传输数据符合预设的数据传输条件,则将所述传输任务中的待传输数据传输至目标存储空间。
在一种可能实现的方式中,所述若所述传输任务中的待传输数据符合预设的数据传输条件,则将所述传输任务中的待传输数据传输至目标存储空间,包括:
利用所述ods-export-transfer程序查询所述ods_export_task表,确定所述待传输数据集合中的待传输数据的status字段值;
若所述status字段值为预设目标字段值,则将所述传输任务中的待传输数据传输至目标存储空间。
在一种可能实现的方式中,所述方法包括:
获取所述传输任务的状态信息,所述状态信息包括:传输成功或者传输失败。
在一种可能实现的方式中,所述方法包括:
若所述传输状态为传输失败;
获取所述传输任务中的待传输数据的传输时长;
若所述传输时长小于第一预设传输时长,则对所述传输任务的第一执行次数进行更新,确定更新后的所述传输任务的第二执行次数;
若更新后的所述传输任务的第二执行次数与所述传输任务的第一执行次数之间的差值为1,则返回执行所述将所述传输任务中的待传输数据传输至目标存储空间。
在一种可能实现的方式中,所述方法包括:
若所述传输状态为传输失败;
获取所述传输任务中的待传输数据的传输次数和所述传输任务中的待传输数据的传输时长;
若所述传输次数小于预设传输次数,并且所述传输时长大于第二预设传输时长;
则对所述传输任务的第三执行次数进行更新,确定更新后的所述传输任务的第四执行次数;
若更新后的所述传输任务的第四执行次数与所述传输任务的第三执行次数之间的差值为1,则返回执行所述将所述传输任务中的待传输数据传输至目标存储空间。
第二方面,本申请还提供了一种数据处理装置,所述装置包括:
第一获取模块,用于获取数据传输请求,所述数据传输请求包括数据的库名、数据的表名和数据的存储日期;
第一确定模块,用于利用所述数据的库名、所述数据的表名和数据的存储日期从待导出数据表中确定待导出数据集合;
第二确定模块,用于利用所述待导出数据集合中的待导出数据的库名、待导出数据的表名和待导出数据的存储日期从待传输数据表中确定待传输数据集合;
创建模块,用于利用所述传输数据集合中的待传输数据创建传输任务;
第一传输模块,用于若所述传输任务中的待传输数据符合预设的数据传输条件,则将所述传输任务中的待传输数据传输至目标存储空间。
在一种可能实现的方式中,第一传输模块,包括:第一传输子模块;
所述传输子模块,用于利用所述ods-export-transfer程序查询所述ods_export_task表,确定所述待传输数据集合中的待传输数据的status字段值;
若所述status字段值为预设目标字段值,则将所述传输任务中的待传输数据传输至目标存储空间。
在一种可能实现的方式中,所述装置包括:第二获取模块;
所述第二获取模块,用于获取所述传输任务的状态信息,所述状态信息包括:传输成功或者传输失败。
在一种可能实现的方式中,所述装置包括:第二传输模块;
所述第二传输模块,用于若所述传输状态为传输失败;获取所述传输任务中的待传输数据的传输时长;若所述传输时长小于第一预设传输时长,则对所述传输任务的第一执行次数进行更新,确定更新后的所述传输任务的第二执行次数;若更新后的所述传输任务的第二执行次数与所述传输任务的第一执行次数之间的差值为1,则返回执行所述将所述传输任务中的待传输数据传输至目标存储空间。
在一种可能实现的方式中,所述装置包括:第三传输模块;
所述第三传输模块,用于若所述传输状态为传输失败;获取所述传输任务中的待传输数据的传输次数和所述传输任务中的待传输数据的传输时长;若所述传输次数小于预设传输次数,并且所述传输时长大于第二预设传输时长;则对所述传输任务的第三执行次数进行更新,确定更新后的所述传输任务的第四执行次数;若更新后的所述传输任务的第四执行次数与所述传输任务的第三执行次数之间的差值为1,则返回执行所述将所述传输任务中的待传输数据传输至目标存储空间。
第三方面本申请提供了一种据处理设备,其特征在于,包括:处理器和存储器;
所述存储器,用于存储一个或多个程序;
所述处理器,用于当所述一个或多个程序被所述处理器执行时,实现如上述第一方面所述的数据处理方法。
第四方面本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储指令,当所述指令在设备上运行时,使得所述设备执行如上述第一方面所述的数据处理方法。
由此可见,本申请具有如下有益效果:
本申请提供了一种数据处理方法、装置、设备及可读存储介质,首先,获取数据传输请求,数据传输请求包括数据的库名、数据的表名和数据的存储日期,再利用所述数据的库名、所述数据的表名和数据的存储日期从待导出数据表中确定待导出数据集合,再利用所述待导出数据集合中的待导出数据的库名、待导出数据的表名和待导出数据的存储日期从待传输数据表中确定待传输数据集合,然后利用所述传输数据集合中的待传输数据创建传输任务;若所述传输任务中的待传输数据符合预设的数据传输条件,则将所述传输任务中的待传输数据传输至目标存储空间。可见,本申请中可以通过导出数据表确定待导出数据集合,在利用待传输数据表确定出待传输数据,并且利用待传输数据集合中的待传输数据创建传输任务,若传输任务符合传输条件,将传输任务中的传输数据传输至目标存储空间。如此能够利用待导出数据表和待传输数据表,确定出待传输数据集合,并利用待传输数据集合创建传输任务,在将传输任务中符合将符合传输条件的待传输数据发送至目标存储空间,保证了数据的安全的同时提高了数据传输的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据处理方法的方法流程示意图;
图2为本申请实施例提供的另一种数据处理方法的方法流程示意图;
图3为本申请实施例提供的一种数据处理装置的装置结构示意图。
具体实施方式
为了便于理解和解释本申请实施例提供的技术方案,下面将先对本申请实施例可能涉及的名词及本申请的背景技术进行说明:
数据湖项目中,数据湖需承担上游业务组件数据聚合和分省加工功能,即通过各业务组件分省加工规则,数据湖需要全面考虑数据加工方式,达到数据完整、性能高效、方便后线使用数据目的。
例如,目前,数据湖需下传1700余张表,并且每张表包含多个文件,需每日持续下传,缺乏完善的下传机制导致工作量大、重复操作频繁、人工成本高等问题。
为完成数据湖文件下传,供不同下游系统使用,解决传统人工手动下传操作的繁琐性,以及人工操作待来不确定性的误差。因此,提供一种数据处理方法,将人力从繁琐的重复性操作中解脱出来,投身于更具有技术性,更有价值的工作。
本申请提供了一种数据处理方法、装置、设备及可读存储介质,首先,获取数据传输请求,数据传输请求包括数据的库名、数据的表名和数据的存储日期,再利用所述数据的库名、所述数据的表名和数据的存储日期从待导出数据表中确定待导出数据集合,再利用所述待导出数据集合中的待导出数据的库名、待导出数据的表名和待导出数据的存储日期从待传输数据表中确定待传输数据集合,然后利用所述传输数据集合中的待传输数据创建传输任务;若所述传输任务中的待传输数据符合预设的数据传输条件,则将所述传输任务中的待传输数据传输至目标存储空间。可见,本申请中可以通过导出数据表确定待导出数据集合,在利用待传输数据表确定出待传输数据,并且利用待传输数据集合中的待传输数据创建传输任务,若传输任务符合传输条件,将传输任务中的传输数据传输至目标存储空间。如此能够利用待导出数据表和待传输数据表,确定出待传输数据集合,并利用待传输数据集合创建传输任务,在将传输任务中符合将符合传输条件的待传输数据发送至目标存储空间,保证了数据的安全的同时提高了数据传输的效率。
为了便于理解本申请实施例提供的技术方案,下面结合附图对本申请实施例提供的一种数据处理方法和装置进行说明。
首先,参见图1所述,该图为本申请实施例提供的一种数据处理方法的方法流程示意图,该方法具体包括S101-S105。
S101:获取数据传输请求,所述数据传输请求包括数据的库名、数据的表名和数据的存储日期。
本申请实施例中,在需要进行时数据传输时,首先需要发起数据传输请求,该数据传输请求中包括数据的库名、数据的表名和数据的存储日期等等。
S102:利用所述数据的库名、所述数据的表名和数据的存储日期从待导出配置表待导出数据表中确定待导出数据集合。
本申请实施例中,在获取到数据传输请求之后,可以利用数据的库名、数据的表名和数据的存储日期从待导出数据表中确定待导出数据集合,具体的:
接收数据的db_name(库名)、数据的table_name(表名)和数据的data_date(数据日期),这三个数据必须包含在数据传输请求中,也就是说,这三个参数必传否则程序异常终止。
再利用数据的db_name(库名)、数据的table_name(表名)和数据的data_date(数据日期)查询ods_export_config表,确定待导出数据集合。具体的代码语句为:
SELECT*FROM udp_ods.udp_ods_config;
WHERE`param_db`=#{db_name}AND`param_table`=#{table_name}AND`start_data_date`<=#{data_date}。
S103:利用所述待导出数据集合中的待导出数据的库名、待导出数据的表名和待导出数据的存储日期从待传输数据表中确定待传输数据集合。
在确定出待导出数据集合后,利用待导出数据集合中的待导出数据的库名、待导出数据的表名和待导出数据的存储日期从待传输数据表中确定待传输数据集合。也就是说,利用待导出数据集合中的待导出数据的db_name(库名)、待导出数据的table_name(表名)和待导出数据的data_date(数据日期)查询ods_export_task表确定待传输数据集合,具体执行代码如下:
SELECT*FROM udp_ods.ods_export_task;
WHERE`db_name`=#{db_name}AND`param_table`=#{table_name}AND`data_date`<=#{data_date}AND`file_name`=#{file_name}。
S104:利用所述传输数据集合中的待传输数据创建传输任务。
在确定出待传输数据之后,可以将待传输数据进行打包,并建立传输任务。
在一种可能实现的方式中,创建传输任务后,还可以基于ods_export_task表,获取与该传输任务相同的历史传输任务,若无法获取与该传输任务相同的历史传输任务,则可以认为该传输任务为新增传输任务。若可以获取与该传输任务相同历史传输任务,则更新ods_export_task任务表中的任务传输状态,具体的更新过程为:删除与该传输任务相同的历史传输任务,根据task_name${db_name}_${table_name}_${file_name}.${data_date}${tab le_type}删除ods_export_status表中与该传输任务对应的历史传输任务的记录,具体执行代码为:
DELETE FROM udp_ods.ods_export_status WHERE task_name=
#{task_name})
S105:若所述传输任务中的待传输数据符合预设的数据传输条件,则将所述传输任务中的待传输数据传输至目标存储空间。
在确定传输任务建立成功后,利用ods-export-transfer程序定时查询ods_export_task表,也就是,利用ods-export-transfer程序轮询ods_export_task表,确定待传输数据集合中的待传输数据的status字段值;
再利用ods_export_status表查询,status字段值,若status字段值为预设目标字段值,则将传输任务中的待传输数据传输至目标存储空间。
更进一步的,若status字段值为1,则确定数据文件已上传至文件传输服务器(File Transfer Protocol Server,FTPServer)下的ftp目录。
若status字段值为2,则确定所述待传输任务处于“任务不再被轮询”状态。
若status字段值为3,则确定所述符合预设传输条件,传输任务中的待传输数据传输至目标存储空间,其中,目标存储空间可以是,ftp目录或者目标存储盘等等,在此不做具体限定。
在另一种可能实现的方式中,若status字段值为“文件已上传至ftp”,则确定数据文件已上传至文件传输服务器(File Transfer Protocol Server,FTPServer)下的ftp目录。
若status字段值为“任务不再被轮询”,则确定所述待传输任务处于“任务不再被轮询”状态。
若status字段值不为“文件已上传至ftp”和“任务不再被轮询”,则确定所述符合预设传输条件,传输任务中的待传输数据传输至目标存储空间,其中,目标存储空间可以是,ftp目录或者目标存储盘等等,在此不做具体限定。具体的运行代码为:SELECT*FROMudp_ods.ods_export_task WHERE`status`NOT IN(‘UPLOAD_SUCC’,’DEAD’)。
在一种可能实现的方式中,在执行将传输任务中的待传输数据存储至目标存储空间的步骤之后,还可以再次获取传输任务的状态信息,状态信息包括:传输成功或者传输失败。
当该条任务的状态是“传输成功”,则不进行任务处理。
若传输状态为正在传输中,且任务的处理时间已经超出最大处理时间,则不进行处理。若任务的处理时间未超出最大处理时间,则尝试将传输任务中的开始时间“begin_dtime”更新为当前时间,判断执行次数“execute_times”是否成功增1,若执行次数没有增加1,则更新失败不处理,若执行次增加1,则认为更新成功,进行后续处理。也就是说,若传输状态为正在传输中,获取传输任务中的待传输数据的传输时长,若传输时长小于第一预设传输时长,则对传输任务的第一执行次数进行更新,确定更新后的传输任务的第二执行次数。若更新后的传输任务的第二执行次数与传输任务的第一执行次数之间的差值为1,则返回执行所述将所述传输任务中的待传输数据传输至目标存储空间。
若所述传输状态为传输失败,且失败时间没有超出重试时间“record_retry_time”,则不处理,并且执行次数“execute_times”超过最大最大重试次数(需要说明的是,最大重试次数可以通过代码export.task.time-conf.retry-max-count进行配置),则不处理。若不是以上两种情况,则判断执行次数“execute_times”是否增1,进一步的,可以尝试更新开始时间“begin_dtime”为当前时间,并将status字段值更新为“处理中”,若执行次数“execute_times”并未增加1,则更新失败不处理,若执行次数“execute_times”并增加1,则认为更新成功进行后续处理;
也就是说,若传输状态为传输失败;获取传输任务中的待传输数据的传输次数和传输任务中的待传输数据的传输时长;若传输次数小于预设传输次数,并且传输时长大于第二预设传输时长;则对传输任务的第三执行次数进行更新,确定更新后的传输任务的第四执行次数;若更新后的传输任务的第四执行次数与传输任务的第三执行次数之间的差值为1,则返回执行将传输任务中的待传输数据传输至目标存储空间。
基于S101-S105的相关内容可知,本申请中通过导出数据表确定待导出数据集合,在利用待传输数据表确定出待传输数据,并且利用待传输数据集合中的待传输数据创建传输任务,若传输任务符合传输条件,将传输任务中的传输数据传输至目标存储空间。如此能够利用待导出数据表和待传输数据表,确定出待传输数据集合,并利用待传输数据集合创建传输任务,在将传输任务中符合将符合传输条件的待传输数据发送至目标存储空间,保证了数据的安全的同时提高了数据传输的效率。
接下来以一个具体的应用场景例对本申请中的数据处理进行详细说明,参见图2,具体内容如下:
我们可以将数据的处理分为:任务生成模块ods-export-gen-task和数据下传模块ods-export-transfer。
任务生成模块ods-export-gen-task,可以将需要导出数据的表对应的工作流加载完成后,触发生成导出任务,该功能支持部署多个实例。
具体流程说明如下:
S201:也就是Step1,接收参数的db_name(库名)、table_name(表名)和data_date(数据日期),这三个参数必传否则程序异常终止;
S202:也就是Step2,利用参数的db_name(库名)、table_name(表名)和data_date(数据日期),查询ods_export_config表,具体执行该步骤的等效语句,即具体执行代码为:
SELECT*FROM udp_ods.ods_export_config;
WHERE`param_db`=#{db_name}AND`param_table`=#{table_name}AND`start_data_date`<=#{data_date});
S203:也就是Step3,判断上述执行代码的输出结果是否为空,若上述S202的执行代码的输出结果为空,则进入步骤S215,任务结束。若上述S202的执行代码的输出结果不为空,则进入步骤S204,生成状态为初始化INIT的导出任务数据集合,确定初始化INIT的导出任务数据集合中的每条数据的db_name、table_name、data_date和file_name。
S205:也就是Step4,遍历初始化INIT的导出任务数据集合中的每条数据,基于导出任务数据集合中的每条数据的db_name、table_name、data_date和file_name作为条件查询ods_export_task表。
具体执行该步骤的等效语句,即具体执行代码为:
SELECT*FROM udp_ods.ods_export_task WHERE`db_name`=#{db_name}AND`param_table`=#{table_name}AND`data_date`<=#{data_date}AND`file_name`=#{file_name})。
S206:也就是Step6:若S205的结果为空,则进入步骤S207插入相应的任务记录到ods_export_task表中保存。
S208:数据下传模块ods-export-transfer,轮询ods_export_task表中满足下传条件的表,也就是利用ods-export-transfer程序定时查询ods_export_task表中满足下传条件文件。也就是,轮询ods_export_task表中满足下传条件的表;ods-export-transfer程序定时查询ods_export_task表中`status`字段值不是"文件已上传至ftp"、"任务不再被轮询"的记录进行处理;
具体执行该步骤的等效语句,即具体执行代码为:
SELECT*FROM udp_ods.ods_export_task WHERE`status`NOT IN(‘UPLOAD_SUCC’,’DEAD’);进入步骤S211。
若S205的结果不为空则更新,进入步骤S209,删除记录ods_export_status表中记录,已备重新导出下传,具体为:根据
task_name${db_name}_${table_name}_${file_name}.${data_date}${table_type}删除ods_export_status表中对应的记录。
具体执行该步骤的等效语句,即具体执行代码为:
DELETE FROM udp_ods.ods_export_status;
WHERE task_name=#{task_name}),以准备重新导出下传。执行步骤S210;
将导出任务数据集合中的每条数据的db_name、table_name、data_date和file_name记录在ods_export_status表中,进入步骤S211.
S211:利用导出任务数据集合中的每条数据的db_name、table_name、data_date和file_name,查询ods_export_status中满足下传条件数据,生成查询结果,若查询结果为空,则进入步骤S213,将任务记录在ods_export_status表中。
若查询结果不为空,根据该表的status字段值,执行任务,记录任务生成、导出下传过程中的日志,进入步骤S215,确定任务结束。
与图1所述的方法相对应,本申请实施例还提供了一种数据处理装置,用于对图1中方法的具体实现,需要说明的是,本申请提供的一种数据处理方法和装置,可用于金融领域或其他领域,上述仅为示例,并不对本申请提供的一种数据处理方法和装置的应用领域进行限定。
本申请实施例提供的数据处理装置可以应用计算机终端或各种移动设备中,其结构示意图如图3所示,该数据处理装置具体包括:
第一获取模块301,用于获取数据传输请求,所述数据传输请求包括数据的库名、数据的表名和数据的存储日期;
第一确定模块302,用于利用所述数据的库名、所述数据的表名和数据的存储日期从待导出数据表中确定待导出数据集合;
第二确定模块303,用于利用所述待导出数据集合中的待导出数据的库名、待导出数据的表名和待导出数据的存储日期从待传输数据表中确定待传输数据集合;
创建模块304,用于利用所述传输数据集合中的待传输数据创建传输任务;
第一传输模块305,用于若所述传输任务中的待传输数据符合预设的数据传输条件,则将所述传输任务中的待传输数据传输至目标存储空间。
在一种可能实现的方式中,第一传输模块305,包括:第一传输子模块;
所述传输子模块,用于利用所述ods-export-transfer程序查询所述ods_export_task表,确定所述待传输数据集合中的待传输数据的status字段值;
若所述status字段值为预设目标字段值,则将所述传输任务中的待传输数据传输至目标存储空间。
在一种可能实现的方式中,所述装置包括:第二获取模块;
所述第二获取模块,用于获取所述传输任务的状态信息,所述状态信息包括:传输成功或者传输失败。
在一种可能实现的方式中,所述装置包括:第二传输模块;
所述第二传输模块,用于若所述传输状态为传输失败;获取所述传输任务中的待传输数据的传输时长;若所述传输时长小于第一预设传输时长,则对所述传输任务的第一执行次数进行更新,确定更新后的所述传输任务的第二执行次数;若更新后的所述传输任务的第二执行次数与所述传输任务的第一执行次数之间的差值为1,则返回执行所述将所述传输任务中的待传输数据传输至目标存储空间。
在一种可能实现的方式中,所述装置包括:第三传输模块;
所述第三传输模块,用于若所述传输状态为传输失败;获取所述传输任务中的待传输数据的传输次数和所述传输任务中的待传输数据的传输时长;若所述传输次数小于预设传输次数,并且所述传输时长大于第二预设传输时长;则对所述传输任务的第三执行次数进行更新,确定更新后的所述传输任务的第四执行次数;若更新后的所述传输任务的第四执行次数与所述传输任务的第三执行次数之间的差值为1,则返回执行所述将所述传输任务中的待传输数据传输至目标存储空间。
第三方面本申请提供了一种据处理设备,其特征在于,包括:处理器和存储器;
所述存储器,用于存储一个或多个程序;
所述处理器,用于当所述一个或多个程序被所述处理器执行时,实现如上述任一项实施例所述的数据处理方法。
第四方面本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储指令,当所述指令在设备上运行时,使得所述设备执行如上述任一项实施例所述的数据处理方法。
需要说明的是,本申请提供的一种数据处理方法和装置,可用于金融领域或其他领域,上述仅为示例,并不对本申请提供的一种数据处理方法和装置的应用领域进行限定。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 一种数据处理方法、数据处理装置、计算机设备及可读存储介质
- 一种元数据存储方法、装置、设备及计算机可读存储介质
- 一种数据存储方法、装置、设备及计算机可读存储介质
- 一种地形纹理处理方法、装置、计算机设备及可读存储介质
- 一种应用程序处理方法、装置、电子设备及可读存储介质
- 数据加密处理方法、数据解密处理方法、装置、电子设备及可读存储介质
- 一种数据处理方法、数据处理装置、计算机设备及可读存储介质