CN111639075A - 一种基于扁平化r树的非关系数据库矢量数据管理方法 - Google Patents
一种基于扁平化r树的非关系数据库矢量数据管理方法 Download PDFInfo
- Publication number
- CN111639075A CN111639075A CN202010387252.XA CN202010387252A CN111639075A CN 111639075 A CN111639075 A CN 111639075A CN 202010387252 A CN202010387252 A CN 202010387252A CN 111639075 A CN111639075 A CN 111639075A
- Authority
- CN
- China
- Prior art keywords
- index
- vector data
- node
- tree
- vector
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- 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
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种非关系数据库中的矢量数据管理方法,面向分布式非关系数据库,为矢量数据设计基于R树扁平化策略的索引结构;建立包括矢量数据和索引结构在内的库表结构,并相互关联;将矢量数据编码入库,同时构建扁平化R树索引;提供针对矢量数据,基于扁平化R树的空间查询处理算法;对非关系数据库中的矢量数据进行维护,包括更新和删除。本发明通过建立基于扁平化策略的R树索引,为非关系型数据库提供R树支持的矢量数据查询处理能力,能够支持大规模矢量数据的组织和管理,使得非关系数据库的海量存储、并行计算,以及高可用、高可靠等技术红利惠及到矢量数据类型。
Description
技术领域
本发明属于数据库技术领域,具体是一种非关系数据库中的矢量数据管理方法。
背景技术
现实世界中的数据超过85%与地理位置有关,据麦肯锡全球研究所报告,2016年全球地理空间数据总量已经超越了6000PB,且每年仍以PB级别的速度在增加。相比于栅格数据的简单结构,矢量数据结构复杂,并且承担着主要的空间分析、空间数据查询任务。异构非结构化的矢量数据加大了使用传统关系数据库管理的难度;面对数据量庞大且持续增长的海量数据集,关系型数据库在可扩展性上也存在难以克服的问题。
非关系型数据库遵循CAP理论和BASE原则,在弱化事务性的同时强调模式自由、读写效率与横向的伸缩性,能够提供高效的随机访问、多格式的数据存储和高并发的数据读写,以其强大的扩展能力与计算能力为该问题提供了新的思路与方法。非关系型数据库***通常采用Key-Value存储模型存储数据,通过自动对Key建立索引,保证对数据的高效查询。此外,还可以通过建立二级索引,丰富数据库的查询能力。
空间索引的目的是提高查询效率,传统的空间索引并非面向分布式环境而设计的,在进行海量矢量数据的存储和管理时,存在数据存储组织困难、难以满足实时查询需求等诸多问题。而非关系数据库的原生空间索引对矢量数据支持性较差,以MongoDB为例,2d索引与2dsphere索引是MongoDB原生支持的两种空间索引,2d索引仅支持点要素的索引,2dsphere索引存在不支持平面坐标数据、对数据的自适应性较差等问题,难以支持矢量数据的查询处理。
由此可知,在使用非关系数据库管理海量矢量数据时存在没有合适索引的问题,使用原生的空间索引方式会导致数据库无法高效的组织和管理数据,难以发挥非关系数据库高并发的优势。
发明内容
本发明要解决的技术问题是:提供一种非关系数据库中的矢量数据管理方法,为分布式非关系数据库提供对海量矢量数据的组织和管理能力。
本发明为解决上述技术问题所采取的技术方案为:一种非关系数据库中的矢量数据管理方法,其特征在于:本方法包括以下步骤:
S1、在非关系数据库环境中,为矢量数据设计基于R树扁平化策略的辅助索引结构;
S2、建立包括矢量数据和索引结构在内的库表结构,库表结构中各数据表之间通过显式的关联记录与隐式的命名规则进行关联;
S3、将矢量数据编码入库存储,几何和属性信息分别以GeoJSON和JSON形式进行组织,同时构建扁平化R树索引;
S4、当收到查询请求时,根据查询条件确定索引元数据ID,进而获取R树根节点ID,从而基于R树索引表,并行执行矢量数据的检索,最终返回查询结果;
S5、对非关系数据库中的矢量数据进行维护,包括更新和删除。
按上述方法,所述的S1中,基于R树扁平化策略的辅助索引结构具体设计步骤如下:
1.1、将矢量对象抽象为最小外包矩形MBR(Minimum Bounding Rectangle),空间位置相邻的MBR将递归合并成更高一级的MBR,最终形成一个分层的,基于最小外包矩形的树形结构;
1.2、将R树索引结构展开成扁平化的索引节点集合,即将每一索引节点表达为JSON结构,并将该节点的唯一标识作为父索引项指向子索引节点的指针;
1.3、设置R树的扇出系数M,除根节点外,规定其余R树节点的子节点数量位于区间[2,M]之间。
按上述方法,所述的R树节点中,R树叶节点的记录格式为<OID,MBR>,中间节点的记录格式为<OID,Pointer,MBR>;其中OID为该节点的唯一标识符,Pointer指向其子节点的OID,MBR为最小外包矩形。
按上述方法,所述的S2中,库表结构的设计如下:
2.1、以数据集形式管理多源异构的矢量数据,每一个矢量数据集组织逻辑相关、类型相同的矢量数据;
2.2、设计矢量数据表、R树索引表、矢量元数据表和索引元数据表,分别用来存储矢量数据集的矢量要素、索引结构,以及两者的元数据;
2.3、建立矢量数据表、R树索引表、矢量元数据表和索引元数据表这四类表之间的关联关系,每个矢量数据集对应一个矢量数据表、一个R树索引表,并分别在矢量元数据表和索引元数据表中进行元数据描述。
按上述方法,所述的S3具体包括:
3.1、以矢量数据集为单位,将其中的所有矢量要素编码,写入到矢量数据表中,几何和属性信息分别以GeoJSON和JSON形式进行组织;GeoJSON是基于JavaScript对象表示法的地理空间信息数据交换格式;
3.2、查询矢量元数据表中矢量要素所在空间域的几何元数据信息,获取对应的索引元数据ID;
3.3、从索引元数据表中获取R树索引表及其根节点ID,依据矢量要素最小外包矩形和索引项外包矩形的几何关系,导航到R树索引表的目的叶子节点,***关于矢量要素的索引项,更新R树索引表;
3.4、完成矢量数据集的写入后,更新矢量元数据表和索引元数据表。
按上述方法,所述的3.3中,ID节点导航和R树索引表更新的具体方式包括如下步骤:
3.3.1、依据矢量要素最小外包矩形和索引项外包矩形的几何关系,使用ID节点导航寻找最佳***节点,并判断该节点的子节点个数是否超出所设定的扇出系数,若超出扇出系数,执行步骤3.3.2,否则执行步骤3.3.3;
3.3.2、进行节点***操作,通过R树节点***算法将该节点均分为两个新的节点,再次导航寻找最佳***节点;
3.3.3、将矢量要素的索引项***节点,并更新该节点;
3.3.4、若根节点发生***,在索引元数据表中更新根节点的信息。
按上述方法,所述JSON的结构为{ID,L,C,D};其中ID为索引节点的唯一标识符,即OID;L(Level)为该节点位于树的层数;C(Count)为该节点拥有子节点的数量;D(Descendants)为JSON嵌套结构,记录该节点拥有的子节点的唯一标识符和最小包围盒;D(Descendants)的详细结构为D:{{P,M},…,{P,M}},其中P(Pointer)指向其子节点的OID,M(MBR)为子节点的最小外包矩形,以GeoJSON形式组织。
按上述方法,所述的S4具体包括:
4.1、用户给定数据集名称、查询范围等查询条件;
4.2、依据给定的查询条件查询矢量元数据表中该空间域的几何元数据信息,获取对应索引元数据的ID信息;
4.3、从索引元数据表中获取R树索引表及其根节点的ID;
4.4、查询R树索引表,取出满足查询条件的矢量要素的索引项;
4.5、从矢量数据表中取出矢量数据,进行精过滤,最终得到查询结果。
按上述方法,所述的4.4中,查询R树索引表的具体方式包括如下步骤:
4.4.1、通过根节点的ID信息获取R树索引表中对应的键值对,将其取出并反序列化;
4.4.2、由GeoJSON中的几何信息判断各子节点的MBR与查询范围的关系,找出MBR与查询范围相交或在查询范围内的子节点,根据父索引项指向子索引节点的指针取出对应的子节点键值对并反序列化;
4.4.3、重复步骤4.4.2,直至查询到R树的叶子节点。
按上述方法,所述的S5中,删除矢量数据的过程包括:
5.1、查询矢量元数据表中待删除数据所在空间域的几何元数据信息,获取对应的索引元数据信息;
5.2、从索引元数据表中获取R树索引表及其根节点,依据R树节点最小外包矩形和查询框的几何关系,定位与待删除矢量要素关联的索引项;
5.3、删除矢量数据表中对应的矢量数据;
5.4、删除R树索引表中与该矢量数据相关联的索引项。
按上述方案,在***数据操作完成后,才会更新对应数据的索引信息,目的是为了保证内容条目的完整性。在非关系数据库中,错误是常态,如果先***索引项,在***索引项后***宕机,重启后***会认为该数据已经存入数据库中,造成数据丢失。
本发明的有益效果为:本发明方法将矢量数据的几何信息存储于GeoJSON文件,以键值对形式将数据编码入库存储;通过设计基于扁平化R树的索引结构,保证了空间上相邻实体保存在同一个或相邻的存储节点中;为分布式非关系数据库提供R树支持的矢量数据查询处理,并且能够利用非关系数据库的分布式存储特性进行多节点并行执行的R树查询操作,充分利用了非关系数据库分布式、高并发的特点,大大提高了查询效率;矢量数据的更新和删除都不会引起索引的错误,满足数据访问实时性的要求。
附图说明
图1为本发明一实施例的方法流程图。
图2为本发明一实施例提供的一种矢量要素MBR的空间分布。
图3为图2对应的R树结构示意图。
图4为本发明一实施例中矢量数据的存储结构样例。
图5为本发明一实施例建立的包括矢量数据和索引结构在内的库表结构及关联关系。
图6为矢量数据***与R树索引构建流程图。
图7为矢量数据查询流程图。
图8为矢量数据删除流程图。
具体实施方式
下面结合具体实例和附图对本发明做进一步说明。
如图1所示,本发明提供的一种基于扁平化R树的非关系数据库矢量数据管理方法,该方法具体包括:
101、在非关系数据库环境中,为矢量数据设计基于R树扁平化策略的辅助索引结构。
具体的,本发明实施例设计了一种面向HBase数据库的扁平化R树索引存储方案,该方案将R树节点唯一标识符作为行键,节点信息以JSON嵌套格式作为列族E中的各列存储于数据库中。其中,矢量数据的空间信息以GeoJSON格式组织。数据表中每行表示一个节点,相同索引的全部节点保存在同一个R树索引表中,详细结构如表1-1所示。
表1-1 R树索引表结构
R树索引表的各个字段及类型说明如表1-2所示。
表1-2 R树索引表结构说明
示例性的,本发明实施例中预设区域内的矢量数据位于相同空间域,分布情况如图2所示。设置R树的扇出系数M=3,每个节点边界范围以最小外包矩形MBR表示,以叶子节点存储关于矢量要素的索引项,对应的R树结构如图3所示。基于表1-2中的R树索引表结构,将图3中的R树展开为扁平化文档集合,如表1-3所示,使得树的查询操作可以由节点ID导航来完成。
表1-3 R树节点的扁平化存储
JSON详细结构为{ID,L,C,D}。其中ID(OID)为索引节点的唯一标识符,L(Level)为该节点位于树的层数,C(Count)为该节点拥有子节点的数量,D(Descendants)为JSON嵌套结构,记录该节点拥有的子节点的唯一标识符和最小包围盒。
D(Descendants)的详细结构为D:{{P,M},…,{P,M}},其中P(Pointer)指向其子节点的OID,M(MBR)为子节点的最小外包矩形,以GeoJSON形式组织。
102、建立包括矢量数据和索引结构在内的库表结构,库表结构中各数据表之间通过显式的关联记录与隐式的命名规则进行关联。
示例性的,本发明实施例中矢量数据在非关系数据库HBase中的存储、组织和管理涉及各类库表,除上述设计的R树索引表外,其它库表结构设计及说明如下:
矢量元数据表用于存储矢量元数据,对数据库中各矢量数据集的详细信息进行解释,并帮助索引***过滤一些无意义的请求。矢量元数据表命名为“VO_METADATA”,其行键为数据集的名称(DatasetName);元数据表包含必要列族(E)和可选列族(F)两个列族。其他由用户定义的字段放置在列族F下。元数据表的结构如表2-1所示。
表2-1 矢量元数据表结构
矢量元数据表的各个字段及类型说明如表2-2所示。
表2-2 矢量元数据表结构说明
索引元数据表中存储的索引元数据是R树空间索引的描述信息。该信息被矢量元数据信息引用,将矢量数据表与R树索引表相互关联,通过记录R树参数,进而决定R树节点的内部结构与算法的起始节点位置。索引元数据表命名为“IDX_METADATA”,其行键为索引表的名称(IndexTableName),详细结构如表3-1所示。
表3-1 索引元数据表结构
索引元数据表的各个字段及类型说明如表3-2所示。
表3-2 索引元数据表结构说明
矢量数据表中存储原始矢量数据信息。图4展示了本发明实施例中某一矢量要素在矢量数据表中的存储结构,采用GeoJSON形式对矢量数据的几何信息进行组织。具体的,几何信息保存在“GEOINFO”字段中,其中“type”字段标识了该要素的几何类型,“coordinate”字段保存了几何对象的顶点坐标数组。要素的非几何信息也通过不同的字段进行存储,如表示矢量要素名称的“NAME”字段。矢量数据表的详细结构如表4-1所示。
表4-1 矢量数据表结构
矢量数据表的各个字段及类型说明如表4-2所示。
表4-2 矢量数据表结构说明
具体的,针对HBase数据库的特点,设计了R树索引支持的矢量数据库模式,如图5所示。矢量数据表、R树索引表、矢量元数据表与索引元数据表的关联规则如下:
矢量元数据表中记录着矢量数据表的空间域名及其对应的命名空间,当一个矢量数据集合存在不止一个空间域时,将会在矢量元数据集合中存储多条记录。
每个空间域对应的R树索引表通过特定的命名规范与其对应的矢量数据表进行绑定,索引表的命名方式为“Rtree_空间域名_命名空间”,数据表的命名方式为“空间域名_命名空间”。
索引元数据信息通过记录ID的方式与矢量元数据表关联,同时R树索引表中的根节点也通过记录ID的方式与索引元数据表关联。
103、将矢量数据编码入库存储,几何和属性信息分别以GeoJSON和JSON形式进行组织,同时构建扁平化R树索引。
示例性的,本发明实施例提出的一种矢量数据***与R树索引构建流程图如图6所示。首先以矢量数据集为单位,将其中的所有矢量要素编码,写入到矢量数据表中。然后查询矢量元数据表中矢量要素所在空间域的几何元数据信息是否存在,若不存在,则在矢量元数据表中存储几何元数据信息,同时更新索引元数据信息。
示例性的,获取索引元数据ID,从索引元数据表中获取R树索引表及其根节点ID,导航寻找最佳***节点。其中,需要判断最佳***节点的子节点数量是否超出预设扇出系数。
具体的,从根节点出发,首先判断当前节点MBR是否包含待***矢量要素的MBR,若不包含,继续判断下一节点是否包含,直至包含待***矢量要素的MBR时,判断该节点的子节点MBR是否包含待***矢量要素MBR。最佳***节点应满足节点自身MBR包含待***矢量要素的MBR而其子节点MBR不包含待***矢量要素的MBR。导航至目的叶子节点后,判断当前节点的子节点数量是否超出预设扇出系数,若未超出,***关于矢量要素的索引项;否则,使用R树***策略进行节点***,再次进行id节点导航,将矢量要素的索引项******后的最佳节点。如果根节点发生***,在索引元数据表中更新根节点的信息。最后,更新R树索引项和元数据表信息,完成数据***操作。
在***数据操作完成后,才会更新对应数据的索引信息,目的是为了保证内容条目的完整性。在非关系数据库中,错误是常态,如果先***索引项,在***索引项后***宕机,重启后***会认为该数据已经存入数据库中,造成数据丢失。
104、提供对矢量数据的查询支持:当收到查询请求时,根据查询条件确定索引元数据ID,进而获取R树根节点ID,从而基于R树索引表,并行执行矢量数据的检索,最终返回查询结果。
示例性的,本发明实施例提出的一种矢量数据查询流程图如图7所示,包括如下步骤:
步骤1:用户给定数据集名称、查询范围等查询条件,本发明实施例中对应的查询范围如图2中查询框所示,获取查询多边形区域;
步骤2:查询矢量元数据表中该空间域的几何元数据信息,若信息不存在,则查询结束,数据集中不存在符合查询条件的矢量要素;若信息存在,获取对应索引元数据的ID;
步骤3:查询索引元数据表,获取与查询多边形区域对应的R树索引表及其根节点的ID;
步骤4:查询R树索引表,取出根节点的键值对并反序列化。由GeoJSON中记录的几何信息判断得知:图2中查询框与子节点N1的MBR相交,被子节点N2的MBR包含。根据父索引项指向子索引节点的指针,以多线程并行的方式从索引表中取出N1、N2节点对应的键值对,反序列化后进一步判断几何关系可知:查询框与子节点N4、N6、N7的MBR相交。递归的,并行取出N4、N6、N7对应的键值对并反序列化,使用多线程的方式并行判断几何关系得知:子节点L10、L16和L19的MBR落入查询框内,子节点L12和L18的MBR与查询框相交。判断可知,当前已查询至叶子节点,可得满足条件的叶子节点集合为:{L10,L12,L16,L18,L19};
步骤5:依据索引项从矢量数据表中取出矢量数据,通过精查询对所得数据进行几何信息过滤,得到符合查询条件的矢量数据集合。此外,该过滤过程还可以是属性信息过滤,例如建筑物的建筑面积是否大于2500m2,名称字符串中是否包含某商场名称等。
105、对矢量数据进行维护,包括更新和删除。
具体的,对数据的更新可以通过预先建立的基于扁平化策略的R树索引实时进行,其更新过程的实现方式与R树索引的建立过程类似。当数据库中存储的矢量数据被修改时,同时更新被修改数据影响到的节点的索引数据,保证了数据的实效性。
示例性的,本发明实施例提出的一种矢量数据删除流程图如图8所示,删除R树中叶子节点L17索引项对应的矢量数据流程包括如下步骤:
步骤1:查询矢量元数据表中待删除数据所在空间域的几何元数据信息,获取对应的索引元数据信息;
步骤2:查询索引元数据表,获取R树索引表及其根节点,依据R树节点最小外包矩形和查询框的几何关系,定位与待删除矢量要素关联的索引项;
步骤3:删除矢量数据表中对应的矢量数据;
步骤4:删除R树索引表中与该矢量数据相关联的索引项;
步骤5:更新R树索引表和索引元数据表。
本发明提供一种基于扁平化R树的非关系数据库矢量数据管理方法,面向新型非关系数据库,通过建立基于扁平化策略的R树索引,为分布式非关系数据库提供R树支持的矢量数据查询处理,并且能够利用非关系数据库的分布式存储特性,进行多节点并行执行的R树查询操作,从而支持面向非关系数据库的大规模矢量数据组织和管理,使得非关系数据库的海量存储、并行计算,以及高可用、高可靠等技术红利惠及到矢量数据类型。
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。
Claims (10)
1.一种非关系数据库中的矢量数据管理方法,其特征在于:本方法包括以下步骤:
S1、在非关系数据库环境中,为矢量数据设计基于R树扁平化策略的辅助索引结构;
S2、建立包括矢量数据和索引结构在内的库表结构,库表结构中各数据表之间通过显式的关联记录与隐式的命名规则进行关联;
S3、将矢量数据编码入库存储,几何和属性信息分别以GeoJSON和JSON形式进行组织,同时构建扁平化R树索引;
S4、当收到查询请求时,根据查询条件确定索引元数据ID,进而获取R树根节点ID,从而基于R树索引表,并行执行矢量数据的检索,最终返回查询结果;
S5、对非关系数据库中的矢量数据进行维护,包括更新和删除。
2.根据权利要求1所述的矢量数据管理方法,其特征在于:所述的S1中,基于R树扁平化策略的辅助索引结构具体设计步骤如下:
1.1、将矢量对象抽象为最小外包矩形MBR,空间位置相邻的MBR将递归合并成更高一级的MBR,最终形成一个分层的,基于最小外包矩形的树形结构;
1.2、将R树索引结构展开成扁平化的索引节点集合,即将每一索引节点表达为JSON结构,并将该节点的唯一标识作为父索引项指向子索引节点的指针;
1.3、设置R树的扇出系数M,除根节点外,规定其余R树节点的子节点数量位于区间[2,M]之间。
3.根据权利要求2所述的矢量数据管理方法,其特征在于:所述的R树节点中,R树叶节点的记录格式为<OID,MBR>,中间节点的记录格式为<OID,Pointer,MBR>;其中OID为该节点的唯一标识符,Pointer指向其子节点的OID,MBR为最小外包矩形。
4.根据权利要求1所述的矢量数据管理方法,其特征在于:所述的S2中,库表结构的设计如下:
2.1、以数据集形式管理多源异构的矢量数据,每一个矢量数据集组织逻辑相关、类型相同的矢量数据;
2.2、设计矢量数据表、R树索引表、矢量元数据表和索引元数据表,分别用来存储矢量数据集的矢量要素、索引结构,以及两者的元数据;
2.3、建立矢量数据表、R树索引表、矢量元数据表和索引元数据表这四类表之间的关联关系,每个矢量数据集对应一个矢量数据表、一个R树索引表,并分别在矢量元数据表和索引元数据表中进行元数据描述。
5.根据权利要求1所述的矢量数据管理方法,其特征在于:所述的S3具体包括:
3.1、以矢量数据集为单位,将其中的所有矢量要素编码,写入到矢量数据表中,几何和属性信息分别以GeoJSON和JSON形式进行组织;GeoJSON是基于JavaScript对象表示法的地理空间信息数据交换格式;
3.2、查询矢量元数据表中矢量要素所在空间域的几何元数据信息,获取对应的索引元数据ID;
3.3、从索引元数据表中获取R树索引表及其根节点ID,依据矢量要素最小外包矩形和索引项外包矩形的几何关系,导航到R树索引表的目的叶子节点,***关于矢量要素的索引项,更新R树索引表;
3.4、完成矢量数据集的写入后,再更新矢量元数据表和索引元数据表。
6.根据权利要求5所述的矢量数据管理方法,其特征在于:所述的3.3中,ID节点导航和R树索引表更新的具体方式包括如下步骤:
3.3.1、依据矢量要素最小外包矩形和索引项外包矩形的几何关系,使用ID节点导航寻找最佳***节点,并判断该节点的子节点个数是否超出所设定的扇出系数,若超出扇出系数,执行步骤3.3.2,否则执行步骤3.3.3;
3.3.2、进行节点***操作,通过R树节点***算法将该节点均分为两个新的节点,再次导航寻找最佳***节点;
3.3.3、将矢量要素的索引项***节点,并更新该节点;
3.3.4、若根节点发生***,在索引元数据表中更新根节点的信息。
7.根据权利要求5所述的矢量数据管理方法,其特征在于:所述JSON的结构为{ID,L,C,D};其中ID为索引节点的唯一标识符,即OID;L为该节点位于树的层数;C为该节点拥有子节点的数量;D为JSON嵌套结构,记录该节点拥有的子节点的唯一标识符和最小包围盒;
D的详细结构为D:{{P,M},…,{P,M}},其中P为Pointer的缩写,指向其子节点的OID;M为子节点的最小外包矩形MBR的缩写,以GeoJSON形式组织。
8.根据权利要求1所述的矢量数据管理方法,其特征在于:所述的S4具体包括:
4.1、用户给定数据集名称、查询范围等查询条件;
4.2、依据给定的查询条件查询矢量元数据表中该空间域的几何元数据信息,获取对应索引元数据的ID信息;
4.3、从索引元数据表中获取R树索引表及其根节点的ID;
4.4、查询R树索引表,取出满足查询条件的矢量要素的索引项;
4.5、从矢量数据表中取出矢量数据,进行精过滤,最终得到查询结果。
9.根据权利要求8所述的矢量数据管理方法,其特征在于:所述的4.4中,查询R树索引表的具体方式包括如下步骤:
4.4.1、通过根节点的ID信息获取R树索引表中对应的键值对,将其取出并反序列化;
4.4.2、由GeoJSON中的几何信息判断各子节点的MBR与查询范围的关系,找出MBR与查询范围相交或在查询范围内的子节点,根据父索引项指向子索引节点的指针取出对应的子节点键值对并反序列化;
4.4.3、重复步骤4.4.2,直至查询到R树的叶子节点。
10.根据权利要求1所述的矢量数据管理方法,其特征在于:所述的S5中,删除矢量数据的过程包括:
5.1、查询矢量元数据表中待删除数据所在空间域的几何元数据信息,获取对应的索引元数据信息;
5.2、从索引元数据表中获取R树索引表及其根节点,依据R树节点最小外包矩形和查询框的几何关系,定位与待删除矢量要素关联的索引项;
5.3、删除矢量数据表中对应的矢量数据;
5.4、删除R树索引表中与该矢量数据相关联的索引项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010387252.XA CN111639075B (zh) | 2020-05-09 | 2020-05-09 | 一种基于扁平化r树的非关系数据库矢量数据管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010387252.XA CN111639075B (zh) | 2020-05-09 | 2020-05-09 | 一种基于扁平化r树的非关系数据库矢量数据管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111639075A true CN111639075A (zh) | 2020-09-08 |
CN111639075B CN111639075B (zh) | 2023-05-12 |
Family
ID=72333187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010387252.XA Active CN111639075B (zh) | 2020-05-09 | 2020-05-09 | 一种基于扁平化r树的非关系数据库矢量数据管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111639075B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989079A (zh) * | 2021-04-22 | 2021-06-18 | 北京电信易通信息技术股份有限公司 | 一种新型图像数据检索的方法及*** |
CN113384898A (zh) * | 2021-06-10 | 2021-09-14 | 网易(杭州)网络有限公司 | 数据处理方法、装置、设备及存储介质 |
CN113536041A (zh) * | 2021-06-08 | 2021-10-22 | 中国铁路设计集团有限公司 | 一种铁路工程地理信息元数据批量快速采集方法 |
CN113946584A (zh) * | 2021-10-26 | 2022-01-18 | 中国矿业大学 | 面向海量矢量数据检索的qrb树索引方法 |
CN116756139A (zh) * | 2023-05-12 | 2023-09-15 | 中国自然资源航空物探遥感中心 | 一种数据索引方法、***、存储介质和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138560A (zh) * | 2015-07-23 | 2015-12-09 | 北京天耀宏图科技有限公司 | 基于多级空间索引技术的分布式空间矢量数据管理方法 |
CN105488043A (zh) * | 2014-09-15 | 2016-04-13 | 南京理工大学 | 基于Key-Value数据块的数据查询方法及*** |
CN107423368A (zh) * | 2017-06-29 | 2017-12-01 | 中国测绘科学研究院 | 一种非关系数据库中的时空数据索引方法 |
US20190102389A1 (en) * | 2017-10-04 | 2019-04-04 | Dell Products Lp | Storing and processing json documents in a sql database table |
-
2020
- 2020-05-09 CN CN202010387252.XA patent/CN111639075B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488043A (zh) * | 2014-09-15 | 2016-04-13 | 南京理工大学 | 基于Key-Value数据块的数据查询方法及*** |
CN105138560A (zh) * | 2015-07-23 | 2015-12-09 | 北京天耀宏图科技有限公司 | 基于多级空间索引技术的分布式空间矢量数据管理方法 |
CN107423368A (zh) * | 2017-06-29 | 2017-12-01 | 中国测绘科学研究院 | 一种非关系数据库中的时空数据索引方法 |
US20190102389A1 (en) * | 2017-10-04 | 2019-04-04 | Dell Products Lp | Storing and processing json documents in a sql database table |
Non-Patent Citations (1)
Title |
---|
杨成月,等: "基于非关系数据库的全球时空大数据组织管理研究" * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989079A (zh) * | 2021-04-22 | 2021-06-18 | 北京电信易通信息技术股份有限公司 | 一种新型图像数据检索的方法及*** |
CN113536041A (zh) * | 2021-06-08 | 2021-10-22 | 中国铁路设计集团有限公司 | 一种铁路工程地理信息元数据批量快速采集方法 |
CN113384898A (zh) * | 2021-06-10 | 2021-09-14 | 网易(杭州)网络有限公司 | 数据处理方法、装置、设备及存储介质 |
CN113384898B (zh) * | 2021-06-10 | 2024-01-30 | 网易(杭州)网络有限公司 | 数据处理方法、装置、设备及存储介质 |
CN113946584A (zh) * | 2021-10-26 | 2022-01-18 | 中国矿业大学 | 面向海量矢量数据检索的qrb树索引方法 |
CN116756139A (zh) * | 2023-05-12 | 2023-09-15 | 中国自然资源航空物探遥感中心 | 一种数据索引方法、***、存储介质和电子设备 |
CN116756139B (zh) * | 2023-05-12 | 2024-04-23 | 中国自然资源航空物探遥感中心 | 一种数据索引方法、***、存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111639075B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111639075B (zh) | 一种基于扁平化r树的非关系数据库矢量数据管理方法 | |
CN107423368B (zh) | 一种非关系数据库中的时空数据索引方法 | |
Rocha-Junior et al. | Top-k spatial keyword queries on road networks | |
US8768977B2 (en) | Data management using writeable snapshots in multi-versioned distributed B-trees | |
US9047333B2 (en) | Dynamic updates to a semantic database using fine-grain locking | |
Deng et al. | Best keyword cover search | |
CN109582677B (zh) | 基于孩子节点的多粒度分布式读写锁的r树索引优化方法 | |
US20100235344A1 (en) | Mechanism for utilizing partitioning pruning techniques for xml indexes | |
CN106933833A (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
Challa et al. | DD-Rtree: A dynamic distributed data structure for efficient data distribution among cluster nodes for spatial data mining algorithms | |
Tian et al. | A survey of spatio-temporal big data indexing methods in distributed environment | |
CN116541427A (zh) | 数据查询方法、装置、设备及存储介质 | |
de Souza Baptista et al. | NoSQL geographic databases: an overview | |
CN114372058A (zh) | 一种空间数据管理方法、装置、存储介质及区块链*** | |
Álvarez-García et al. | Compact and efficient representation of general graph databases | |
CN110347676B (zh) | 基于关系r树的不确定性时态数据管理与查询方法 | |
CN116881243A (zh) | 基于时间序列数据特征的学习型索引方法及*** | |
Min et al. | The mobile spatial DBMS for the partial map air update in the navigation | |
Rslan et al. | An efficient hybridized index technique for moving object database | |
Evangelidis et al. | Using the Holy Brick Tree for Spatial Data in General Purpose DBMSs | |
Tian et al. | Tinba: Incremental partitioning for efficient trajectory analytics | |
Van Oosterom et al. | Testing current DBMS products with real spatial data | |
Ilkhomjon et al. | About Database (Db) | |
Yan et al. | Big Data Storage Index Mechanism Based on Hierarchical Indexing and Concurrent Updating | |
SEMI-STRUCTURED et al. | Mohamad Hasan Evgeny Panidi Vladimir Badenko |
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 |