用于数据处理的方法和系统的制作方法

文档序号:9579299阅读:257来源:国知局
用于数据处理的方法和系统的制作方法
【技术领域】
[0001]本发明涉及数据处理技术领域,更具体地,涉及一种通过利用二进制编码匹配来确定数据分区以进行数据处理的方法和系统。
【背景技术】
[0002]目前,随着海量数据应用的扩展,企业和客户对数据的使用已经不满足于传统的单一服务器或硬盘存储的数据。在进行海量数据处理和分析的过程中,必须对数据进行分区存储以提升处理效率并优化资源配置。通过将较大的数据表切分为较小的、单一的数据表或数据信息进行存储,可以提高数据处理的速度,因为只需要扫描较少的数据而并非扫描全部数据。同时,对数据的维护、构建索引、备份等操作也可以更快的速度运行。
[0003]现有技术中的对数据进行分区的方法从分区方向上来看主要有水平分区和垂直分区。水平分区指将数据表分成多个表,其中每个表包含同样数量的数据列,但是包含较少的数据行。例如,一个包含100万行的数据表(包含一年的全部数据)可以通过水平分区被划分为12个较小的表,其中每个较小的表包含一年中的一个月的数据信息(列相同但是行数较少),那么任何对该年中任何特定月的数据的查询可以只针对某个较小的表进行,而无需对大数据表进行全数据扫描。相应的,垂直分区是指较小的表中包含相同数量的数据行但是较少的数据列,也能获得与水平分区类似的效果。
[0004]现有的数据分区从分区的具体规则来看,有列表分区(List Partit1ning)、散列分区(Hash Partit1ning)、范围分区(Range Partit1ning)等。列表分区是指根据数据值来进行数据分区,例如规定将东部地区的数据划为一个数据分区,将西部地区的数据划为一个数据分区。范围分区是指根据数据值的范围来进行数据分区,例如将1至3月的数据划分为一个分区,将4-6月的数据划分为一个分区,以此类推。显然,由于无法实现确定分布在各个范围或者枚举值中的数据量的大小,列表分区和范围分区很容易导致各个数据分区中的数据量的不均衡。而散列分区是指通过哈希函数值来确定数据的分区,虽然散列分区的方式可以使得数据的划分均衡化,但是很难选择合适的哈希函数,并且散列分区会导致难以进行已有数据的迁移。

【发明内容】

[0005]针对现有技术中存在的上述问题,本发明的目的之一在于提供一种可以均衡化数据分区的数据处理方法。本发明的进一步的目的在于提供一种可以根据数据分布和数据量的变化,便利地动态调整已有数据分区以及数据迁移的方法。上述发明目的之间并非必须同时实现,而是只需实现其中一个或多个即可。
[0006]根据本发明的一个方面,提供了一种用于数据处理的方法,包括:获取待处理数据的分区键值的二进制编码;根据所获取的分区键值的二进制编码确定相应的数据分区,该相应的数据分区对应的二进制编码与所获取的分区键值的二进制编码由后至前取相同位数的编码相同;以及根据所确定的相应的数据分区,处理所述待处理数据。
[0007]根据本发明的另一个方面,提供了一种用于数据处理的系统,包括:一种用于数据处理的系统,包括:获取装置,被配置为获取待处理数据的分区键值的二进制编码;匹配装置,被配置为根据所获取的分区键值的二进制编码确定相应的数据分区,该相应的数据分区对应的二进制编码与所获取的分区键值的二进制编码由后至前取相同位数的编码相同;以及处理装置,被配置为根据所确定的相应的数据分区,处理所述待处理数据。。
[0008]根据本发明提供的用于数据处理的方法,可以使得数据分区更加均衡,并且能够随着实时数据分布特征的变化,动态地并且便利地调整已有的数据分区以及对已有数据进行迁移操作。
【附图说明】
[0009]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0010]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
[0011]图2示出了根据本发明一个实施例的用于数据处理的方法的流程图;
[0012]图3示出了根据本发明一实施例的二叉树的示意图;
[0013]图4示出了根据本发明一个实施例的利用二叉树进行数据处理的实例的示意图,
[0014]其中图4A示出了一个初始化的数据分区二叉树;
[0015]图4B示出了一个数据库表的结构;
[0016]图4C示出了一个待分区的新插入数据记录;
[0017]图4D示出了确定该数据记录应该插入的分区的二叉树;
[0018]图4E示出了基于二叉树增加新的数据分区;
[0019]图4F示出了基于二叉树合并数据分区;
[0020]图5示出了根据本发明一个实施例的用于数据处理的系统的框图。
【具体实施方式】
[0021]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0022]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0023]如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0024]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0025]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0026]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM) 30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0027]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1