CN113722277A - 一种数据导入方法、装置、服务平台及存储介质 - Google Patents

一种数据导入方法、装置、服务平台及存储介质 Download PDF

Info

Publication number
CN113722277A
CN113722277A CN202010448776.5A CN202010448776A CN113722277A CN 113722277 A CN113722277 A CN 113722277A CN 202010448776 A CN202010448776 A CN 202010448776A CN 113722277 A CN113722277 A CN 113722277A
Authority
CN
China
Prior art keywords
data
imported
data file
import
file
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
Application number
CN202010448776.5A
Other languages
English (en)
Inventor
王晋花
朱柯见
卢家顺
刘志文
付裕
吕达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinzhuan Xinke Co Ltd
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN202010448776.5A priority Critical patent/CN113722277A/zh
Priority to PCT/CN2021/095730 priority patent/WO2021238902A1/zh
Publication of CN113722277A publication Critical patent/CN113722277A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种数据导入方法、装置、服务平台及存储介质。该方法包括:确定待导入数据文件的目标存储节点;拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。上述技术方案在拆分得到的数据子文件的数量达到预设数量时导入目标存储节点,使得拆分与导入并发执行,提高了数据文件的导入效率。

Description

一种数据导入方法、装置、服务平台及存储介质
技术领域
本申请实施例涉及数据存储技术领域,尤其涉及一种数据导入方法、装置、服务平台及存储介质。
背景技术
信息业务的发展带来了数据量的与日俱增,数据库在信息业务系统中承担着不可或缺的数据桥梁作用。分布式数据库是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库,有着存储量大、业务并发量高、可扩展性好的特点,其应用日益广泛。在分布式数据库的应用场景中,数据的备份、恢复和迁移等是常见操作,这就要求数据库提供完备可靠的数据导入功能。
目前数据库的导入功能基本是通过业务数据插入的方式实现,也就是在数据库代理节点执行插入语句队列,由数据库代理节点完成业务数据的导入。这种导入技术成熟但性能低,尤其是在大数据量导入的情况下会对数据库代理节点造成较大的压力,而且耗时较长,效率低。
申请内容
本申请实施例提供一种数据导入方法、装置、服务平台及存储介质,在大数据文件导入数据库时提升导入效率。
第一方面,本申请实施例提供了一种数据导入方法,包括:
确定待导入数据文件的目标存储节点;
拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。
第二方面,本申请实施例提供了一种数据导入装置,包括:
节点确定模块,用于确定待导入数据文件的目标存储节点;
第一导入模块,用于拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。
可选的,该装置还包括:
校验模块,用于在拆分所述待导入数据文件之前,校验所述待导入数据文件。
可选的,所述节点确定模块,具体用于:
获取数据导入请求,所述数据导入请求包括地址信息、库信息和表信息;
根据所述地址信息,获取所述待导入数据文件;
根据所述库信息和表信息,确定目标数据库,并将所述目标数据库记为所述待导入数据文件的目标存储节点。
可选的,所述第一导入模块,具体用于:
如果校验成功,根据配置文件中拆分文件的参数信息拆分所述待导入数据文件,得到数据子文件;
当所述数据子文件的数量达到预设数量时,将预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。
可选的,所述校验模块,具体用于:
根据所述表信息,确定所述目标存储节点中所述表信息对应的结构信息;
根据所述结构信息,校验所述待导入数据文件的数据行;
如果所述待导入数据文件中各数据行的列字段信息与所述结构信息一致,则校验成功;否则,校验失败。
可选的,该装置还包括:
第二导入模块,用于如果校验失败,将校验失败的待导入数据文件导入错误文件缓存。
可选的,该装置还包括:
汇总模块,用于在所述待导入数据文件拆分且导入完毕之后,汇总数据文件导入结果,并反馈给对应的用户端。
第三方面,本申请实施例提供了一种数据导入服务平台,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如第一方面所述的数据导入方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据导入方法。
本申请实施例提供一种数据导入方法、装置、服务平台及存储介质,通过确定待导入数据文件的目标存储节点;拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。上述技术方案在拆分得到的数据子文件的数量达到预设数量时导入目标存储节点,使得拆分与导入并发执行,提高了数据文件的导入效率。
附图说明
图1为本申请实施例提供的一种数据导入方法的流程图;
图2为本申请实施例提供的另一种数据导入方法的流程图;
图3为本申请实施例提供的一种基于生产者消费者模型的数据文件拆分与导入的过程示意图;
图4为本申请实施例提供的一种基于生产者消费者模型的数据切片过程的示意图;
图5为本申请实施例提供的一种分布式数据库并发导入系统的结构图;
图6为本申请实施例提供的一种在应用场景一下的数据导入过程示意图;
图7为本申请实施例提供的一种异构数据库之间的数据迁移系统的结构图;
图8为本申请实施例提供的一种数据导入装置的结构图;
图9为本申请实施例提供的一种数据导入服务平台的结构图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。此外,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1为本申请实施例提供的一种数据导入方法的流程图,本实施例可适用于将外部业务系统提供的数据文件导入数据库的情况,尤其是将大数据量的数据文件导入分布式数据库,该方法可以由数据导入装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在数据导入服务平台中,其中,数据导入服务平台可以是具备处理功能的智能终端或服务器。参考图1,该方法包括如下步骤:
S110、确定待导入数据文件的目标存储节点。
待导入数据文件可以是外部业务系统提供,需要由数据导入服务平台导入分布式数据库系统的数据文件,本实施例待导入数据文件的类型不进行限定,一般情况下,待导入数据文件的数据量和数量较大。在一种情况下,外部业务系统可以通过FTP(文件传输协议,File Transfer Protocol)协议或其他文件传输协议如SFTP(安全文件传输协议,SSH FileTransfer Protocol)协议将需要导入的数据文件预先存放至数据导入服务平台的指定位置。目标存储节点可以是存储数据文件的数据库或数据库中的某个具体存储位置。目标存储节点的数量可以是一个或多个,同一个待导入数据文件对应的目标存储节点可以是一个或多个。
在一种情况下,待导入数据文件和目标存储节点可以根据用户通过用户端发送的数据导入请求确定。数据导入请求可以包括但不限于待导入数据文件对应的IP地址以及待导入的数据库标识信息等,其中,待导入数据文件对应的IP地址为待导入数据文件在数据导入服务平台的存放位置,根据IP地址可以获取待导入的数据文件。数据库标识信息用于唯一标识存放数据文件的数据库,例如可以是数据库对应的编号,每一个数据库对应一个唯一的编号。用户端可以是手机、笔记本电脑或平板电脑等智能终端。在另一种情况下,待导入数据文件和目标存储节点可以根据外部业务系统发送的数据导入请求确定,确定过程与前面类似。
S120、拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。
信息业务的发展带来了数据量的与日俱增,也因此加大了数据文件的数据量,在将其导入数据库时对系统造成了较大的压力。为了降低导入压力,本实施例对待导入的数据文件进行拆分。在一种情况下,可以逐个拆分待导入数据文件,得到多个数据子文件。在另一种情况下,可以批量拆分待导入数据文件,得到多个数据子文件。批量拆分是同时拆分多个待导入数据文件,为了提高效率,本实施例以批量拆分待导入数据文件为例。批量拆分的数量可以自行设定。
在一种情况下,可以根据待导入数据文件的大小将其拆分为多个数据子文件,例如待导入数据文件的大小为100M,可以将其拆分为N个数据子文件,这N个数据子文件的大小可以相同也可以不同,N的大小可以固定,也可以根据待导入数据文件的大小动态调整,例如待导入数据文件的数据量较大时,N较大,待导入数据文件的数据量较小时,N较小。在另一种情况下,可以根据待导入数据文件的行数将其拆分为多个数据子文件,例如可以将待导入数据文件按照由前到后的顺序,每5000行拆分为一个数据子文件。数据子文件的行数可以预先设置。需要说明的是,当待导入数据文件剩余的行数小于预先设置的行数时,可以直接将剩余的行数作为一个数据子文件。在有数据导出需求时,为了保证导出数据文件的完整性,在拆分数据文件时,可以对拆分的每一个数据子文件按照内容的完整性进行编号,例如将待导入数据文件按照由前到后的顺序拆分为5个数据子文件,则可以将这5个数据子文件分别编号为A-1、A-2、A-3、A-4、A-5,A用于唯一标识待导入的数据文件,拼接A-1、A-2、A-3、A-4和A-5即可得到完整的数据文件。
数据子文件的导入方式可以根据实际情况选择,例如可以在待导入数据文件全部拆分完毕后再执行导入过程,也可以在拆分的过程中伴随导入,为了提高导入效率,本实施例以后者为例,即采用拆分与导入并发的方式实现数据文件的存储。在导入数据子文件时,可以逐个导入也可以批量导入,本实施例以批量导入为例,当数据子文件的数量达到预设数量时,将预设数量的数据子文件同时导入目标存储节点,与逐个导入的方式相比,批量导入可以减少导入次数,节省时间。本实施例对预设数量不进行限定,例如可以设置为100,即数据子文件的数量每达到100,便将这100个数据子文件导入目标存储节点。需要说明的是,当剩余数据子文件的数量小于预设数量时,直接导入目标存储节点。
本申请实施例提供一种数据导入方法,通过确定待导入数据文件的目标存储节点;拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。该方法在拆分得到的数据子文件的数量达到预设数量时导入目标存储节点,使得拆分与导入并发执行,提高了数据文件的导入效率。
图2为本申请实施例提供的另一种数据导入方法的流程图。
S210、获取数据导入请求,所述数据导入请求包括地址信息、库信息和表信息。
数据导入请求可以由用户通过用户端发送,用户端可以是手机、笔记文电脑或平板电脑等智能终端。本实施例的数据导入请求以包括地址信息、库信息和表信息为例。地址信息用于标识待导入数据文件的存放位置,不同的存放位置对应不同的地址信息,根据地址信息可以获取待导入的数据文件。库信息可以是存储数据子文件的库的名称、编号等信息。表信息可以是存储数据子文件的表的名称、编号等信息,该表位于前面所述的库中,一个库中可以包含多个表,不同的表具有唯一的标识信息。也就是说数据子文件最终需要导入到指定库的指定表中。
S220、根据所述地址信息,获取所述待导入数据文件。
根据地址信息,查找数据导入服务平台,即可获取待导入的数据文件。
S230、根据所述库信息和表信息,确定目标数据库,并将所述目标数据库记为所述待导入数据文件的目标存储节点。
目标数据库为包含上述库信息对应的库以及表信息对应的表的数据库,本实施例的数据库中可以包含多个库,为了便于描述,可以将数据库中包含的库称为子数据库,也就是说同一个数据库中可以包含多个子数据库,每一个子数据库中可以包含多个表,以存储数据子文件。不同的数据库还可以位于一个数据库集群中,数据库集群可以是包含多个数据库的集群,也可以是包含多个数据库集群的集合,实施例对数据库集群所包含的数据库或数据库集群的数量不进行限定。遍历各数据库集群,即可得到包含上述子数据库信息和表信息的数据库,也即得到了目标数据库。当包含子数据库信息和表信息的数据库为多个时,还可以根据待导入数据文件的列字段计算目标数据库,实施例对具体的计算过程不进行限定。
S240、校验所述待导入数据文件。
通常情况下,待导入数据文件的结构与目标数据库中用于存储数据文件的表的结构一致才可以保证数据子文件导入成功。为此本实施例在拆分待导入数据文件之前先对待导入数据文件进行校验,避免直接拆分待导入数据文件,执行导入操作后发现数据子文件的结构与目标数据库中用于存储数据文件的表的结构不一致而无法导入的情况,提高导入效率。
在一种情况下可以通过如下方式校验所述待导入数据文件:
根据所述表信息,确定所述目标存储节点中所述表信息对应的结构信息;
根据所述结构信息,校验所述待导入数据文件的数据行;
如果所述待导入数据文件中各数据行的列字段信息与所述结构信息一致,则校验成功;否则,校验失败。
表信息对应的结构信息可以包括表的列名和每一列对应的类型等信息。只有当待导入数据文件中待导入数据每一列的列名和类型与目标数据库中所对应表的列名和每一列的类型一致时,才可以将待导入数据文件成功导入对应的表中。在一种情况下可以读取待导入数据文件的每一行,然后利用目标数据库中所对应表的结构信息校验该行所对应的列字段是否正确,直至该行结束。这种方式可以检查行数据是否错误。
在另一种情况下还可以检查列数据是否错误,过程与检查行数据类似。
S250、是否校验成功,如果是,执行S260,否则,执行S280。
S260、根据配置文件中拆分文件的参数信息拆分所述待导入数据文件,得到数据子文件。
如果校验成功,执行拆分操作,拆分待导入数据文件。拆分文件的参数信息是拆分待导入数据文件的依据,例如可以是拆分文件的行数或拆分文件的大小,本实施例以拆分文件的行数为例,即将待导入数据文件的每N行拆分为一个数据子文件,当行数不足N时,可以直接将当前行数作为一个数据子文件。
S270、当所述数据子文件的数量达到预设数量时,将预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。
本实施例在数据子文件的数量达到预设数量时,采用批量导入的方式提高了导入效率,并且在执行导入操作时,拆分操作继续,使得拆分与导入并发执行,进一步提高了导入效率。实施例对预设数量的大小不进行限定,例如可以设置为100,即数据子文件的数量达到100时,将其导入目标存储节点。
S280、将校验失败的待导入数据文件导入错误文件缓存。
错误文件缓存用于存储校验失败的数据文件,在一种情况下可以将校验失败的整个待导入数据文件导入错误文件缓存,也可以仅将待导入数据文件中校验失败的数据行导入至错误文件缓存。将校验失败的数据导入错误文件缓存,可以保证数据不丢失,确保大数据量文件导入数据库的准确性。
S290、汇总数据文件导入结果,并反馈给对应的用户端。
数据文件导入结果可以包括校验结果以及导入结果,校验结果可以包括校验失败的数据行以及校验失败的原因,导入结果可以包括导入成功的数据子文件的标识信息、导入失败的数据子文件的标识信息以及导入失败的数据子文件。可以理解的是,即使前期校验成功,在执行导入操作时也会因为某种原因导致导入失败,在首次出现导入失败时,还可以对该数据子文件进行导入重试,重试次数可自行设置。将汇总后的数据文件导入结果反馈给用户端可以使用户清楚的了解各数据文件的导入情况。
本申请实施例提供一种数据导入方法,在上述实施例的基础上先校验待导入数据文件,校验成功后,再执行拆分和导入的并发操作,提高了导入效率,并将校验失败的数据文件存储至错误文件缓存,保证了数据不丢失,确保了大数据量文件导入数据库的准确性。
数据文件的拆分与导入是数据导入服务平台的核心,下面结合一个生产者消费者模型对数据文件的拆分与导入过程进行描述。
图3为本申请实施例提供的一种基于生产者消费者模型的数据文件拆分与导入的过程示意图。
协调线程根据接收的数据导入请求创建生产者线程和消费者线程,消费者线程作为数据导入服务平台的发送线程,用于发送拆分文件。发送线程通过协调线程启动后,等待允许发送的条件变量通知,也可以称为阻塞于条件变量,条件变量即上述实施例所述的数据子文件的预设数量,发送线程收到通知后检查是否有预设数量的数据子文件产生,若有则发送,否则继续阻塞等待通知。生产者线程作为数据导入服务平台的拆分线程,用于拆分待导入数据文件,拆分线程启动后进入循环拆分模式,拆分过程如下:获取待导入数据文件,按照表元数据缓存对待导入数据文件的每个列字段顺序分析,例如先读取待导入数据文件,获取一行中的一个列字段,利用元数据校验该列字段是否正确,如此顺序分析每一个列字段直至一行结束。其中,表元数据缓存为用于存储表的元数据的存储装置,元数据即与上述实施例所述的表的结构信息匹配的数据,元数据的结构即为目标数据库所对应表的结构,利用元数据可以校验待导入数据文件的列字段是否正确。校验之后,拆分线程根据预先配置的拆分文件的行数拆分待导入数据文件,当拆分文件的数量达到预设数量时,通知发送线程发送拆分文件,拆分线程继续拆分,拆分线程与发送线程并发执行,提高了数据导入性能。发送线程收到通知后,将拆分好的数据子文件发送出去并继续检查是否有需要发送的数据子文件,重复发送结束后继续阻塞等待发送通知。协调线程确定待导入数据文件拆分结束后,设置拆分结束标签,并通知发送线程和拆分线程退出。发送线程收到通知后,先发送已拆分文件,再检查拆分线程是否拆分结束,若结束则向协调线程发送内部事件指示拆分阶段结束。
上述拆分线程和发送线程采用了以条件变量通知的生产者消费者模型,实现了按批次数据分发与数据导入的解耦并发。该模型同时支持数据切片功能,即可将一个大数据文件按照拆分行数进行拆分,形成多个小文件,使数据导入功能具有更好的灵活性以适用于更多的应用场景,如数据库某存储节点扩容、对导入文件只获取指定分片数据等。具体过程如图4所示。
协调线程根据接收的拆分命令启动拆分线程后返回。拆分线程启动后进入循环拆分模式,每拆分一个批次就发送一次通知,此处虽然无发送线程在等待通知,但该设计并不影响拆分继续进行。拆分线程结束后,设置文件拆分结束标志,并向协调线程发送内部事件指示拆分阶段结束。
下面通过两个具体的应用场景对数据导入过程进行描述。
应用场景一:分布式数据库并发导入
如图5所示,分布式数据库并发导入系统的结构包括分布式数据库平台1和数据导入服务平台2。其中,分布式数据库平台1是现有分布式数据库的实体与核心,主要负责数据存储与系统状态的管理和监控。分布式数据库平台1包含存储节点11、存储节点管理监控模块12、元数据服务模块13以及数据库集群管理模块14。元数据服务模块13负责向数据导入服务平台2提供数据库表的元数据信息,并负责提供鉴权服务。分布式数据库系统中所有元数据信息都由其保存和管理,为其他模块提供其所需要的元数据信息。存储节点监控管理模块12负责实时监控对应存储节点11的运行状态与统计信息。在数据导入过程中,负责连接数据库节点,执行数据导入服务平台2下发的导入命令,同时为存储节点11提供服务响应、文件收发、状态反馈等服务。存储节点11用于存储数据。图5中以三个存储节点管理监控模块12和三个存储节点11为例。每一个存储节点管理监控模块12可以监控多个存储节点11。
数据导入服务平台2提供从外部业务系统到分布式数据库平台1的批量数据导入服务,如图5所示,数据导入服务平台2包括文件处理模块21、文件分发模块22和状态统计模块23,文件处理模块21和文件分发模块22是使用条件变量通知的生产者消费者模型实施的基础。文件处理模块21用于提供与外部业务系统的数据交换接口、接收用户通过用户端发送的数据导入请求以及对待导入数据文件进行拆分等。文件分发模块22用于通知存储节点管理监控模块12,进行文件下发。
参考图6,图6为本申请实施例提供的一种在应用场景一下的数据导入过程示意图。外部业务系统将大数据量的待导入数据文件通过FTP或其他文件传输协议存放至数据导入服务平台的指定位置。图6以通过外部业务系统发送数据导入请求为例,数据导入服务平台收到数据导入请求后,根据数据导入请求中的集群号、库名和表名等信息向元数据服务模块发送元数据获取请求信息,获取表名对应的表结构信息,并根据表结构信息校验待导入数据文件;以及根据集群号、库名和表名等信息确定目标存储节点。之后进入拆分过程,根据预先配置的拆分文件的行数拆分待导入数据文件,当拆分数量达到预设数量时,向数据库集群管理模块发送数据导入请求,数据库集群管理模块将数据导入请求转发给存储节点管理监控模块,存储节点管理监控模块收到数据导入请求后连接数据库节点执行数据子文件的下载、导入,最终将数据子文件导入至数据库的指定表中。存储节点管理监控模块执行结束后,将下载状态统计上报,并向数据库集群管理模块返回数据导入结果,数据库集群管理模块收到数据导入结果后转发给数据导入服务平台,数据导入服务平台汇总各节点的数据文件导入结果,并反馈给外部业务系统。
应用场景二:异构数据库之间的数据迁移
本申请实施例提供的数据导入方法不仅可以适用于需要频繁导入数据的分布式数据库系统,还可以适用于仅使用数据切片进行数据库某存储节点扩容的场景,具有普适性和灵活性。
现代化企业运营中,随着企业规模的扩大和业务的升级,原有的数据中心的架构体系、系统性能及存储容量逐渐不能满足业务的需要,因此需要进行企业信息系统的改造和升级,而数据迁移是其中非常重要的环节。图7所示的异构数据库之间的数据迁移系统以包括oracle数据库31、迁移系统32和mysql数据库33为例,将数据文件从oracle数据库31迁移到mysql数据库33。
具体的,通过迁移系统32的管理界面321发起一个数据迁移任务,信息采集模块322向oracle数据库31采集需要迁移的数据信息,包括迁移起止时间、迁移数据元表结构等,并将相关信息保存到存储模块323中。分析模块324对信息采集模块322采集的信息进行分析校验,通过转换工具将迁移数据元表结构转化成mysql数据库支持的语法结构,并保存到存储模块323中。迁移模块325执行从oracle数据库31到mysql数据库33的数据迁移时,导入过程与上述实施例提供的数据导入方法原理相同,即通过生产者消费者模型并发执行数据文件的拆分与发送,快速导入mysql数据库33,完成数据迁移任务。数据切片实现的多个小文件并发导入相比单一文件导入,性能显著提升。
图8为本申请实施例提供的一种数据导入装置的结构图,该装置可以执行上述实施例提供的数据导入方法,参考图8,该装置包括:
节点确定模块41,用于确定待导入数据文件的目标存储节点;
第一导入模块42,用于拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。
本申请实施例提供的数据导入装置,通过确定待导入数据文件的目标存储节点;拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。该装置在拆分得到的数据子文件的数量达到预设数量时导入目标存储节点,使得拆分与导入并发执行,提高了数据文件的导入效率。
在上述实施例的基础上,该装置还包括:
校验模块,用于在拆分所述待导入数据文件之前,校验所述待导入数据文件。
在上述实施例的基础上,节点确定模块41,具体用于:
获取数据导入请求,所述数据导入请求包括地址信息、库信息和表信息;
根据所述地址信息,获取所述待导入数据文件;
根据所述库信息和表信息,确定目标数据库,并将所述目标数据库记为所述待导入数据文件的目标存储节点。
在上述实施例的基础上,第一导入模块42,具体用于:
如果校验成功,根据配置文件中拆分文件的参数信息拆分所述待导入数据文件,得到数据子文件;
当所述数据子文件的数量达到预设数量时,将预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。
在上述实施例的基础上,所述校验模块,具体用于:
根据所述表信息,确定所述目标存储节点中所述表信息对应的结构信息;
根据所述结构信息,校验所述待导入数据文件的数据行;
如果所述待导入数据文件中各数据行的列字段信息与所述结构信息一致,则校验成功;否则,校验失败。
在上述实施例的基础上,该装置还包括:
第二导入模块,用于如果校验失败,将校验失败的待导入数据文件导入错误文件缓存。
在上述实施例的基础上,该装置还包括:
汇总模块,用于在所述待导入数据文件拆分且导入完毕之后,汇总数据文件导入结果,并反馈给对应的用户端。
本申请实施例提供的数据导入装置可执行上述实施例中的数据导入方法,具备执行方法相应的功能模块和有益效果。
图9为本申请实施例提供的一种数据导入服务平台的结构图。
参考图9,该数据导入服务平台包括处理器51、存储器52、输入装置53和输出装置54,该数据导入服务平台中处理器51的数量可以是一个或多个,图9中以一个处理器51为例。处理器51与存储器52、输入装置53和输出装置54可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器52作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中数据导入方法对应的程序指令/模块。处理器51通过运行存储在存储器52中的软件程序、指令以及模块,从而执行数据导入服务平台的各种功能应用以及数据处理,即实现上述实施例的数据导入方法。
存储器52主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器52可进一步包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至数据导入服务平台。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置53可用于接收输入的数字或字符信息,以及产生与数据导入服务平台的用户设置以及功能控制有关的键信号输入。输出装置54可包括显示屏等显示设备、扬声器以及蜂鸣器等音频设备。
本申请实施例提供的数据导入服务平台与上述实施例提供的数据导入方法属于同一构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行数据导入方法相同的有益效果。
本申请实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述实施例所述的数据导入方法。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的数据导入方法中的操作,还可以执行本申请任意实施例所提供的数据导入方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本申请上述实施例所述的数据导入方法。

Claims (10)

1.一种数据导入方法,其特征在于,包括:
确定待导入数据文件的目标存储节点;
拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。
2.根据权利要求1所述的方法,其特征在于,在拆分所述待导入数据文件之前,还包括:
校验所述待导入数据文件。
3.根据权利要求2所述的方法,其特征在于,所述确定待导入数据文件的目标存储节点,包括:
获取数据导入请求,所述数据导入请求包括地址信息、库信息和表信息;
根据所述地址信息,获取所述待导入数据文件;
根据所述库信息和表信息,确定目标数据库,并将所述目标数据库记为所述待导入数据文件的目标存储节点。
4.根据权利要求2所述的方法,其特征在于,所述拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕,包括:
如果校验成功,根据配置文件中拆分文件的参数信息拆分所述待导入数据文件,得到数据子文件;
当所述数据子文件的数量达到预设数量时,将预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。
5.根据权利要求3所述的方法,其特征在于,所述校验所述待导入数据文件,包括:
根据所述表信息,确定所述目标存储节点中所述表信息对应的结构信息;
根据所述结构信息,校验所述待导入数据文件的数据行;
如果所述待导入数据文件中各数据行的列字段信息与所述结构信息一致,则校验成功;否则,校验失败。
6.根据权利要求4所述的方法,其特征在于,还包括:
如果校验失败,将校验失败的待导入数据文件导入错误文件缓存。
7.根据权利要求1-6任一项所述的方法,其特征在于,在所述待导入数据文件拆分且导入完毕之后,还包括:
汇总数据文件导入结果,并反馈给对应的用户端。
8.一种数据导入装置,其特征在于,包括:
节点确定模块,用于确定待导入数据文件的目标存储节点;
第一导入模块,用于拆分所述待导入数据文件,得到预设数量的数据子文件导入所述目标存储节点,直至所述待导入数据文件拆分且导入完毕。
9.一种数据导入服务平台,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7任一项所述的数据导入方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的数据导入方法。
CN202010448776.5A 2020-05-25 2020-05-25 一种数据导入方法、装置、服务平台及存储介质 Pending CN113722277A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010448776.5A CN113722277A (zh) 2020-05-25 2020-05-25 一种数据导入方法、装置、服务平台及存储介质
PCT/CN2021/095730 WO2021238902A1 (zh) 2020-05-25 2021-05-25 数据导入方法、装置、服务平台及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010448776.5A CN113722277A (zh) 2020-05-25 2020-05-25 一种数据导入方法、装置、服务平台及存储介质

Publications (1)

Publication Number Publication Date
CN113722277A true CN113722277A (zh) 2021-11-30

Family

ID=78671522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010448776.5A Pending CN113722277A (zh) 2020-05-25 2020-05-25 一种数据导入方法、装置、服务平台及存储介质

Country Status (2)

Country Link
CN (1) CN113722277A (zh)
WO (1) WO2021238902A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114401289B (zh) * 2021-12-31 2024-08-16 深圳市麦谷科技有限公司 任务分批上传方法及系统
CN114428815A (zh) * 2022-01-17 2022-05-03 多点生活(成都)科技有限公司 数据存储方法、装置、电子设备和计算机可读介质
CN114741231B (zh) * 2022-04-19 2023-06-27 深圳鲲云信息科技有限公司 基于存储器的数据读写方法、装置、设备及存储介质
CN116521092B (zh) * 2023-06-30 2023-09-05 昆山工业大数据创新中心有限公司 一种工业设备数据的存储方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169419A (zh) * 2011-04-02 2011-08-31 无锡众志和达存储技术有限公司 基于sata控制器的raid数据块拆分、组装方法
CN106156209A (zh) * 2015-04-23 2016-11-23 中兴通讯股份有限公司 数据处理方法及装置
CN107357885A (zh) * 2017-06-30 2017-11-17 北京奇虎科技有限公司 数据写入方法及装置、电子设备、计算机存储介质
CN108376171A (zh) * 2018-02-27 2018-08-07 平安科技(深圳)有限公司 大数据快速导入的方法、装置、终端设备及存储介质
CN109635017A (zh) * 2018-10-16 2019-04-16 深圳壹账通智能科技有限公司 业务数据导入方法、装置、设备及计算机可读存储介质
CN110191182A (zh) * 2019-05-30 2019-08-30 深圳前海微众银行股份有限公司 分布式文件批处理方法、装置、设备与可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105912609B (zh) * 2016-04-06 2019-04-02 中国农业银行股份有限公司 一种数据文件处理方法和装置
CN108984757A (zh) * 2018-07-18 2018-12-11 上海汉得信息技术股份有限公司 一种数据导入方法及设备
CN112597219A (zh) * 2020-12-15 2021-04-02 中国建设银行股份有限公司 用于将大数据量的文本文件导入分布式数据库的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169419A (zh) * 2011-04-02 2011-08-31 无锡众志和达存储技术有限公司 基于sata控制器的raid数据块拆分、组装方法
CN106156209A (zh) * 2015-04-23 2016-11-23 中兴通讯股份有限公司 数据处理方法及装置
CN107357885A (zh) * 2017-06-30 2017-11-17 北京奇虎科技有限公司 数据写入方法及装置、电子设备、计算机存储介质
CN108376171A (zh) * 2018-02-27 2018-08-07 平安科技(深圳)有限公司 大数据快速导入的方法、装置、终端设备及存储介质
CN109635017A (zh) * 2018-10-16 2019-04-16 深圳壹账通智能科技有限公司 业务数据导入方法、装置、设备及计算机可读存储介质
CN110191182A (zh) * 2019-05-30 2019-08-30 深圳前海微众银行股份有限公司 分布式文件批处理方法、装置、设备与可读存储介质

Also Published As

Publication number Publication date
WO2021238902A1 (zh) 2021-12-02

Similar Documents

Publication Publication Date Title
CN113722277A (zh) 一种数据导入方法、装置、服务平台及存储介质
CN112131237B (zh) 数据同步方法、装置、设备及计算机可读介质
CN101996214B (zh) 用于处理数据库操作请求的方法和装置
CN110737720A (zh) 一种db2数据库数据同步方法、装置、系统
CN112231402A (zh) 一种异构数据实时同步方法、装置、设备和存储介质
CN113157411B (zh) 一种基于Celery的可靠可配置任务系统及装置
WO2021169496A1 (zh) 数据读取方法、装置、设备及存储介质
CN110765195A (zh) 一种数据解析方法、装置、存储介质及电子设备
CN112559525B (zh) 数据检查系统、方法、装置和服务器
CN112148206A (zh) 一种数据读写方法、装置、电子设备及介质
CN116501700B (zh) 一种app格式化文件离线存储方法、装置、设备及存储介质
CN111444208B (zh) 一种数据更新方法及相关设备
CN113468143A (zh) 数据迁移方法、系统、计算设备及存储介质
CN116186082A (zh) 基于分布式的数据汇总方法、第一服务器和电子设备
CN114547206A (zh) 一种数据同步方法和数据同步系统
CN113268483A (zh) 请求处理方法和装置、电子设备和存储介质
CN114020446A (zh) 一种跨多引擎的路由处理方法、装置、设备及存储介质
CN113032477A (zh) 基于gtid的长距离数据同步方法、装置及计算设备
CN111679899A (zh) 任务调度方法、装置、平台设备及存储介质
CN112860780B (zh) 数据导出方法、装置和终端设备
CN110837536B (zh) 一种信息处理方法、装置和存储介质
CN118394846A (zh) 一种数据同步方法、装置、电子设备和存储介质
WO2024001280A1 (zh) 数据流动感知方法及相关装置
CN115941427A (zh) 应用服务器的远程管理方法、电子设备及存储介质
CN118606099A (zh) 数据库故障定位方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220214

Address after: 100176 floor 18, building 8, courtyard 10, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone)

Applicant after: Jinzhuan Xinke Co.,Ltd.

Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen

Applicant before: ZTE Corp.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20211130