CN108509618A - 一种基于空间填充曲线的大数据多维数据索引方法 - Google Patents
一种基于空间填充曲线的大数据多维数据索引方法 Download PDFInfo
- Publication number
- CN108509618A CN108509618A CN201810300980.5A CN201810300980A CN108509618A CN 108509618 A CN108509618 A CN 108509618A CN 201810300980 A CN201810300980 A CN 201810300980A CN 108509618 A CN108509618 A CN 108509618A
- Authority
- CN
- China
- Prior art keywords
- segmentation
- index
- dimension
- data
- linearisation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000012423 maintenance Methods 0.000 claims abstract description 8
- 230000011218 segmentation Effects 0.000 claims description 106
- 239000012634 fragment Substances 0.000 claims description 6
- 239000012141 concentrate Substances 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 229910002056 binary alloy Inorganic materials 0.000 claims 1
- 230000003252 repetitive effect Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 1
- 238000009412 basement excavation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于空间填充曲线的大数据多维数据索引方法,涉及大数据环境下数据索引技术领域。该方法首先利用一种新的空间填充曲线Flat‑zorder对文件中的每条记录进行线性化,然后根据线性化结果与文件名之间的对应关系,实现索引的创建、数据的检索以及索引更新与维护。Flat‑zorder空间填充曲线只要求维之间按照整数比进行扩展,既保留了线性化id值在每个维上的连续性又具有可接受的复杂性和时间复杂度。本发明提供的基于空间填充曲线的大数据多维数据索引方法,与传统的多维数据索引相比,提高了索引创建和更新的效率,加快了数据检索的速度,减小了索引文件的大小,同时支持精确匹配查询和范围查询。
Description
技术领域
本发明涉及大数据环境下数据索引技术领域,尤其涉及一种基于空间填充曲线的大数据多维数据索引方法。
背景技术
在信息化技术不断发展的今天,各种应用每天产生海量的数据,随之而来的是大数据环境下数据的存储、查询、抽取、挖掘等一系列问题。随着各种应用的开发,大数据环境下针对多维数据的检索分析的需求越来越多。在大数据环境下有这样一类多维数据,该多维数据是特定应用产生的背景数据,其重要特征是在一个数据文件中多维数据相对集中。针对此类多维数据如何建立高效的索引机制、如何提高多维数据的检索效率、如何减少多维索引的创建时间、如何减小多维数据索引的存储空间正成为迫切需要解决的问题。针对多维数据已存在多种索引方案。现有的针对多维数据的索引技术主要分为以下三类:1.类散列结构,例如网格文件、分段散列;2.类树结构,例如KD-Tree、四叉树;3.位图结构。
现有的多维索引技术均是针对具体的多维数据记录创建索引,亦即给出查询条件直接根据所建立的索引查询得到满足条件的某条或某些记录。这些索引方案的弊病在于在大数据环境下针对海量的多维数据建立索引,直接由索引检索得到记录必然导致索引创建与数据检索的效率大大降低,与此同时索引的存储空间与索引的维护代价也是巨大的。此外,现有的多维数据索引方案均是更适用于某种特定的查询方式比如精确匹配查询、点查询、包含查询、K-邻近查询等。
空间填充曲线是创建多维索引的一种方式,现有空间填充曲线主要分为迭代的空间填充曲线,例如Z-order、Gray、Hilbert,和非迭代的空间填充曲线例如Sweep和Scan。诸如Sweep与Scan之类的非迭代的空间填充曲线是简单的,相较于其他空间填充曲线其时间复杂度更小且更具灵活性,但其只在单个维上具有连续性,其余维上的连续性遭到破坏。作为比较,Z-order空间填充曲线在每个维上均是可扩展的,其保证了线性化id值在每个维上的连续性。然而Z-order空间填充曲线的局限性在于其要求所有的维的扩展都是同步的。
发明内容
针对现有技术的缺陷,本发明提供一种基于空间填充曲线的大数据多维数据索引方法,实现大数据环境下多维数据索引的创建、更新与维护以及基于索引的数据检索。
一种基于空间填充曲线的大数据多维数据索引方法,包括索引创建、数据检索和索引更新与维护:
所述索引创建的具体方法为:
步骤1-1、利用Flat-zorder空间填充曲线对数据集文件中的每条记录进行线性化并得到每条记录的线性化结果,记作该条记录的线性化id;
步骤1-2、存储文件名与该文件下所有记录的线性化id的对应关系,对不同记录得到的相同的线性化id只存储一次;
步骤1-3、对所有的文件执行步骤1-1与步骤1-2;
步骤1-4、得到所有的文件名与线性化id的对应关系即为创建的索引,将索引按照文件名的顺序导入到关系型数据库存储以用于之后的数据检索;
所述数据检索的具体方法为:
步骤2-1、将一条数据的每个维的具体数值作为检索的条件,再根据检索的条件利用Flat-zorder空间填充曲线计算出该条数据对应的id值;
步骤2-2、在关系型数据库中遍历每个文件名对应的所有的线性化id值,若步骤2-1计算出的线性化id值在该某文件名所对应的线性化id中,则满足检索条件的记录存在于该文件中;
步骤2-3、由步骤2-2得到若干文件,满足检索条件的记录存在于这些文件中,全局扫描得到的这些文件,检索出相应多维数据记录;
所述索引更新与维护的具体方法为:
步骤3-1、利用Flat-zorder空间填充曲线对新加入数据集的文件中的每条记录进行线性化并得到每条记录的线性化id;
步骤3-2、记录并存储新的文件名与该文件下所有线性化id的对应关系,对不同记录得到的相同的线性化id只记录一次;
步骤3-3、对所有的新加入数据集的文件执行步骤3-1和步骤3-2,新的文件名与线性化id的对应关系即为新的多维数据的索引,将新的多维数据的索引文件按照文件名的顺序导入到原数据集索引所在的关系型数据库中;
所述利用Flat-zorder空间填充曲线对文件中的每条记录进行线性化的具体方法为:
步骤4-1、选定数据集中多维数据的维,并对每个维进行分段的扩展与细化,确定各个维的分段索引,保证各个维之间活跃分段的数量成整数比关系,若不满足成整数比关系,则添加空分段se到活跃分段数量不足的维,使各个维之间活跃分段数量成整数比,具体方法为:
步骤4-1-1、定义多维数据中每个维,用符号d表示,其中,第i个维di中的i表示维di的索引;
步骤4-1-2、定义一个维中值的范围为分段,用符号s表示,分段s是一个二元组<a,b>,其中,a,b分别表示一个维中值范围的下界和上界;因此,sj表示给定维的第j个分段,sij表示维di的第j个分段;所有分段中有以下三种特殊的分段:
(1)s0=<-∞,+∞>,表示一个维的所有的值;
(2)s1=<-∞,α>与sw=<β,+∞>分别表示以α为上界和以β为下界的分段;
(3)se=null表示没有任何值的空分段,也记作Null;
步骤4-1-3、定义分段细化,分段细化是指将分段切分成若干递增、不覆盖、非重复的子分段,即将父分段的值切分成等间距的w个范围值;其中,sub(s)表示分段s细化后的子分段的集合;分段细化后的子分段的个数是固定值,称为细化因子,用w表示,且w>3;
步骤4-1-4、定义活跃分段和休眠分段,一个分段如果不再进行细化扩展即该分段没有子分段则称这样的分段为活跃分段,如果一个分段具有子分段则称这样的分段为休眠的分段;
步骤4-1-5、确定分段索引,分段索引i是每个维中分段的标识;分段细化后需要给各个分段编码确定分段的索引;一个分段扩展为w个等宽的子分段,按照从上到下,从左到右的顺序给子分段进行编码,由于分段的细化并不是发生在所有的分段中,会造成某些分段的缺失,对于缺失的分段,仍保留它们相应的索引编号;
步骤4-2、二进制化分段的索引i,并将分段sij的索引j转换成二进制字符串并存储在数组xij[]中,具体方法为:
步骤4-2-1、确定数据集中维的二进制长度;维di的二进制长度θi为其中max(sij)是在维di中分段的最大索引;定义θ为所有维中最短的二进制长度,则θi/θ为正整数;
步骤4-2-2、二进制化各个分段的索引i;将分段sij的索引j转换成二进制字符串并将其存储在数组xij[]中;如果该二进制字符串的长度没有达到θi,则在此字符串之前加上若干个‘0’以使数组xij[]的长度为θi;
步骤4-3、对数组xij[]进行分组;将数组xij[]分组成长度为θ的数组yij[],其中,符号“+”看作字符串连接符;则yij[p]=xij[(p·θi/θ)]+xij[(p·θi/θ)+1]+xij[(p·θi/θ)+2]+...+xij[(p·θi/θ)+θi/θ];
步骤4-4、交错连接每个选择的维的分段,确定该条多维数据的线性化结果,具体方法为:
步骤4-4-1、通过比较确定一条多维数据中每个维值所属分段的索引,并将该条多维数据中n个维值的索引值存在数组z[]中,数组z[]的长度为n;
步骤4-4-2、通过以下公式确定该条多维数据的线性化结果,线性化id={y1(z[1])[1]+y2(z[2])[1]+…+yn(z[n])[1]}+{y1(z[1])[2]+y2(z[2])[2]+…+yn(z[n])[2]}+…+{y1(z[1])[θ]+y2(z[2])[θ]+…+yn(z[n])[θ]},即在此字符串交错过程中,维的交错按照维的二进制长度θi递减的顺序进行,即二进制长度更长的维先进行交错;
步骤4-4-3、若给定的检索条件不是精确匹配的维值而是各个维值的范围,则每个维值范围确定若干个分段索引,同样利用步骤4-4-1和4-4-2确定多个线性化id值。
由上述技术方案可知,本发明的有益效果在于:本发明提供的一种基于空间填充曲线的大数据多维数据索引方法,通过建立数据文件和线性化id的对应关系,直接检索到目标数据记录所在的文件,进而再在具体记录所在的文件上检索目标记录。与传统的多维数据索引相比,提高了索引创建和更新的效率,加快了数据检索的速度,减小了索引文件的大小,同时支持精确匹配查询和范围查询。同时,本发明提出的Flat-zorder算法既保留了线性化id值在每个维上的连续性又具有可接受的复杂性和时间复杂度。而且Flat-zorder算法对于每个维的扩展的要求不像Z-order那样严格,只要求维之间按照整数比进行扩展。
附图说明
图1为本发明实施例提供的利用Flat-zorder空间填充曲线对文件中的每条记录进行线性化的流程图;
图2为本发明实施例提供的分段细化过程中分段索引确定过程的示意图;
图3为本发明实施例提供的六种空间填充曲线在二维空间的示意图,其中,(a)为Sweep空间填充曲线,(b)为Scan空间填充曲线,(c)为Gray空间填充曲线,(d)为Hilbert空间填充曲线,(e)为Z-order空间填充曲线,(f)为Flat-zorder空间填充曲线。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
在汽车产业存在大量的汽车零部件相关数据,而由于汽车产业的特性决定这些零部件的相关数据完全可以作为多维数据处理。
本实施例以某汽车零部件相关数据为例,使用本发明的基于空间填充曲线的大数据多维数据索引方法对该汽车零部件相关数据进行创建索引。
一种基于空间填充曲线的大数据多维数据索引方法,包括索引创建、数据检索和索引更新与维护:
索引创建的具体方法为:
步骤1-1、利用Flat-zorder空间填充曲线对数据集文件中的每条记录进行线性化并得到每条记录的线性化结果,记作该条记录的线性化id;
步骤1-2、存储文件名与该文件下所有记录的线性化id的对应关系,对不同记录得到的相同的线性化id只存储一次;
步骤1-3、对所有的文件执行步骤1-1与步骤1-2;
步骤1-4、得到所有的文件名与线性化id的对应关系即为创建的索引,将索引按照文件名的顺序导入到关系型数据库存储以用于之后的数据检索;
数据检索的具体方法为:
步骤2-1、将一条数据的每个维的具体数值作为检索的条件,再根据检索的条件利用Flat-zorder空间填充曲线计算出该条数据对应的id值;
步骤2-2、在关系型数据库中遍历每个文件名对应的所有的线性化id值,若步骤2-1计算出的线性化id值在该某文件名所对应的线性化id中,则满足检索条件的记录存在于该文件中;
步骤2-3、由步骤2-2得到若干文件,满足检索条件的记录存在于这些文件中,全局扫描得到的这些文件,检索出相应多维数据记录;
索引更新与维护的具体方法为:
步骤3-1、利用Flat-zorder空间填充曲线对新加入数据集的文件中的每条记录进行线性化并得到每条记录的线性化id;
步骤3-2、记录并存储新的文件名与该文件下所有线性化id的对应关系,对不同记录得到的相同的线性化id只记录一次;
步骤3-3、对所有的新加入数据集的文件执行步骤3-1和步骤3-2,新的文件名与线性化id的对应关系即为新的多维数据的索引,将新的多维数据的索引文件按照文件名的顺序导入到原数据集索引所在的关系型数据库中;
利用Flat-zorder空间填充曲线对文件中的每条记录进行线性化,如图1所示,具体方法为:
步骤4-1、选定数据集中多维数据的维,并对每个维进行分段的扩展与细化,确定各个维的分段索引,保证各个维之间活跃分段的数量成整数比关系,若不满足成整数比关系,则添加空分段se到活跃分段数量不足的维,使各个维之间活跃分段数量成整数比,具体方法为:
步骤4-1-1、定义多维数据中每个维,用符号d表示,其中,第i个维di中的i表示维di的索引;
步骤4-1-2、定义一个维中值的范围为分段,用符号s表示,分段s是一个二元组<a,b>,其中,a,b分别表示一个维中值范围的下界和上界;因此,sj表示给定维的第j个分段,sij表示维di的第j个分段;所有分段中有以下三种特殊的分段:
(4)s0=<-∞,+∞>,表示一个维的所有的值;
(5)s1=<-∞,α>与sw=<β,+∞>分别表示以α为上界和以β为下界的分段;
(6)se=null表示没有任何值的空分段,也记作Null;
步骤4-1-3、定义分段细化,分段细化是指将分段切分成若干递增、不覆盖、非重复的子分段,即将父分段的值切分成等间距的w个范围值;其中,sub(s)表示分段s细化后的子分段的集合;分段细化后的子分段的个数是固定值,称为细化因子,用w表示,且w>3;
步骤4-1-4、定义活跃分段和休眠分段,一个分段如果不再进行细化扩展即该分段没有子分段则称这样的分段为活跃分段,如果一个分段具有子分段则称这样的分段为休眠的分段;
步骤4-1-5、确定分段索引,分段索引i是每个维中分段的标识;分段细化后需要给各个分段编码确定分段的索引;一个分段扩展为w个等宽的子分段,按照从上到下,从左到右的顺序给子分段进行编码,由于分段的细化并不是发生在所有的分段中,会造成某些分段的缺失,对于缺失的分段,仍保留它们相应的索引编号;
步骤4-2、二进制化分段的索引i,并将分段sij的索引j转换成二进制字符串并存储在数组xij[]中,具体方法为:
步骤4-2-1、确定数据集中维的二进制长度;维di的二进制长度θi为其中max(sij)是在维di中分段的最大索引;定义θ为所有维中最短的二进制长度,则θi/θ为正整数;
步骤4-2-2、二进制化各个分段的索引i;将分段sij的索引j转换成二进制字符串并将其存储在数组xij[]中;如果该二进制字符串的长度没有达到θi,则在此字符串之前加上若干个‘0’以使数组xij[]的长度为θi;
步骤4-3、对数组xij[]进行分组;将数组xij[]分组成长度为θ的数组yij[],其中,符号“+”看作字符串连接符;则yij[p]=xij[(p·θi/θ)]+xij[(p·θi/θ)+1]+xij[(p·θi/θ)+2]+...+xij[(p·θi/θ)+θi/θ];
步骤4-4、交错连接每个选择的维的分段,确定该条多维数据的线性化结果,具体方法为:
步骤4-4-1、通过比较确定一条多维数据中每个维值所属分段的索引,并将该条多维数据中n个维值的索引值存在数组z[]中,数组z[]的长度为n;
步骤4-4-2、通过以下公式确定该条多维数据的线性化结果,线性化id={y1(z[1])[1]+y2(z[2])[1]+…+yn(z[n])[1]}+{y1(z[1])[2]+y2(z[2])[2]+…+yn(z[n])[2]}+…+{y1(z[1])[θ]+y2(z[2])[θ]+…+yn(z[n])[θ]},即在此字符串交错过程中,维的交错按照维的二进制长度θi递减的顺序进行,即二进制长度更长的维先进行交错;
步骤4-4-3、若给定的检索条件不是精确匹配的维值而是各个维值的范围,则每个维值范围确定若干个分段索引,同样利用步骤4-4-1和4-4-2确定多个线性化id值。
本实施例中,以多维数据(21,78,213,99,178)的线性化过程为例说明利用Flat-zorder空间填充曲线对每条多维数据进行线性化,该多维数据中,将每项数据看做多维数据的维,此条多维数据为五维。
对每个维进行分段的划分,并对每个分段进行编码创建索引。本实例中每个维分段的划分与编码如图2所示。
计算每个维的最大二进制长度θi与最短二进制长度θ,本实例第一个维的最大sij值为12,故由知θ1=4,同理由于其他的四个维的分段的划分同第一维相同故θ1=θ2=θ3=θ4=θ5=4,因此θ=4。
分段索引二进制化,根据图2的分段划分与分段索引可知多维数据的每个维值索引分别是7、8、12、9、11。将分段索引二进制化为4位的二进制值分别为0111、1000、1100、1001、1011。
对每个二进制值进行分组并保存在数组yij[]中。由yij[p]=xij[(p·θi/θ)]+xij[(p·θi/θ)+1]+xij[(p·θi/θ)+2]+...+xij[(p·θi/θ)+θi/θ]知y17[]={0,1,1,1},y28[]={1,0,0,0},y312[]={1,1,0,0},y49[]={1,0,0,1},y511[]={1,0,1,1}。
交错每个维的分段,数组z[]包含n个分段的索引值,本实例中z[]={7,8,12,9,11},则由id={y1(z[1])[1]+y2(z[2])[1]+…+yn(z[n])[1]}+{y1(z[1])[2]+y2(z[2])[2]+…+yn(z[n])[2]}+…+{y1(z[1])[θ]+y2(z[2])[θ]+…+yn(z[n])[θ]}可计算出多维数据(21,78,213,99,178)的线性化结果为“01111101001000110011”。
本实施例同时还给出如图3(a)-(f)所示的非迭代的空间填充曲线Sweep、Scan和迭代的空间填充曲线Gray、Hilbert、Z-order以及本发明的空间填充曲线Flat-zorder六种空间填充曲线在二维空间的示意图,从中可以看出,本发明的Flat-zorder算法是覆盖整个N维空间的空间填充曲线,其将N维空间中的多维数据线性化为二进制字符串。同时,Flat-zorder对于每个维的扩展的要求不像Z-order那样严格,只要求维之间按照整数比进行扩展。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (4)
1.一种基于空间填充曲线的大数据多维数据索引方法,包括索引创建、数据检索和索引更新与维护,其特征在于:
所述索引创建的具体方法为:
步骤1-1、利用Flat-zorder空间填充曲线对数据集文件中的每条记录进行线性化并得到每条记录的线性化结果,记作该条记录的线性化id;
步骤1-2、存储文件名与该文件下所有记录的线性化id的对应关系,对不同记录得到的相同的线性化id只存储一次;
步骤1-3、对所有的文件执行步骤1-1与步骤1-2;
步骤1-4、得到所有的文件名与线性化id的对应关系即为创建的索引,将索引按照文件名顺序导入到关系型数据库存储以用于之后的数据检索;
所述数据检索的具体方法为:
步骤2-1、将一条数据的每个维的具体数值作为检索的条件,再根据检索的条件利用Flat-zorder空间填充曲线计算出该条数据对应的id值;
步骤2-2、在关系型数据库中遍历每个文件名对应的所有的线性化id值,若步骤2-1计算出的线性化id值在该某文件名所对应的线性化id中,则满足检索条件的记录存在于该文件中;
步骤2-3、由步骤2-2得到若干文件,满足检索条件的记录存在于这些文件中,全局扫描得到的这些文件,检索出相应多维数据记录;
所述索引更新与维护的具体方法为:
步骤3-1、利用Flat-zorder空间填充曲线对新加入数据集的文件中的每条记录进行线性化并得到每条记录的线性化id;
步骤3-2、记录并存储新的文件名与该文件下所有线性化id的对应关系,对不同记录得到的相同的线性化id只记录一次;
步骤3-3、对所有的新加入数据集的文件执行步骤3-1和步骤3-2,新的文件名与线性化id的对应关系即为新的多维数据的索引,将新的多维数据的索引文件按照文件名的顺序导入到原数据集索引所在的关系型数据库中;
所述利用Flat-zorder空间填充曲线对文件中的每条记录进行线性化的具体方法为:
步骤4-1、选定数据集中多维数据的维,并对每个维进行分段的扩展与细化,确定各个维的分段索引,保证各个维之间活跃分段的数量成整数比关系,若不满足成整数比关系,则添加空分段se到活跃分段数量不足的维,使各个维之间活跃分段数量成整数比;
步骤4-2、二进制化分段的索引i,并将分段sij的索引j转换成二进制字符串并存储在数组xij[]中;
步骤4-3、对数组xij[]进行分组;将数组xij[]分组成长度为θ的数组yij[],其中,符号“+”看作字符串连接符;则yij[p]=xij[(p·θi/θ)]+xij[(p·θi/θ)+1]+xij[(p·θi/θ)+2]+...+xij[(p·θi/θ)+θi/θ];
步骤4-4、交错连接每个选择的维的分段,确定该条多维数据的线性化结果。
2.根据权利要求1所述的一种基于空间填充曲线的大数据多维数据索引方法,其特征在于:所述步骤4-1的具体方法为:
步骤4-1-1、定义多维数据中每个维,用符号d表示,其中,第i个维di中的i表示维di的索引;
步骤4-1-2、定义一个维中值的范围为分段,用符号s表示,分段s是一个二元组<a,b>,其中,a,b分别表示一个维中值范围的下界和上界;因此,sj表示给定维的第j个分段,sij表示维di的第j个分段;所有分段中有以下三种特殊的分段:
(1)s0=<-∞,+∞>,表示一个维的所有的值;
(2)s1=<-∞,α>与sw=<β,+∞>分别表示以α为上界和以β为下界的分段;
(3)se=null表示没有任何值的空分段,也记作Null;
步骤4-1-3、定义分段细化,分段细化是指将分段切分成若干递增、不覆盖、非重复的子分段,即将父分段的值切分成等间距的w个范围值;其中,sub(s)表示分段s细化后的子分段的集合;分段细化后的子分段的个数是固定值,称为细化因子,用w表示,且w>3;
步骤4-1-4、定义活跃分段和休眠分段,一个分段如果不再进行细化扩展即该分段没有子分段则称这样的分段为活跃分段,如果一个分段具有子分段则称这样的分段为休眠的分段;
步骤4-1-5、确定分段索引,分段索引i是每个维中分段的标识;分段细化后需要给各个分段编码确定分段的索引;一个分段扩展为w个等宽的子分段,按照从上到下,从左到右的顺序给子分段进行编码,由于分段的细化并不是发生在所有的分段中,会造成某些分段的缺失,对于缺失的分段,仍保留它们相应的索引编号。
3.根据权利要求2所述的一种基于空间填充曲线的大数据多维数据索引方法,其特征在于:所述步骤4-2的具体方法为:
步骤4-2-1、确定数据集中维的二进制长度;维di的二进制长度θi为其中max(sij)是在维di中分段的最大索引;定义θ为所有维中最短的二进制长度,则θi/θ为正整数;
步骤4-2-2、二进制化各个分段的索引i;将分段sij的索引j转换成二进制字符串并将其存储在数组xij[]中;如果该二进制字符串的长度没有达到θi,则在此字符串之前加上若干个‘0’以使数组xij[]的长度为θi。
4.根据权利要求3所述的一种基于空间填充曲线的大数据多维数据索引方法,其特征在于:所述步骤4-4的具体方法为:
步骤4-4-1、通过比较确定一条多维数据中每个维值所属分段的索引,并将该条多维数据中n个维值的索引值存在数组z[]中,数组z[]的长度为n;
步骤4-4-2、通过以下公式确定该条多维数据的线性化结果,线性化id={y1(z[1])[1]+y2(z[2])[1]+…+yn(z[n])[1]}+{y1(z[1])[2]+y2(z[2])[2]+…+yn(z[n])[2]}+…+{y1(z[1])[θ]+y2(z[2])[θ]+…+yn(z[n])[θ]},即在此字符串交错过程中,维的交错按照维的二进制长度θi递减的顺序进行,即二进制长度更长的维先进行交错;
步骤4-4-3、若给定的检索条件不是精确匹配的维值而是各个维值的范围,则每个维值范围确定若干个分段索引,同样利用步骤4-4-1和4-4-2确定多个线性化id值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810300980.5A CN108509618B (zh) | 2018-04-04 | 2018-04-04 | 一种基于空间填充曲线的大数据多维数据索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810300980.5A CN108509618B (zh) | 2018-04-04 | 2018-04-04 | 一种基于空间填充曲线的大数据多维数据索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108509618A true CN108509618A (zh) | 2018-09-07 |
CN108509618B CN108509618B (zh) | 2020-03-31 |
Family
ID=63380916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810300980.5A Expired - Fee Related CN108509618B (zh) | 2018-04-04 | 2018-04-04 | 一种基于空间填充曲线的大数据多维数据索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108509618B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889993A (zh) * | 2019-01-31 | 2019-06-14 | 北京永安信通科技股份有限公司 | 预定区域中的定位对象确定方法、装置和电子设备 |
CN111782742A (zh) * | 2020-06-06 | 2020-10-16 | 中国科学院电子学研究所苏州研究院 | 一种面向大规模地理空间数据的存储和检索方法及其系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182460A (zh) * | 2014-07-18 | 2014-12-03 | 浙江大学 | 基于倒排索引的时间序列相似性查询方法 |
US9075799B1 (en) * | 2011-10-24 | 2015-07-07 | NetBase Solutions, Inc. | Methods and apparatus for query formulation |
CN106127786A (zh) * | 2016-07-04 | 2016-11-16 | 大连理工大学 | 一种复杂连通区域特征的快速标定与提取方法 |
-
2018
- 2018-04-04 CN CN201810300980.5A patent/CN108509618B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075799B1 (en) * | 2011-10-24 | 2015-07-07 | NetBase Solutions, Inc. | Methods and apparatus for query formulation |
CN104182460A (zh) * | 2014-07-18 | 2014-12-03 | 浙江大学 | 基于倒排索引的时间序列相似性查询方法 |
CN106127786A (zh) * | 2016-07-04 | 2016-11-16 | 大连理工大学 | 一种复杂连通区域特征的快速标定与提取方法 |
Non-Patent Citations (2)
Title |
---|
QINGCHENG LI等: "Optimizational Method of HBase Multi-dimensional Data Query Based on Hilbert Space-filling Curve", 《2014 NINTH INTERNATIONAL CONFERENCE ON P2P, PARALLEL, GRID, CLOUD AND INTERNET COMPUTING》 * |
曾凤生: "大数据的空间数据索引技术研究", 《学术问题研究(综合版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889993A (zh) * | 2019-01-31 | 2019-06-14 | 北京永安信通科技股份有限公司 | 预定区域中的定位对象确定方法、装置和电子设备 |
CN111782742A (zh) * | 2020-06-06 | 2020-10-16 | 中国科学院电子学研究所苏州研究院 | 一种面向大规模地理空间数据的存储和检索方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108509618B (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lawder | The application of space-filling curves to the storage and retrieval of multi-dimensional data | |
Lawder et al. | Using space-filling curves for multi-dimensional indexing | |
Liao et al. | High dimensional similarity search with space filling curves | |
Gaede et al. | Multidimensional access methods | |
US6606638B1 (en) | Value-instance-connectivity computer-implemented database | |
Beckmann et al. | A revised R*-tree in comparison with related index structures | |
KR100380200B1 (ko) | 이미지 브라우징을 위한 다중 선형화 데이터 구조 | |
CN106503223B (zh) | 一种结合位置和关键词信息的在线房源搜索方法及装置 | |
CN105975587A (zh) | 一种高性能的内存数据库索引组织与访问方法 | |
Xin et al. | Computing iceberg cubes by top-down and bottom-up integration: The starcubing approach | |
Ooi | Spatial kd-tree: A data structure for geographic database | |
Chiang et al. | External Memory Techniques for Isosurface Extractions in Scientific Visualization | |
Ahn et al. | A survey on multidimensional access methods | |
CN108509618A (zh) | 一种基于空间填充曲线的大数据多维数据索引方法 | |
CN103500165B (zh) | 一种结合聚类和双key值的高维向量检索方法 | |
CN109885570A (zh) | 一种辅助索引结合散列表的多维范围查询方法 | |
Lomet | A review of recent work on multi-attribute access methods | |
CN105740371A (zh) | 一种基于密度的增量聚类数据挖掘方法及系统 | |
Gawrychowski et al. | Submatrix maximum queries in Monge and partial Monge matrices are equivalent to predecessor search | |
JP3938815B2 (ja) | ノード作成方法、画像検索方法及び記録媒体 | |
Moreau et al. | mqr-tree: A 2-dimensional spatial access method | |
Li et al. | A Survey of Multi-Dimensional Indexes: Past and Future Trends | |
Wu et al. | Retrieving similar pictures from iconic databases using G-tree | |
He et al. | Clustered sorting r-tree: An index for multi-dimensional spatial objects | |
Eavis et al. | The lbf r-tree: Efficient multidimensional indexing with graceful degradation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200331 |
|
CF01 | Termination of patent right due to non-payment of annual fee |