一种适用于分布式数据库的数据分发方法及装置制造方法及图纸

技术编号:14533030 阅读:151 留言:0更新日期:2017-02-02 16:08
本发明专利技术提供了一种适用于分布式数据库的数据分发方法及装置,其中,所述方法包括:存在数据分发任务时,对所述数据按照最小存储单位进行拆分;计算拆分的最小存储单位数据的分布目标,并根据所述分布目标向节点分发数据。通过对所述数据按照最小存储单位进行拆分;计算拆分的数据的分布目标,向所述分布目标分发数据。由于将物化继续推迟,保持整个数据计算过程尽可能的不物化或少物化数据,降低磁盘I/O。直到最后按照分布规则拆分时才将数据进行物化。减少了预算工作量和系统负担。

Data distribution method and device suitable for distributed database

The invention provides a method for distributed database data distribution method and device, wherein, the method comprises the following steps: data distribution task, the data are split according to the minimum storage unit; the minimum storage unit distribution target resolution data calculation, and according to the distribution of the target node to distribute data. The data is divided in accordance with the minimum storage unit, the distribution target of the split data is calculated, and the data is distributed to the distributed object. Due to the physical continue to delay, to maintain the entire data calculation process as far as possible without materialized or less materialized data, reduce disk I/O. Until the final distribution of the data in accordance with the distribution of physical data. Reduced budget workload and system burden.

【技术实现步骤摘要】

本专利技术属于分布式数据库
,尤其是涉及一种适用于分布式数据库的数据分发方法及装置。
技术介绍
随着信息系统的日趋规模化、区域化,分布式数据库在信息系统中所承担的数据桥梁作用越来越重要,分布式数据库的设计在系统中的应用日渐广泛。分布式数据库是指利用高速计算机网络将物理上分散的多台计算机相连,逻辑上构成一个整体的数据库组织形式。每台计算机都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,通过分布来获取更大的存储容量和更高的并发访问量。在分布式数据库的使用过程中,随着分布式节点和数据量的增加,如何将数据能够快速准确地分布到节点中成为了一个重要的问题。目前,主要通过以下方式实现:抽取需要分布的数据,按照分布规则,如hash分布,对数据进行拆分;和分发数据。但是,上述方式还存在着一定的问题,需要分布的数据形成结果集合需要进行一次物化,而对其进行拆分形成新的结果集则相当于二次物化。增加计算工作量的同时还需要在内存中将数据保存两份,加大了系统负担。此外,如果对全量的结果集,按照并行度直接拆分任务,还会造成I/O离散度加大,降低了整个系统的性能。
技术实现思路
本专利技术实施例提供了一种适用于分布式数据库的数据分发方法及装置,以实现在减少物化过程的同时,实现数据分布的目的一方面,本专利技术实施例提供了适用于分布式数据库的数据分发方法,包括:存在数据分发任务时,对所述数据按照最小存储单位进行拆分;计算拆分的最小存储单位数据的分布目标,并根据所述分布目标向节点分发数据。进一步的,存在数据分发任务时,对所述数据按照最小存储单位进行拆分之前,还包括:检测是否存在数据分发任务。进一步的,在向所述分布目标分发数据之后,还包括:物化所述分发任务对应的数据结果集合。进一步的,所述物化所述分发任务对应的数据结果集合,包括:在对所述结果集合进行查询时,按照固定大小的线程轮流获取分发任务。进一步的,所述物化所述分发任务对应的数据结果集合,包括:为每个写入线程预先分配存储空间,以使得每个进程通过抢锁获得目标存储空间。更进一步的,所述向所述分布目标分发数据,包括在所述数据结果集合满足预设的发送数量时,向分布式数据库发送所述述数据结果集合。另一方面,本专利技术实施例还提供了一种适用于分布式数据库的数据分发装置,包括:拆分模块,用于在存在数据分发任务时,对所述数据按照最小存储单位进行拆分;分发模块,用于计算拆分的最小存储单位数据的分布目标,并根据所述分布目标向节点分发数据。进一步的,所述装置还包括:检测模块,用于检测是否存在数据分发任务。进一步的,所述装置还包括:物化模块,用于物化所述分发任务对应的数据结果集合。进一步的,所述物化模块用于:在对所述结果集合进行查询时,按照固定大小的线程轮流获取分发任务。进一步的,所述物化模块用于:为每个写入线程预先分配存储空间,以使得每个进程通过抢锁获得目标存储空间。更进一步的,所述分发模块用于:在所述数据结果集合满足预设的发送数量时,向节点发送所述述数据结果集合。本专利技术实施例通过对所述数据按照最小存储单位进行拆分;计算拆分的数据的分布目标,向所述分布目标分发数据。由于将物化继续推迟,保持整个数据计算过程尽可能的不物化或少物化数据,降低磁盘I/O。直到最后按照分布规则拆分时才将数据进行物化。减少了预算工作量和系统负担。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例一提供的适用于分布式数据库的数据分发方法的流程示意图;图2是本专利技术实施例二提供的适用于分布式数据库的数据分发方法的流程示意图;图3是本专利技术实施例三提供的适用于分布式数据库的数据分发方法的流程示意图;图4是本专利技术实施例四提供的适用于分布式数据库的数据分发方法的流程示意图;图5是本专利技术实施例五提供的适用于分布式数据库的数据分发装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一图1为本专利技术实施例一提供的适用于分布式数据库的数据分发方法的流程图,本实施例可适用于向分布式数据库节点分发数据的情况,该方法可以由适用于分布式数据库的数据分装置来执行,该装置可由软件/硬件方式实现,并可集成于用于DBMS中。参见图1,所述适用于分布式数据库的数据分发方法,包括:S110,存在数据分发任务时,对所述数据按照最小存储单位进行拆分。DBMS通过检测,确定存在数据分发任务,基于数据分发任务,将欲分发的数据按照最小存储单位进行拆分,示例性的,最小存储单位为一行,读取一行数据,并将数据按照每行进行拆分。S120,计算拆分的最小存储单位数据的分布目标,并根据所述分布目标向节点分发数据。根据数据库存储数据和地址的关系,计算步骤S110拆分的最小存储单位数据的分布位置,并根据得到的分布目标向分布式数据库的节点分发相应的数据。本实施例通过对所述数据按照最小存储单位进行拆分;计算拆分的数据的分布目标,向所述分布目标分发数据。由于将物化继续推迟,保持整个数据计算过程尽可能的不物化或少物化数据,降低磁盘I/O。直到最后按照分布规则拆分时才将数据进行物化。减少了预算工作量和系统负担。在本实施例的一个优选实施方式中,存在数据分发任务时,对所述数据按照最小存储单位进行拆分之前,还包括:检测是否存在数据分发任务。DBMS可以根据数据更新情况确定是否生成数据分发任务,并检测是否存在数据分发任务。可以根据数据更新量确定是否分发数据,减少分布式数据库的数据传输次数。实施例二图2为本专利技术实施例二提供适用于分布式数据库的数据分发方法的流程图,本专利技术实施例以上述实施例为基础,进一步的,在根据所述分布目标向节点分发数据,还包括如下步骤:物化所述分发任务对应的数据结果集合。参见图2,所述适用于分布式数据库的数据分发方法,包括:S210,存在数据分发任务时,对所述数据按照最小存储单位进行拆分。S220,计算拆分的最小存储单位数据的分布目标,并根据所述分布目标向节点分发数据。S230,物化所述分发任务对应的数据结果集合。物化可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,从而快速的得到结果。在计算分布目标后进行物化,可以避免多次物化。本实施例通过将根据所述分布目标向节点分发数据后增加如下步骤:物化所述分发任务对应的数据结果集合。可以避免分发过程中对分发任务对应的数据结果集合进行多次物化。实施例三图2为本专利技术实施例二提供适用于分布式数据库的数据分发方法的流程图,本专利技术实施例以上述实施例为基础,进一步的,将所述物化所述分发任务对应的数据结果集合,具体优化为:在对所述结果集合进行查询时,按照固定大小的线程轮流获取分发任务。参见图3,所述适用于分布式数据库的数据分发方法,包本文档来自技高网...

【技术保护点】
一种适用于分布式数据库的数据分发方法,其特征在于,包括:存在数据分发任务时,对所述数据按照最小存储单位进行拆分;计算拆分的最小存储单位数据的分布目标,并根据所述分布目标向节点分发数据;存在数据分发任务时,对所述数据按照最小存储单位进行拆分之前,还包括:检测是否存在数据分发任务。

【技术特征摘要】
1.一种适用于分布式数据库的数据分发方法,其特征在于,包括:存在数据分发任务时,对所述数据按照最小存储单位进行拆分;计算拆分的最小存储单位数据的分布目标,并根据所述分布目标向节点分发数据;存在数据分发任务时,对所述数据按照最小存储单位进行拆分之前,还包括:检测是否存在数据分发任务。2.根据权利要求1所述的方法,其特征在于,在根据所述分布目标向节点分发数据之后,还包括:物化所述分发任务对应的数据结果集合;所述物化所述分发任务对应的数据结果集合,包括:在对所述结果集合进行查询时,按照固定大小的线程轮流获取分发任务。3.根据权利要求1所述的方法,其特征在于,所述物化所述分发任务对应的数据结果集合,包括:为每个写入线程预先分配存储空间,以使得每个进程通过抢锁获得目标存储空间。4.根据权利要求1所述的方法,其特征在于,所述根据所述分布目标向节点分发数据,包括在所述数据结果集合满足预设的发送数量时,向节点发送所述数据结...

【专利技术属性】
技术研发人员:武新崔维力刘威郑黎辉
申请(专利权)人:天津南大通用数据技术股份有限公司
类型:发明
国别省市:天津;12

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

1