CN107273464B - 一种基于发布/订阅模式的分布式度量相似查询处理方法 - Google Patents
一种基于发布/订阅模式的分布式度量相似查询处理方法 Download PDFInfo
- Publication number
- CN107273464B CN107273464B CN201710408855.1A CN201710408855A CN107273464B CN 107273464 B CN107273464 B CN 107273464B CN 201710408855 A CN201710408855 A CN 201710408855A CN 107273464 B CN107273464 B CN 107273464B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- nodes
- query
- space
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Abstract
本发明公开了一种基于发布/订阅模式的分布式度量相似查询处理方法。在系统构建阶段,本发明将给定的度量空间数据集通过支枢点映射至向量空间;在分布式系统中,首先利用基于KD树的划分技术将数据划分到各个节点;其次各个节点建立局部索引并统计内部数据信息;最后各个节点组织成树形结构。在处理相似查询请求时,本发明在发布/订阅模式下,将查询请求作为任务发布到分布式系统中;各个工作节点利用基于相交的方法判断、订阅属于自己职责范围的任务,而后对其进行处理,将查询结果返回给用户。本发明充分利用了数据库中的索引、查询技术,采用统一的方法来处理度量相似查询,丰富和优化了分布式环境下的相似查询处理方法。
Description
技术领域
本发明涉及数据库的索引与查询技术,特别是一种基于发布/订阅模式的分布式度量相似查询处理方法。
背景技术
度量相似查询包括度量空间区域查询和度量k最近邻查询。度量区域查询是指:给定度量空间中的一个数据集、一个查询点和一个距离阈值,找到给定数据集中与查询点距离小于阈值的所有数据对象。度量k最近邻查询是指:给定度量空间中的一个数据集、一个查询点和一个整数k,找到给定数据集中与查询点距离最近的k个数据对象。度量相似查询是数据库领域的重要查询类型,被广泛地应用于社会的各个领域中。
现有的查询处理大多关注欧氏空间,并用欧式距离来度量对象之间的邻近关系;但在许多的实际应用,如地理信息系统、数据挖掘、模式识别,对象之间的邻近关系并不能用欧式距离来度量,而需要用借助其它的距离度量方式。例如,路网上两个位置间的距离度量往往借助于路网距离;字符串之间的距离则更多使用编辑距离进行度量。
为此,我们需要借助度量空间进行统一表达。度量空间是支持任意距离函数的一种更为广泛的空间,只要求其距离度量函数满足非负性、对称性和三角不等式性。为了快速有效地组织、存储和访问度量空间数据,专家学者们提出了大量的索引方式。迄今为止,影响最大、应用最广泛的是M树索引结构。M 树是Ciaccia、Patella和Zezula在1997年提出的,它是一棵基于外存的平衡树,其更新操作代价小且无需重构树。
另一方面,随着互联网的发展,特别是移动设备的广泛使用,使得数据在体量,多样性和丰富度上有着极大的增长,这也对传统的度量相似查询算法在时间效率和空间效率上提出了挑战。因此,我们需要一种具有良好可伸缩性的度量相似查询处理方法来提供高效的查询处理服务以适应这样的场景。
目前,面向相似查询的方法大多针对欧式空间,并利用欧氏空间的几何特性以加速查询;但不幸的是,这些欧氏空间的几何特性并不能通用于度量空间。所以,这些方法不能用来解决度量相似查询。此外,现存集中式的度量相似查询方法因扩展性有限、查询效率低,并不能用来处理大规模数据。所以,设计一种具有高可扩展性、高效率的分布式度量相似查询处理方法成为了学术界与工业界的迫切需求。
发明内容
针对现有技术的不足,本发明提供一种基于发布/订阅模式的分布式度量相似查询处理方法。该方法在分布式系统中对数据进行划分后,建立局部M树索引,并将系统中的节点组织成树形结构,便于后续查询任务的处理;在处理用户相似查询请求时,本方法基于发布/订阅模式将查询请求包装成任务供对应的节点进行处理。
为了达到上述目的,本发明所采用技术方案如下:一种基于发布/订阅模式的分布式度量相似查询处理方法,具体包括如下步骤:
(1)对应用中给定的度量空间数据集进行随机采样,得到样本数据;
(2)对得到的样本数据进行支枢点选择,并据此将应用中给定的整个数据集(包括样本数据)从度量空间映射至向量空间;
(3)利用样本数据构建KD树,得到叶子节点对应的空间划分;
(4)根据步骤(3)得到空间划分,将应用中给定的度量空间数据集(包括样本数据)进行划分,并将划分后的数据分发到对应的工作节点。
(5)各个工作节点对分配到的数据建立局部索引,工作节点、管理节点以及根节点形成树形层次结构,并对自己负责的数据信息进行统计。
(6)将用户的查询请求作为任务发布,各个节点判断、订阅查询范围与自己职责范围相交的任务,并在所有相关工作节点返回结果后,对结果进行整合并返回给用户。
进一步的,所述步骤(2)具体为:
2.1)在样本数据中找出离群点作为支枢点的候选集合;
2.2)根据支枢点的选择目标,对候选集合中的点进行增量式的贪心选择,得到支枢点集;
2.3)对于每一个在度量空间中的数据,计算其与步骤2.2)中得到的支枢点集中的每个支枢点之间的距离,并将求得的距离作为向量空间中各维度的坐标值,以得到度量空间数据在向量空间中的坐标。
进一步的,所述的步骤(3)具体为:对步骤(1)得到的样本数据,构建 KD树,得到的KD树中包含数据点个数相等的叶子节点,各叶子节点对应的空间区域即为空间划分的结果;这里需要注意的是KD树叶子节点的数目是提前指定的,与后续分布式系统中工作节点的数目相等且一一对应。
进一步的,所述的步骤(4)具体为:将应用中给定的整个度量空间数据集 (包括样本数据)划分到步骤(3)得到的相应空间划分中去;完成划分后的数据分发到对应的工作节点,进行下一步处理;
进一步的,所述的步骤(5)具体为:
5.1)各个工作节点对分配到的数据建立局部M树索引,加速后续查询任务的处理;
5.2)工作节点、管理节点以及根节点形成树形结构,工作节点作为叶子节点,直接负责数据处理;管理节点作为中间节点,负责管理子节点以及与上层进行通讯;根节点负责管理整个分布式系统;
5.3)每个节点统计自己负责数据的信息,包括数据的范围、数目;管理节点、根节点还需记录自己对应子节点的相关统计信息,以便后续查询任务的发布/订阅处理。
进一步的,所述的步骤(6)具体为:
6.1)将用户的查询作为任务发布,各个节点查看发布中的任务,若与自己负责的数据范围相交,则对其进行基于M树索引的最佳优先查询处理;
6.2)最初发布任务的节点维护一个计数器,该计数器用于计算完成任务的工作节点数量,计数器在所有相关的工作节点返回结果后会被加满;在计数器加满后,该节点对得到结果进行整合并返回给用户。
本发明具有的有益效果是:本发明充分利用了空间数据库中索引技术和相关查询技术,丰富和优化了分布式环境下的度量相似查询处理方法;采用统一的方法来处理相似查询;基于发布/订阅模式,对两种不同类型的度量相似查询进行处理,并利用范围过滤、索引等技术加速查询处理,极大地提升了度量相似查询的性能。
附图说明
图1为本发明的实施步骤流程图;
图2(a)为基于KD树的空间迭代划分第一轮示意图,图 2 (b)为基于KD树的空间迭代划分第二轮示意图;
图3为基于发布/订阅模式的分布式度量相似查询处理方法工作原理示意图。
具体实施方式
现结合附图和具体实施对本发明的技术方案作进一步说明:
如图1所示,本发明具体实施过程和工作原理如下:
步骤(1)对应用中给定的度量空间数据集进行随机采样,得到样本数据;
步骤(2)对得到的样本数据进行支枢点选择,并据此将应用中给定的整个数据集(包括样本数据)从度量空间映射至向量空间;其中,支枢点选择的具体步骤包括:
2.1)在样本数据中找出离群点作为支枢点的候选集合;
2.2)根据支枢点的选择目标,对候选集合中的点进行增量式的贪心选择,得到支枢点集;
利用支枢点集将数据集从度量空映射至向量空间的具体步骤如下:
2.3)对于每一个在度量空间中的数据,计算其与步骤2.2)中得到的支枢点集中的每个支枢点之间的距离,并将求得的距离作为向量空间中各维度的坐标值,以得到度量空间数据在向量空间中的位置坐标。
步骤(3)利用样本数据构建KD树,得到叶子节点对应的空间划分;具体步骤如下:对步骤(1)得到的样本数据,构建KD树,得到的KD树中包含数据点个数相等的叶子节点,各叶子节点对应的空间区域即为空间划分的结果;这里需要注意的是KD树叶子节点的数目是提前指定的,与后续分布式系统中工作节点的数目相等且一一对应;下面以图2(a) 、图2(b) 为例对KD树的构建进行说明,假定样本数据为{o1,o2,o3,…,o8}:
1)在一个随机选择的维度上,图2(a)中选到维度y,将所有的采样数据进行排序,进而将样本数据等分为A、B两个节点,即A={o1,o3,o5,o6}和B={o2,o4,o7, o8};
2)分别对A、B两个节点进行迭代划分,最终得到图2(b)所示的四个节点,即P1={o1,o6},P2={o3,o5},P3={o2,o4}和P4={o7,o8};
3)最终得到各叶子节点对应的空间划分,即为图2(b)中节点P1、P2、P3和 P4对应的包围盒BB(P1)、BB(P2)、BB(P3)和BB(P4)。
步骤(4)根据步骤(3)得到空间划分,将应用中给定的度量空间数据集 (包括样本数据)进行划分,并将划分后的数据分发到对应的工作节点,这里需要说明两点:
4.1)步骤(4)中所获得的数据划分互不相交,提升步骤(6)中使用的基于相交的匹配方法效率;
4.2)步骤(4)中所获得的子数据集大小相当,使得节点间负载大致相当,保证单个节点中的数据不至于过多,以致其成为性能瓶颈。
步骤(5)各个工作节点分别对分配到的数据进行处理,建立本地的M树索引,以加速后续查询任务的处理;将整个系统组织成如图3所示的树型结构:工作节点(图3所示a,b,c…,i,j节点)作为叶子节点,直接负责数据处理;管理节点(图3所示1,2,3,4,5节点)作为中间节点,负责管理子节点以及与上层进行通讯;根节点(图3所示R节点)负责管理整个分布式系统。
步骤(6)将用户的查询请求作为任务发布,各个节点判断、订阅查询范围与自己职责范围相交的任务,并在所有相关工作节点返回结果后,对结果进行整合并返回给用户;下面以图3为例,介绍系统对一个度量区域查询处理的过程:
6.1)工作节点e发布用户的查询请求,其对应管理节点3接收到任务后,基于相交的方法查看当前任务的查询区域与自己负责的数据范围之间的关系:
(1)若管理节点3发现自己负责的数据范围包含当前任务的查询区域,则在此分支内部即可得到查询的所有结果,此时在对应子工作节点订阅任务进行基于M树索引的最佳优先查询处理后,可以跳到步骤6.4);
(2)若管理节点3发现自己负责的数据范围不足以完成查询(即当前任务的查询区域超出其负责的数据范围),则如图3所示,向根节点发布任务,在监听根节点的其他管理节点也基于相交的方法判断、订阅在自己职责范围内的任务,图3的例子中管理节点1,2,4都订阅了当前任务进行处理;
6.2)管理节点3从根节点处获得订阅了自己发布任务的管理节点数量,构建阈值为4的计数器;
6.3)同时,各个订阅查询任务的节点开始进行查询处理,完成处理后将结果发送给管理节点3;
6.4)当管理节点3的计数器加满之后,即所有相关的工作节点返回的结果,管理节点3整理收到的数据结果返回给用户,完成查询。
值得注意的是,本发明给出的基于发布/订阅模式的分布式度量相似查询处理方法还可以支持度量k最近邻查询。k最近邻查询与区域查询的不同在于其初始时并没有一个可供判断查询区域的距离阈值。在本发明中的处理方式是:在工作节点发布k最近邻查询任务之前,在本地进行一次局部的k最近邻查询得到局部结果。因为全局k最近邻结果必然包含在局部k最近邻的范围中,所以可以用局部第k近邻与查询点之间的距离作为全局度量k最近邻查询范围的上界。经此处理后,度量k最近邻查询可以使用步骤(6)所述的度量区域查询处理方法进行处理。
Claims (1)
1.一种基于发布/订阅模式的分布式度量相似查询处理方法,其特征在于:该方法的步骤如下:
步骤(1):对应用中给定的度量空间数据集进行随机采样,得到样本数据;
步骤(2):对得到的样本数据进行支枢点选择,并据此将应用中给定的整个数据集从度量空间映射至向量空间;
步骤(3):利用样本数据构建KD树,得到叶子节点对应的空间划分;
步骤(4):根据步骤(3)得到空间划分,将应用中给定的度量空间数据集进行划分,并将划分后的数据分发到对应的工作节点;
步骤(5):各个工作节点对分配到的数据建立局部索引,工作节点、管理节点以及根节点形成树形层次结构,并对自己负责的数据信息进行统计;
步骤(6):将用户的查询请求作为任务发布,各个节点判断、订阅查询范围与自己职责范围相交的任务,并在所有相关工作节点返回结果后,对结果进行整合并返回给用户;
所述步骤(2)具体为:
2.1)在样本数据中找出离群点作为支枢点的候选集合;
2.2)根据支枢点的选择目标,对候选集合中的点进行增量式的贪心选择,得到支枢点集;
2.3)对于每一个在度量空间中的数据,计算其与步骤2.2)中得到的支枢点集中的每个支枢点之间的距离,并将求得的距离作为向量空间中各维度的坐标值,以得到度量空间数据在向量空间中的坐标;
所述的步骤(3)具体为:
对步骤(1)得到的样本数据,构建KD树,得到的KD树中包含数据点个数相等的叶子节点,各叶子节点对应的空间区域即为空间划分的结果;
所述的步骤(4)具体为:
将应用中给定的整个度量空间数据集划分到步骤(3)得到的相应空间划分中去;完成划分后的数据分发到对应的工作节点,进行下一步处理;
所述的步骤(5)具体为:
5.1)各个工作节点对分配到的数据建立局部M树索引;
5.2)工作节点、管理节点以及根节点形成树形结构,工作节点作为叶子节点,直接负责数据处理;管理节点作为中间节点,负责管理子节点以及与上层进行通讯;根节点负责管理整个分布式系统;
5.3)每个节点统计自己负责数据的信息,包括数据的范围、数目;管理节点、根节点还需记录自己对应子节点的相关统计信息;
所述的步骤(6)具体为:
6.1)将用户的查询作为任务发布,各个节点查看发布中的任务,若与自己负责的数据范围相交,则对其进行基于M树索引的最佳优先查询处理;
6.2)最初发布任务的节点维护一个计数器,该计数器用于计算完成任务的工作节点数量,计数器在所有相关的工作节点返回结果后会被加满;在计数器加满后,该节点对得到结果进行整合并返回给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710408855.1A CN107273464B (zh) | 2017-06-02 | 2017-06-02 | 一种基于发布/订阅模式的分布式度量相似查询处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710408855.1A CN107273464B (zh) | 2017-06-02 | 2017-06-02 | 一种基于发布/订阅模式的分布式度量相似查询处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107273464A CN107273464A (zh) | 2017-10-20 |
CN107273464B true CN107273464B (zh) | 2020-05-12 |
Family
ID=60064466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710408855.1A Active CN107273464B (zh) | 2017-06-02 | 2017-06-02 | 一种基于发布/订阅模式的分布式度量相似查询处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273464B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535712B (zh) * | 2021-06-04 | 2023-09-29 | 山东大学 | 基于线段kd树的支持大规模时序数据交互方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063486A (zh) * | 2010-12-28 | 2011-05-18 | 东北大学 | 一种面向多维数据管理的云计算平台查询处理方法 |
CN103544835A (zh) * | 2013-09-27 | 2014-01-29 | 北京交通大学 | 城市轨道交通客流诱导信息发布系统与发布方法 |
CN103927340A (zh) * | 2014-03-27 | 2014-07-16 | 中国科学院信息工程研究所 | 一种密文检索方法 |
CN105740337A (zh) * | 2016-01-22 | 2016-07-06 | 东南大学 | 一种基于内容的发布订阅系统中的事件快速匹配方法 |
CN106055674A (zh) * | 2016-06-03 | 2016-10-26 | 东南大学 | 一种分布式环境下基于度量空间的top‑k支配查询方法 |
CN106095920A (zh) * | 2016-06-07 | 2016-11-09 | 四川大学 | 面向大规模高维空间数据的分布式索引方法 |
CN106412023A (zh) * | 2016-09-05 | 2017-02-15 | 南京臻融软件科技有限公司 | 一种基于发布订阅机制的多源数据分发方法 |
CN106777133A (zh) * | 2016-12-16 | 2017-05-31 | 浙江大学 | 一种基于MapReduce的度量空间相似连接处理方法 |
-
2017
- 2017-06-02 CN CN201710408855.1A patent/CN107273464B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063486A (zh) * | 2010-12-28 | 2011-05-18 | 东北大学 | 一种面向多维数据管理的云计算平台查询处理方法 |
CN103544835A (zh) * | 2013-09-27 | 2014-01-29 | 北京交通大学 | 城市轨道交通客流诱导信息发布系统与发布方法 |
CN103927340A (zh) * | 2014-03-27 | 2014-07-16 | 中国科学院信息工程研究所 | 一种密文检索方法 |
CN105740337A (zh) * | 2016-01-22 | 2016-07-06 | 东南大学 | 一种基于内容的发布订阅系统中的事件快速匹配方法 |
CN106055674A (zh) * | 2016-06-03 | 2016-10-26 | 东南大学 | 一种分布式环境下基于度量空间的top‑k支配查询方法 |
CN106095920A (zh) * | 2016-06-07 | 2016-11-09 | 四川大学 | 面向大规模高维空间数据的分布式索引方法 |
CN106412023A (zh) * | 2016-09-05 | 2017-02-15 | 南京臻融软件科技有限公司 | 一种基于发布订阅机制的多源数据分发方法 |
CN106777133A (zh) * | 2016-12-16 | 2017-05-31 | 浙江大学 | 一种基于MapReduce的度量空间相似连接处理方法 |
Non-Patent Citations (4)
Title |
---|
《Efficient Metric Indexing for Similarity Search and Similarity Joins》;Lu Chen,et.al;《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》;20170331;第29卷(第3期);第1-7节 * |
《Metric All-k-Nearest-Neighbor Search (Extended Abstract)》;Lu Chen,et.al;《IEEE》;20161231;第I-II节 * |
《Metric All-k-Nearest-Neighbor Search》;Lu Chen,et.al;《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》;20160131;第28卷(第1期);全文 * |
《Metric Similarity Joins Using MapReduce》;Gang Chen,et.al;《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》;20170331;第29卷(第3期);第1-8节 * |
Also Published As
Publication number | Publication date |
---|---|
CN107273464A (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106372114B (zh) | 一种基于大数据的联机分析处理系统和方法 | |
CN106528773B (zh) | 一种基于Spark平台支持空间数据管理的图计算系统及方法 | |
Ding et al. | Enabling smart transportation systems: A parallel spatio-temporal database approach | |
Xuan et al. | Voronoi-based range and continuous range query processing in mobile databases | |
CN106874426B (zh) | 基于Storm的RDF流式数据关键词实时搜索方法 | |
CN108932347B (zh) | 一种分布式环境下基于社会感知的空间关键字查询方法 | |
CN106897374B (zh) | 一种基于轨迹大数据最近邻查询的个性化推荐方法 | |
Deng et al. | Parallel processing of dynamic continuous queries over streaming data flows | |
Tang et al. | Locationspark: In-memory distributed spatial query processing and optimization | |
CN105550332A (zh) | 一种基于双层索引结构的起源图查询方法 | |
Tian et al. | A survey of spatio-temporal big data indexing methods in distributed environment | |
Ji et al. | Scalable nearest neighbor query processing based on inverted grid index | |
CN109635069B (zh) | 一种基于信息熵的地理空间数据自组织方法 | |
CN113704248B (zh) | 一种基于外置索引的区块链查询优化方法 | |
Cho et al. | A basis of spatial big data analysis with map-matching system | |
CN107273464B (zh) | 一种基于发布/订阅模式的分布式度量相似查询处理方法 | |
CN106776810B (zh) | 一种大数据的数据处理系统及方法 | |
Xu et al. | Continuous k nearest neighbor queries over large multi-attribute trajectories: a systematic approach | |
CN110347676A (zh) | 基于关系r树的不确定性时态数据管理与查询方法 | |
CN115391424A (zh) | 数据库查询的处理方法、存储介质与计算机设备 | |
Guo et al. | Cohesive group nearest neighbor queries on road-social networks under multi-criteria | |
CN105989078B (zh) | 一种结构化对等网络构建索引的方法、检索方法、装置及系统 | |
Villarroya et al. | Enabling efficient distributed spatial join on large scale vector-raster data lakes | |
CN109446294B (zh) | 一种并行的相互子空间Skyline查询方法 | |
US20030018623A1 (en) | System and method of query processing of time variant objects |
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 |