数据并行读取方法及装置的制造方法

文档序号:9667444阅读:254来源:国知局
数据并行读取方法及装置的制造方法
【技术领域】
[0001] 本申请涉及数据库技术领域,更具体地,涉及数据并行读取方法及装置。
【背景技术】
[0002] 数据库,是一种按照数据结构来组织、存储和管理数据的仓库。目前常用的一种数 据库是Oracle数据库,其由于安全性、稳定性等诸多优势被广泛应用在各种数据处理系统 中。
[0003] 但是,随着存储数据量的不断增长,Oracle数据库对数据的处理效率已经无法满 足具体的业务需求。与此同时,集群系统如Hadoop集群在分布式处理方面取得了重大突 破,因此,可以将Oracle数据库中的海量数据迀移至集群系统中进行处理。具体地,集群系 统中部署有多台数据处理设备,数据的迀移是多台设备并行地从Oracle数据库中读取数 据,并将读取到的数据写入集群文件系统中。
[0004] 目前,从Oracle数据库中并行读取数据的方式主要是,假设集群系统中有N台设 备,则在数据库的数据表中选择某一列,找到该列的最大值及最小值,将(最大值-最小 值)/N作为取值区间,每台设备各自对应一个取值区间,N台设备进行并行读取。例如,集 群系统中有2台设备,在数据表中选择id列,并查找出id列的最大值为100,最小值为1, 则取值区间为(100-1)/2~50,那么两台设备各自需读取的数据分别为1彡id< 50和 50彡id彡100的数据。
[0005] 然而,该种并行读取数据的方式效率较低。

【发明内容】

[0006] 有鉴于此,本申请提供了一种数据并行读取方法,用以解决现有的并行读取数据 方式效率较低的技术问题。另外,本申请还提供了一种数据并行读取装置,用以保证所述方 法在实际中的应用及实现。
[0007] 为实现所述目的,本申请提供的技术方案如下:
[0008] 本申请的第一方面提供了一种数据并行读取方法,包括:
[0009] 响应于数据表读取指令,确定待读取数据表及多台读取设备;其中,所述读取设备 用于并行读取存储在存储介质中的所述待读取数据表;
[0010] 确定存储所述待读取数据表的存储介质;
[0011] 若确定出的所述存储介质为多个,则分别确定从每个所述存储介质中读取部分所 述待读取数据表所需的分时长;
[0012] 将多个所述分时长的总和平均分配至所述多台读取设备;
[0013] 触发所述多台读取设备依据平均时长从所述多个存储介质中并行读取所述待读 取数据表。
[0014] 本申请的第二方面提供了一种数据并行读取装置,包括:
[0015] 数据表及读取设备确定模块,用于响应于数据表读取指令,确定待读取数据表及 多台读取设备;其中,所述读取设备用于并行读取存储在存储介质中的所述待读取数据 表;
[0016] 存储介质确定模块,用于确定存储所述待读取数据表的存储介质;
[0017] 第一读取分时长确定模块,用于若确定出的所述存储介质为多个,则分别确定从 每个所述存储介质中读取部分所述待读取数据表所需的分时长;
[0018] 第一时长平均分配模块,用于将多个所述分时长的总和平均分配至所述多台读取 设备;
[0019] 第一触发读取设备读取模块,用于触发所述多台读取设备依据平均时长从所述多 个存储介质中并行读取所述待读取数据表。
[0020] 由以上可知,本申请具有如下有益效果:
[0021] 本申请提供了一种数据并行读取方法实施例,本实施例在确定出待读取的数据表 及用于读取数据表的读取设备后,进一步查找出该数据表存储在哪个(些)存储介质上,若 存储介质为多个,则再进一步确定从每个存储介质中读取数据表需要的时长,进而将多个 时长平均分配给以上多台读取设备,并触发该多台读取设备按照平均时长并行从存储介质 中读取数据表。可见,与现有技术中以数据表中某列的编号为依据进行数据划分的方式不 同,本实施例将从存储介质中读取数据表的时长作为依据,并将各个时长平均分配给读取 设备,从而可以保证每台读取设备耗费的时长是相同的,避免现有技术出现的读取时长不 平均现象,提高了并行读取的效率。
【附图说明】
[0022] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。
[0023] 图1为本申请提供的数据并行读取方法实施例1的流程图;
[0024] 图2为本申请提供的确定分时长的具体实现方式的流程图;
[0025] 图3为本申请提供的数据并行读取方法实施例2的流程图;
[0026] 图4为本申请提供的数据并行读取装置实施例1的结构示意图;
[0027] 图5为本申请提供的第一读取分时长确定模块的具体结构示意图;
[0028] 图6为本申请提供的数据并行读取装置实施例2的结构示意图。
【具体实施方式】
[0029] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于 本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本申请保护的范围。
[0030] 参见图1,其示出了本申请提供的数据并行读取方法实施例1的流程。如图1所 示,本实施例可以具体包括步骤S101~步骤S105。
[0031] 步骤S101 :响应于数据表读取指令,确定待读取数据表及多台读取设备;其中,读 取设备用于并行读取存储在存储介质中的待读取数据表。
[0032] 其中,若需要将某数据库中的数据迀移至集群系统中时,如将Oracle数据库中的 数据迀移至Hadoop集群中,则可以向本实施例发送数据表读取指令,从而触发本步骤的执 行。
[0033] 需要说明的是,数据库中的数据保存在数据表中,将数据库中的数据迀移至集群 系统中,是将各个数据表读取至集群系统中。当然,数据库中的数据表可以是一张,也可以 多张。本申请以读取一张数据表为例进行说明,在实际应用中,数据表为多张的情况下,均 可以按照本申请提供的并行读取方法对各张数据表进行读取。
[0034] 为了便于描述,将等待读取的数据表称为待读取数据表。可以知道的是,数据表是 存储在物理存储介质中的,例如存储在硬盘上。读取设备用于从物理存储介质中读取待读 取数据表,当然,还可以将其写入集群系统中。
[0035] 确定出的读取设备为多台,多台读取设备同时开始并行从存储介质中读取待读取 数据表。例如,待读取数据表为T1,读取设备为Ml及M2。
[0036] 步骤S102 :确定存储待读取数据表的存储介质。
[0037] 由上可知,待读取数据表存储在存储介质中,确定出待读取数据表后,进一步确定 该待读取数据表存储在哪个或哪些存储介质中。需要说明的是,存储介质可以是整台存储 机器,也可以是存储机器中的存储模块。
[0038] 存储介质在数据库中具有唯一性的标识。另外,数据库中还记录有待读取数据表 的标识与存储介质的标识之间的对应关系,用于表示待读取数据表存储在哪个或哪些存储 介质中,因此,可以利用待读取数据表查找到对应的存储介质标识,从而确定出存储待读取 数据表的存储介质。
[0039] 步骤S103 :若确定出的存储介质为多个,则分别确定从每个存储介质中读取部分 待读取数据表所需的分时长。
[0040] 其中,若上一步骤确定出的存储介质为多个,则说明待读取数据表被划分为多部 分,分开存储在多个不同的存储介质中。在这种情况中,待读取数据表的存储形式可以是, 待读取数据表包括多条记录,多条记录被划分为多部分以分别存储。例如,待读取数据表T1 中包含有100条记录,其中,1~25条记录存储在存储介质D1中,26~100条记录存储在 存储介质D2中。
[0041] 从不同的存储介质中读取部分的待读取数据表所耗费的时长不尽相同,原因可能 是,不同的存储介质存储的部分数据量可能不同,或者,不同的存储介质的物理特性不同导 致的从不同的存储介质中读取数据的速率不同。
[0042] 因此,针对当前的待读取数据表,在确定出该待读取数据表的各个部分分别存储 在哪些存储介质后,需要进一步确定出分别从各个存储介质中读取部分待读取数据表所耗 费的时长。为了便于描述,可以将从存储介质中读取部分待读取数据表耗费的时长称为分 时长。
[0043] 例如,待读取数据表T2被划分为三
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1