一种多维数据分布方法

一种多维数据分布方法
专利名称:一种多维数据分布方法
技术领域:
本发明涉及数据分布技木,尤其涉及ー种多维数据分布方法。
背景技术:
对于大量数据的查、遍历、计算等操作来说,数据分布是影响数据操作的空间复杂度和时间复杂度的重要因素。传统的数据分布,往往按照数据热度或者按照特定的单ー维度或者将两者结合将数据分布到不同的服务器上,这种分布可以是均匀分布,也可以是非均匀分布。但是这些分布方法往往没有结合用户的需求,当进行数据的查、计算时,数据的运算量通常较大。例如,数据只按照时间维度进行分布,当用户查某个城市的数据时,可能绝大部分数据不需要參与数据查运算,这就导致计算性能低下,且计算资源浪费。因此,希望可以提出ー种用于解决上述问题的多维数据分布方法。
发明内容
本发明的目的是提供ー种多维数据分布方法,可以结合用户的需求,对数据进行分布,以提高数据查询的
效率。根据本发明的ー个方面,提供了ー种多维数据分布方法,包括将全集数据按照时间维度划分为多级;对已经按照时间维度划分的数据,按照数据维度,将每ー级数据进ー步划分为均匀的份数;建立索引文件,对已经按照时间维度和数据维度划分的数据,按照业务需求的维度,将每ー份数据进ー步划分到索引文件中。与现有技术相比,本发明具有以下优点I)本发明通过对数据进行不同维度地划分,提高了数据查询的效率;2)本发明结合用户需求进行数据的分布,节省了计算资源。
通过阅读參照以下附图所作的对非限制性实施例所作的详细描述,本发明的其
它特征、目的和优点将会变得更明显图I为根据本发明的一个优选实施例的多维数据分布方法的流程图;图2a为根据本发明的一个优选实施例的所有数据的原始文档;图2b为根据本发明的一个优选实施例的索引结构;图2c为根据本发明的另ー个优选实施例的索引结构;图3为根据本发明的一个优选实施例的多维数据分布模型;
具体实施方式
下面结合附图对本发明作进ー步详细描述。根据本发明的ー个方面,提供了ー种多维数据分布方法。參考图1,图I为根据本发明的一个优选实施例的多维数据分布方法的流程图。根据图I,多维数据分布方法包括步骤S101,将全集数据按照时间维度划分为多级,优选为三级。具体地,全集数据指的是具有共同属性的数据的集合,不同的网站所收录的数据通常存在数据量或数据内容的差别,如生活信息类网站所
收录的数据通常和用户的日常生活相关,教育培训类网站所收录的数据通常和教育相关,当然,各网站所收录的数据也存在包含、交叉的关系,如日常生活类的信息通常也包含教育信息。由此,本实施例中的全集数据尤指特定的网站所收录的所有数据,当然,这些数据是动态变化的。时间属性,通常包括时、天、星期、月等単位,可以将数据按时、天、星期或月等単位进行划分。本实施例中,优选地,以天为単位,对全集数据进行划分。根据实际测试发现用户对近期的数据访问頻繁,对远期的数据访问量降低,为了平衡服务器的负载以及提高数据访问效率,优选地将全集数据按照时间维度进行划分和存储。具体地,优选地将全集数据划分为三级。根据用户对信息的时效性要求,第一级,从全集数据中划分出N天以内的数据,N的取值为I到7之间,包括本数I和7 ;第二级,从全集数据中除第一级以外的数据中再次划分出M天以内的数据,也就是N天以前、M天以内的数据;第三级,
全集数据中除第一级和第二级以外的数据。当然,N和M的取值可以根据数据查询量随时间的变化来确定。预先设定每级数据可以满足的查询量的比例。假设第一级数据要求满足10%的查询量,第二级数据要求满足60%的查询量,第三级数据要求满足30%的查询量。N和M可以用更加一般性的时间标记tl和t2来表示。根据一段时间内数据访问量进行统计和数据划分,选取tl和t2使得,tl时间内的数据划分为第一级数据,对于第一级数据的访问量占总访问量的10% ;tl到t2时间内的数据划分为第二级数据,使得对第二级数据的访问量占总访问量的60% ;t2时间以前的数据划分为第三级数据,使得对第三级数据的访问量占总访问量的30%。换而言之,第一级和第二级数据能够满足70%的需求,即,有70%比例的需求
不需要參与全集运算,这极大的节省了计算资源,使得系统整体性能得以提升。全集数据通过时间维度划分为多级数据后,当用户需要获取特定的数据时,首先检索第一级数据,若检索到目标数据,则直接返回数据;若没有检索到目标数据,则依次从第二级、第三级数据中进行检索,直到检索到目标数据。从数据量来看,三级数据的数据量依次増加。因此,可以将第一级数据存储在存取速度最快的存储器和服务器中,将第三级数据存储在存取速度最慢但是存储容量最大的存储器和服务器中。这样可以有效地提高数据检索效率。步骤S102,对已经按照时间维度划分的数据,按照数据维度,将每ー级数据进ー步划分为均匀的份数。具体地,按照时间维度对全集数据划分后,数据的查询量可能还是较大,任意ー级数据的查询延迟率可能还是较高。因此,对已经按照时间维度划分的数据,按照数据维度进ー步划分,而数据维度包括数据编号、用户编号、数据的归属地或数据的类别等项,而各项都以数字的形式进行表示。其中,数据编号是数据的唯一标识,以产品数据为例,产品数据编号如产品的生产号,这些编号都是唯一的;其中,用户编号,
如数据编号一祥,对用户进行唯一地标识;其中,数据的归属地,是指数据所归属的地域,如北京、天津地区的数据;其中,数据的类别,是指按照不同网站的特征对数据进行分类,如生活信息类网站将数据分为租房、二手、招聘、生活服务等方面的数据。可以对已经按照时间维度划分的数据,按照数据维度的任意ー项,进一歩划分为均匀的份数,其中,划分的方法为将已经按照时间维度划分的每ー级数据,按照数据维度的任意一项进行取模运算,以得到多份随机均匀分布的数据。下文以数据编号作为数
据维度为例进行具体说明。例如,对已经按照时间维度划分为三级的数据,将每ー级数据按照数据编号进ー步均匀划分成多份,设将每ー级数据划分成9份,具体的运算过程是首先,对每ー级所有按顺序排列的数据编号通过散列函数(md5)进行随机处理,得到随机排列的数据编号作为每条数据的编号;然后,对这些随机排列的数据编号都进行取模9的运算,并将每ー级数据按照已经进行取模运算的数据编号均匀划分成
9份。由此,每ー份的数据编号是随机的,每ー份的数据量是均匀的。同样地,数据也可以按照用户编号、数据的归属地或数据的类别进行相似的运算,最終得到多份均匀的、随机分布的数据。需要说明的是,现有技术中,数据编号的规则有多种,如顺序递增的编号、随机排列的编号,本实施例中,数据编号的规则以不影响后续对数据进行随机地、均匀地分布为佳。其中,现有技术中的散列函数,通常包含128位数据,本实施例,优选散列函数的前64位或后64位数据进行运算。其中,对数据编号、用户编号、数据的归属地或数据的类别等进行取模运算时,取模的分母根据服务器的数量和每台服务器承载数据的能力进行确定,本发明优选用于2 100台服务器的情形。步骤S103,建立索引文件,对已经按照时间维度和数据维度划分的数据,按照业务需求的维度,将每ー份数据进ー步划分到索引文件中。通常,全集数据通过时间维度和数据维
度的划分后,数据查的效率大幅度提高,但是,每ー份数据的数量仍然较为庞大,因此,在此基础上,将每ー份数据继续按照业务需求的维度,划分到不同的索引文件中。其中,业务需求是从大多数用
户的需求中抽取的特征,该抽取的特征必须符合两个条件第一,绝大多数用户需求中包含该特征,也就是最优的特征,如大多数用户经常以地域的划分为条件进行数据的查;第二,数据在该特征上具有一定的分布特性。所谓分布特性,是指数据量的分布和用户需要查的数据量的分布是一致的,如以地域特征为业务需求,通常,海量用户对每个城市的数据需求量是不一样的,因此,为了提高数据的查效率,需要根据用户对城市的数据需求量,将数据分布在不同的城市,即每个城市的数据量的分布和用户需要查的每个城市的数据量是一致的,由此,数据分散地分布在不同的城市。数据分布的最終目的是为了提高数据查询、遍历的效率,而为了提高数据查询、遍历的效率,需要建立索引文件。常用的索引结构有倒排索引结构,本实施例以倒排索引为例进行说明。倒排索引结构的主要内容为索引(key)和索引值(value),其中,索引值是每个索引项对应的内容。下文,将详述数据与索引结构关系。图2a示出了所有数据的原始文档,原始文档中,包含了数据的文档号、数据的归属地等内容。图2b示出了ー种索引结构,在该结构中,索引设定为“租房”,索引值设定为“文档的编号”,那么,索引“租房”对应的索引值为“ 1、2、3、4” ;如果将索引的类别设定为“租房_城市”,索引值仍设定为“文档的编号”,如图2c所示,那么,索引“租房_北京”对应的索引值为“1”,索引“租房_上海”对应的索引值为“2”,依次类推。由上可以看出,如果将数据按照“租房_城市”划分,则相对于数据按照“租房”划分,索引所占的空间增长为4倍,索引值的长度缩短为1/4。为了进一歩降低数据存储和计算所消耗的资源,需要对以业务特征进行分布的数据进行

本文发布于:2024-09-20 15:27:10,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/779730.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   进行   划分
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议