数据采集方法、装置及电子装置、计算机程序产品制造方法及图纸

技术编号:32573601 阅读:17 留言:0更新日期:2022-03-09 17:01
本申请提出了一种数据采集方法,包括:前端向后端发送根据目标数据文件生成的注册数据包,其中注册数据包至少包括目标数据库的标识信息、目标数据表的表名以及多条目标数据;后端获取注册数据包,并根据注册数据包在目标数据库中建立目标数据表,将所有目标数据分为多个数据组,并将每一数据组分配给消息队列中的不同消息,根据每一消息的消息编号将该消息分配给消费者集群中对应的消费者,每一消费者将消息内的数据组导入目标数据表。该方法在保证导入数据准确性的同时,采用多线程批量导入的形式,将庞大数量的数据化整为零地将所有数据导入目标数据库。据导入目标数据库。据导入目标数据库。

【技术实现步骤摘要】
数据采集方法、装置及电子装置、计算机程序产品


[0001]本申请涉及数据处理领域,特别是涉及一种数据采集方法、装置及电子装置、计算机程序产品。

技术介绍

[0002]数据库主要分为传统的关系型数据库和非关系型数据库,新型数据库以及分布式数据库等。在将数据输入数据库时,通常需要编写相应的SQL脚本实现数据写入,对于不具备数据库语言基础的非专业人员来说,完成该操作是有一定难度的。
[0003]随着开发场景的增加,开发中使用到的数据源也各有不同,对每一种数据源实现数据采集需要掌握的数据库语言也不同。例如,现存在多种将Excel文件中的数据导入数据库的方法,但这些方法使用范围有限,且对于不同类型的Excel文件、不同排列方式的Excel表格以及数据库对不同数据格式的要求,需要编写的SQL脚本均不相同。采用人工手动录入数据或者根据每一条数据编写对应的SQL脚本,所需要的时间成本和人工成本极高,并且存在人工录入数据错误的可能性。
[0004]另外,一次性导入庞大数量的数据可能会给系统以及数据库造成过载负担,在导入庞大数量的数据时通常使用线程池来解决,但如果某一个线程池中分配过多数据也会发生CPU和内存的资源竞争,可能导致资源耗尽,进而导致系统或程序闪退,以至于其中某些数据在导入时丢失,又难以排查出具体丢失的是哪些数据,需要进行重新导入;或者如果某一个线程池中分配过少数据,会使得自身吞吐量降低,同时增加其他线程池的负担,导致总体的导入效率低下。

技术实现思路

[0005]本申请实施例提供了一种数据采集方法,该方法将数据文件上传和数据导入的过程分离,为导入前的数据提供可修改功能,保证导入时数据的准确性;同时采用多线程批量导入的形式,将庞大数量的数据分为多个数据组并分配给消息队列中不同的消息,且将所有消息尽可能均匀分配给消费者集群中的每个消费者,通过化整为零的方法实现高效的数据导入。
[0006]第一方面,本申请实施例提供了一种数据采集方法,包括以下步骤:前端向后端发送根据目标数据文件生成的注册数据包,其中所述注册数据包至少包括目标数据库的标识信息、目标数据表的表名以及多条目标数据;后端获取所述注册数据包,并根据所述注册数据包在所述目标数据库中建立所述目标数据表,将所有所述目标数据分为多个数据组,并将每一所述数据组分配给消息队列中的不同消息,根据每一所述消息的消息编号将该消息分配给消费者集群中对应的消费者,每一所述消费者将所述消息内的所述数据组导入所述目标数据表。
[0007]在一些申请实施例中,在“前端向后端发送根据目标数据文件生成的注册数据包”前,包括步骤:
前端向后端发送包括目标文件标识的查询请求;后端获取所述查询请求,并根据所述目标文件标识获取目标数据文件,解析所述目标数据文件得到响应信息,所述响应信息至少包括多条所述目标数据、至少一表头、每一所述表头的数据类型、根据每一所述表头生成的字段以及根据每一所述表头的数据类型生成的字段类型;前端根据所述响应信息渲染可视化页面,在所述可视化页面上可设置所述目标数据库的标识信息和所述目标数据表的表名,以及可调整每一所述表头对应的所述字段、每一所述表头的数据类型对应的所述字段类型。
[0008]在一些申请实施例中,在“前端向后端发送包括目标文件标识的查询请求”前,包括步骤:前端向后端发起上传至少一数据文件的上传请求;后端获取所述上传请求,并根据所述上传请求保存所述数据文件,生成对应每一所述数据文件的文件标识。
[0009]在一些申请实施例中,所述目标数据文件包括多条所述目标数据、至少一所述表头以及对应每一所述表头的数据类型,每一所述目标数据包括至少一对应所述表头的元数据,同一所述目标数据中的不同所述元数据对应不同所述表头。
[0010]在一些申请实施例中,“将每一所述数据组分配给消息队列中的不同消息”包括步骤:在消息队列中创建与所述数据组相同数量的消息,每一所述消息设有消息编号,将每一所述数据组存入所述消息编号不同的所述消息。
[0011]在一些申请实施例中,“根据每一所述消息的消息编号将该消息分配给消费者集群中对应的消费者”包括步骤:对应所述消息队列设有消费者集群,所述消费者集群包括至少一消费者;统计所述消费者集群中的消费者数量,根据每一所述消息的消息编号与所述消费者数量确定该消息对应的所述消费者作目标消费者,并将该消息分配给所述目标消费者。
[0012]第二方面,本申请实施例提供了一种数据采集装置,用于实现第一方面中所述的数据采集方法,该装置包括以下模块:提交注册模块,用于前端向后端发送根据目标数据文件生成的注册数据包,其中所述注册数据包至少包括目标数据库的标识信息、目标数据表的表名以及多条目标数据;注册模块,用于后端获取所述注册数据包,并根据所述注册数据包在所述目标数据库中建立所述目标数据表,将所有所述目标数据分为多个数据组,并将每一所述数据组分配给消息队列中的不同消息,根据每一所述消息的消息编号将该消息分配给消费者集群中对应的消费者,每一所述消费者将所述消息内的所述数据组导入所述目标数据表。
[0013]第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以如上任意申请实施例所述的数据采集方法。
[0014]第四方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述软件代码部分用于执行如上任一申请实施例所述的数据采集方法。
[0015]第五方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有
计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据如上任意申请实施例所述的数据采集方法。
[0016]本申请实施例的主要贡献和创新点如下:本申请实施例提供了一种数据采集方法、装置及电子装置、计算机程序产品、可读存储介质。该方法采用多线程批量导入的形式,将庞大数量的数据分为多个数据组分配给消息队列中不同的消息,并将所有消息尽可能均匀分配给消费者集群中的每个消费者,通过化整为零的方法实现高效的数据导入。
[0017]且本方案无需编写复杂的SQL脚本,即可实现在前端页面上将数据文件一键导入,不仅简化数据采集的工作还有效提高了在大数据量情况下数据导入的性能,更有效降低人为处理数据而发生数据偏差的可能性。
[0018]特别的是,在另一些申请实施例中,采用了将数据文件上传和数据导入分离的形式,为导入前的数据提供可修改功能,保证导入时数据的准确性;不仅在导入数据文件的方式上提供了可视化界面,为上传数据文件、核对相关信息提供了遍历,更是在针对庞大数量的数据情况下,缓解了业务系统的压力,使用消息队列以及相应设置的消费者集群顺序插入数据,并且对系统进行解耦,极大提高了业务系统的性能。
[0019]本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。...

【技术保护点】

【技术特征摘要】
1.数据采集方法,其特征在于,包括以下步骤:前端向后端发送根据目标数据文件生成的注册数据包,其中所述注册数据包至少包括目标数据库的标识信息、目标数据表的表名以及多条目标数据;后端获取所述注册数据包,并根据所述注册数据包在所述目标数据库中建立所述目标数据表,将所有所述目标数据分为多个数据组,并将每一所述数据组分配给消息队列中的不同消息,根据每一所述消息的消息编号将该消息分配给消费者集群中对应的消费者,每一所述消费者将所述消息内的所述数据组导入所述目标数据表。2.根据权利要求1所述的数据采集方法,其特征在于,在“前端向后端发送根据目标数据文件生成的注册数据包”前,包括步骤:前端向后端发送包括目标文件标识的查询请求;后端获取所述查询请求,并根据所述目标文件标识获取目标数据文件,解析所述目标数据文件得到响应信息,所述响应信息至少包括多条所述目标数据、至少一表头、每一所述表头的数据类型、根据每一所述表头生成的字段以及根据每一所述表头的数据类型生成的字段类型;前端根据所述响应信息渲染可视化页面,在所述可视化页面上可设置所述目标数据库的标识信息和所述目标数据表的表名,以及可调整每一所述表头对应的所述字段、每一所述表头的数据类型对应的所述字段类型。3.根据权利要求1所述的数据采集方法,其特征在于,所述目标数据文件包括多条所述目标数据、至少一所述表头以及对应每一所述表头的数据类型,每一所述目标数据包括至少一对应所述表头的元数据,同一所述目标数据中的不同所述元数据对应不同所述表头。4.根据权利要求3所述的数据采集方法,其特征在于,所述注册数据包还包括:每一所述表头对应的字段、每一所述表头的数据类型对应的字段类型。5.根据权利要求1所述的数据采集方法,其特征在于,“将每一所述数据组分配给消息队列中...

【专利技术属性】
技术研发人员:徐剑炯孙莹婕林加旺倪林杰黄红叶
申请(专利权)人:城云科技中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1