分布式数据库的文件导入方法技术

技术编号:36535978 阅读:15 留言:0更新日期:2023-02-01 16:21
本说明书提供一种分布式数据库的文件导入方法,包括:第一线程响应于针对数据库文件的数据库导入任务,从缓冲区中读取所述数据库文件的缓冲片段,每一缓冲片段包含所述数据库文件的部分数据;所述第一线程针对读取的每一缓冲片段:执行定界操作以确定该缓冲片段中的完整数据与剩余的非完整数据,针对所述完整数据创建对应的数据库导入子任务并分配至子任务处理线程组,并记录所述剩余的非完整数据以用于构成所述第一线程读取的后一缓冲片段中的完整数据;第二线程在确定自身属于所述子任务处理线程组的情况下,处理被分配的数据库导入子任务,以将该数据库导入子任务所指示的完整数据发送至所述分布式数据库中对应的节点。整数据发送至所述分布式数据库中对应的节点。整数据发送至所述分布式数据库中对应的节点。

【技术实现步骤摘要】
分布式数据库的文件导入方法


[0001]本说明书涉及计算机
,尤其涉及一种分布式数据库的文件导入方法及装置。

技术介绍

[0002]数据导入功能作为数据库的常用功能之一,常常应用于数据迁移、回归测试等场景。在分布式数据库利用数据库文件进行数据导入的情况下,同一数据库文件中的数据可能被分别写入不同节点上,同时随着分布式数据库规模的扩大与数据库文件大小的增加,分布式数据库针对每一数据库文件的数据导入效率的要求也愈发升高。
[0003]在相关技术中,通常对数据库文件预先进行切分以生成若干个小文件,并通过多个客户端导入多个小文件来提升数据导入效率,然而,针对数据库文件的切分操作将造成额外的资源消耗与存储空间的占用,大大限制了数据导入效率。

技术实现思路

[0004]有鉴于此,本说明书提供一种分布式数据库的文件导入方法及装置,以解决相关技术中存在的不足。
[0005]具体地,本说明书是通过如下技术方案实现的:
[0006]根据本说明书实施例的第一方面,提供了一种分布式数据库的文件导入方法,包括:
[0007]第一线程响应于针对数据库文件的数据库导入任务,从缓冲区中读取所述数据库文件的缓冲片段,每一缓冲片段包含所述数据库文件的部分数据;
[0008]所述第一线程针对读取的每一缓冲片段:执行定界操作以确定该缓冲片段中的完整数据与剩余的非完整数据,针对所述完整数据创建对应的数据库导入子任务并分配至子任务处理线程组,并记录所述剩余的非完整数据以用于构成所述第一线程读取的后一缓冲片段中的完整数据;
[0009]第二线程在确定自身属于所述子任务处理线程组的情况下,处理被分配的数据库导入子任务,以将该数据库导入子任务所指示的完整数据发送至所述分布式数据库中对应的节点。
[0010]根据本说明书实施例的第二方面,提供了一种分布式数据库的文件导入方法,包括:
[0011]第一线程响应于针对数据库文件的数据库导入任务,从缓冲区中读取所述数据库文件的缓冲片段,每一缓冲片段包含所述数据库文件的部分数据;
[0012]所述第一线程针对读取的每一缓冲片段:执行定界操作以确定该缓冲片段中的完整数据与剩余的非完整数据,针对所述完整数据创建对应的数据库导入子任务并分配至子任务处理线程组,以使第二线程在确定自身属于所述子任务处理线程组的情况下,处理被分配的数据库导入子任务,以将该数据库导入子任务所指示的完整数据发送至所述分布式
数据库中对应的节点;以及,记录所述剩余的非完整数据以用于构成所述第一线程读取的后一缓冲片段中的完整数据。
[0013]根据本说明书实施例的第三方面,一种分布式数据库的文件导入装置,包括:
[0014]缓冲片段读取单元,用于使第一线程响应于针对数据库文件的数据库导入任务,从缓冲区中读取所述数据库文件的缓冲片段,每一缓冲片段包含所述数据库文件的部分数据;
[0015]缓冲片段处理单元,用于使所述第一线程针对读取的每一缓冲片段:执行定界操作以确定该缓冲片段中的完整数据与剩余的非完整数据,针对所述完整数据创建对应的数据库导入子任务并分配至子任务处理线程组,并记录所述剩余的非完整数据以用于构成所述第一线程读取的后一缓冲片段中的完整数据;
[0016]数据库导入子任务处理单元,用于使第二线程在确定自身属于所述子任务处理线程组的情况下,处理被分配的数据库导入子任务,以将该数据库导入子任务所指示的完整数据发送至所述分布式数据库中对应的节点。
[0017]根据本说明书实施例的第四方面,一种分布式数据库的文件导入装置,包括:
[0018]缓冲片段读取单元,用于使第一线程响应于针对数据库文件的数据库导入任务,从缓冲区中读取所述数据库文件的缓冲片段,每一缓冲片段包含所述数据库文件的部分数据;
[0019]缓冲片段处理单元,用于使所述第一线程针对读取的每一缓冲片段:执行定界操作以确定该缓冲片段中的完整数据与剩余的非完整数据,针对所述完整数据创建对应的数据库导入子任务并分配至子任务处理线程组,以使第二线程在确定自身属于所述子任务处理线程组的情况下,处理被分配的数据库导入子任务,以将该数据库导入子任务所指示的完整数据发送至所述分布式数据库中对应的节点;以及,记录所述剩余的非完整数据以用于构成所述第一线程读取的后一缓冲片段中的完整数据。
[0020]根据本说明书实施例的第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面与第二方面所述的方法的步骤。
[0021]根据本说明书实施例的第六方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面与第二方面所述的方法的步骤。
[0022]在本说明书所提供的技术方案中,通过针对缓冲区中对应的缓冲片段进行定界操作,使得第一线程在读取数据库文件的同时也实现了对该数据库文件整体的切分,避免了单独切分文件所需的资源消耗以及存储切分后的文件所需的磁盘空间占用,同时基于子任务处理线程组处理对应完整数据的数据库导入子任务,提高了将数据库文件的数据导入分布式数据库中对应节点的效率。
[0023]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
[0024]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是
本说明书中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0025]图1是本说明书一示例性实施例示出的一种分布式数据库的文件导入系统的架构示意图;
[0026]图2是本说明书一示例性实施例示出的一种分布式数据库的文件导入方法的流程示意图;
[0027]图3是本说明书一示例性实施例示出的一种定界操作的示意图;
[0028]图4是本说明书一示例性实施例示出的另一种定界操作的示意图;
[0029]图5是本说明书一示例性实施例示出的一种将数据库文件导入分布式数据库的示意图;
[0030]图6是本说明书一示例性实施例示出的另一种分布式数据库的文件导入方法的流程示意图;
[0031]图7是本说明书一示例性实施例示出的一种电子设备的示意结构图;
[0032]图8是本说明书一示例性实施例示出的一种分布式数据库的文件导入装置的结构示意图;
[0033]图9是本说明书一示例性实施例示出的另一种分布式数据库的文件导入装置的结构示意图。
具体实施方式
[0034]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与本说明书的一些方面相一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库的文件导入方法,包括:第一线程响应于针对数据库文件的数据库导入任务,从缓冲区中读取所述数据库文件的缓冲片段,每一缓冲片段包含所述数据库文件的部分数据;所述第一线程针对读取的每一缓冲片段:执行定界操作以确定该缓冲片段中的完整数据与剩余的非完整数据,针对所述完整数据创建对应的数据库导入子任务并分配至子任务处理线程组,并记录所述剩余的非完整数据以用于构成所述第一线程读取的后一缓冲片段中的完整数据;在确定自身属于所述子任务处理线程组的情况下,处理被分配的数据库导入子任务,以将该数据库导入子任务所指示的完整数据发送至所述分布式数据库中对应的节点。2.根据权利要求1所述的方法,所述记录所述剩余的非完整数据,包括:所述第一线程在确定所读取的缓冲片段中存在剩余的非完整数据的情况下,将该非完整数据添加至所述第一线程读取的后一缓冲片段对应的缓冲区的头部。3.根据权利要求2所述的方法,所述第一线程读取的当前缓冲片段对应的缓冲区为第一缓冲区、读取的后一缓冲片段对应的缓冲区为第二缓冲区;所述将该非完整数据添加至所述第一线程读取的后一缓冲片段对应的缓冲区的头部,包括:在所述第一缓冲区与所述第二缓冲区相同的情况下,将所述剩余的非完整数据移动至当前所处的缓冲区的头部;在所述第一缓冲区与所述第二缓冲区不同的情况下,将所述剩余的非完整数据写入至所述第二缓冲区的头部,并从所述第一缓冲区中清除。4.根据权利要求1所述的方法,所述数据库文件中的数据为半结构化数据;所述第一线程执行定界操作,包括:根据预设的数据完整性规则判断读取的当前缓冲片段是否完整,所述数据完整性规则包含:在所述第一线程读取的当前缓冲片段对应的缓冲区的末尾为行分隔符的情况下,确定所述该缓冲片段的数据完整,否则确定该缓冲片段的数据不完整;根据判断结果执行定界操作。5.根据权利要求1所述的方法,所述数据库文件为以下任一格式:逗号分隔值CSV格式、JavaScript对象简谱JSON格式与可扩展标记语言XML格式。6.根据权利要求1所述的方法,所述数据库文件涉及所述分布式数据库在不同节点上的多个分区;所述第二线程处理被分配的数据库导入子任务,包括:对所述完整数据进行解析与数据类型转换处理;对处理后的完整数据进行分区计算,以获取该完整数据中对应各个分区的分区数据片段;将每一分区数据片段序列化,并将序列化后的分区数据片段分别发送至对应分区所在的节点,以使各节点将接收到的分区数据片段导入所述分布式数据库。7.根据权利要求6所述的方法,所述将序列化后的分区数据片段分别发送至对应分区所在的节点,包括:将所述分区数据片段直接发送至对应分区所在的节点;或者,将所述分区数据片段存储至对应于相应分区的预设空间中;
在所述预设空间满足预设发送条...

【专利技术属性】
技术研发人员:王嘉豪张黎敏
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1