CN106991149B - 一种融合编码和多版本数据的海量空间对象存储方法 - Google Patents
一种融合编码和多版本数据的海量空间对象存储方法 Download PDFInfo
- Publication number
- CN106991149B CN106991149B CN201710192554.XA CN201710192554A CN106991149B CN 106991149 B CN106991149 B CN 106991149B CN 201710192554 A CN201710192554 A CN 201710192554A CN 106991149 B CN106991149 B CN 106991149B
- Authority
- CN
- China
- Prior art keywords
- grid
- space
- coding
- query
- unit
- 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/29—Geographical information databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种融合编码和多版本数据的海量空间对象存储方法,采用“低精度网格编码,高精度空间对象编码”将多维空间数据转换到一维空间,然后采用“字典序定位数据块,低冗余度数据查询”策略来实现查询过程涉及到的冗余数据修剪,有效提升了范围查询性能。在编码精度为8个Base‑32字符时,一个网格单元的覆盖面积约为725m2,查询半径在1000m时,查询响应时间不超过1秒,能有效满足诸如智慧旅游中基于游客位置的旅游资源推荐等数据查询需求。
Description
技术领域
本发明涉及空间对象数据的分布式存储和访问技术领域,具体涉及一种融合编码和多版本数据的海量空间对象存储方法。
背景技术
位置服务需要频繁地对海量空间对象进行查询并获取实时响应,这需要高效的存储模型和访问优化技术支撑。以现有的关系模型数据库管理海量空间对象,首先由于需要采用固定模式来组织空间对象,不能很好地满足不同空间对象不同属性的存储需求,会导致大量的数据冗余;其次在处理诸如范围查询时,由于地理位置相近的空间对象并不需要满足存储位置临近性,在数据I/O上没有优势;同时,在面对大规模数据时扩展性上也存在不足。现有的分布式模型能够提供海量空间对象管理的可扩展性,但缺少面向空间对象数据的有效访问优化技术;同时,没有建立存储精度和访问性能之间的有效理论关系。
发明内容
本发明针对现有技术所存在的问题,提供一种融合编码和多版本数据的海量空间对象存储方法,其能够有效提升范围查询性能。
为解决上述问题,本发明是通过以下技术方案实现的:
一种融合编码和多版本数据的海量空间对象存储方法,包括如下步骤:
步骤1.将空间区域划分成等面积大小的网格单元,为每一个网格单元设计一个唯一的编码,并让每个空间对象位于且仅位于一个网格单元中;
步骤2.对各个网格单元中的空间对象进行编码,若同一网格单元的多个空间对象编码相同,则采用序号进行区分,并用三元组<网格单元编码,内部对象编码,对象序号>唯一地标识一个空间对象;
步骤3.基于key-value结构和列存储设计存储模式,每个网格单元及其所有空间对象存储为一个或若干个独立的物理存储单元,在每个物理存储单元中采用字典序组织空间对象顺序存储;
步骤4.基于网格单元编码的字典序为所有网格单元的物理存储单元建立字典序索引结构;按照字典序来组织网格单元编码,并采用顺序存储模式实现该组织结构,存储结构中的每一个元素项包含两项内容,第一项内容是网格单元编码,第二项内容是对应该编码的网格单元的物理存储位置;
步骤5.基于输入请求开展空间对象查询;输入表示形式为(<x,y>,r),其中<x,y>表示查询坐标起点,r表示查询半径,即查询以<x,y>为圆心,半径为r米范围内的所有空间对象。
上述步骤1中,网格单元的大小取决于网格单元编码精度P,该编码精度P根据空间对象的密度进行调整。
上述步骤2中,采用内部对象编码精度Q对各个网格单元中的空间对象进行编码,其中内部对象编码精度Q>网格单元编码精度P。
上述步骤2中,若网格单元中只有1个空间对象,则该空间对象编码的三元组结构为<P位网格单元编码,Q-P位内部对象编码,0>;若区域中有2个以上空间对象,则用<P位网格单元编码,Q-P位内部对象编码,X>;上述P表示网格单元编码精度;Q表示内部对象编码精度;X表示对象的唯一编码,为从0开始的顺序整数值。
上述步骤3中,采用<key,timestamp,value>结构来组织空间对象;其中,key对应空间对象所在的网格单元编码,timestamp对应空间对象的<内部对象编码,对象序号>二元组,即将网格单元内的对象视为该网格单元的一个多版本数据对象,value对应空间对象的所有属性。
上述步骤3中,value采用列簇形式组织,若干个属性存储为一个列簇。
上述步骤3中,将每个网格单元或者独立地存储为一个物理单元,或者基于属性集合的列簇划分存储为若干个独立的物理单元。
上述步骤3中,让网格单元内的所有对象基于timestamp的字典序进行顺序存储。
与现有技术相比,本发明采用“低精度网格编码,高精度空间对象编码”将多维空间数据转换到一维空间,然后采用“字典序定位数据块,低冗余度数据查询”策略来实现查询过程涉及到的冗余数据修剪,有效提升了范围查询性能。在编码精度为8个Base-32字符时,一个网格单元的覆盖面积约为725m2,查询半径在1000m时,查询响应时间不超过1秒,能有效满足诸如智慧旅游中基于游客位置的旅游资源推荐等数据查询需求。
附图说明
图1为面向海量空间对象的编码策略与分布式存储模型原理图。
具体实施方式
一种融合编码和多版本数据的海量空间对象存储方法,参见图1,具体包括如下步骤:
步骤1.将空间区域划分成等面积大小的网格单元,为每一个网格单元设计一个唯一的编码,并让每个空间对象位于且仅位于一个网格单元中。
(1)以Base-32字符为最小编码单位,设定一个编码精度P,网格单元的大小取决于编码精度P,精度P可以根据空间对象的密度进行调整。以地球为例,将其展开成平面结构后,若编码精度为P,则每一个网格单元的长和宽可以表示为:
其中,Clat表示赤道周长,Clng表示极地周长。
(2)基于P值对空间区域进行均匀划分,并对每一个区域进行编码。例如P取值5个Base-32字符,即25个bits,则可用13个bits来表示空间区域的长,12个bit表示空间区域的宽。第一次划分,将空间区域的长和宽分别等分得到四个面积大小相等的区域,对每个区域在长度维度上按照左0右1,宽度维度上按照上0下1的模式进行编码,每个区域都会得到自己唯一的编码。按照上述策略,分别对四个区域采取上述模式进行划分和编码,并依次划分下去。最后得到的每个网格单元都不重叠,且有一个精度为P的唯一编码。
步骤2.采用Q(Q>P)精度对各个单元格中的空间对象进行编码,若同一网格的多个空间对象编码相同,则采用序号进行区分,用三元组<网格单元编码,内部对象编码,对象序号>唯一地标识一个对象。
(1)设置一个编码精度Q(Q>P),采用第1步第2点的编码策略对网格单元继续划分编码,直至达到精度Q,精度Q表示的区域比精度P表示的区域面积更小。Q位编码的前P位对应网格单元编码,称为编码前缀;后(Q-P)位对应对象在网格单元内部的编码,称为编码后缀。
(2)用三元组结构对精度Q表示区域中的对象进行编码处理。若区域中只有一个对象,则该对象编码的三元组结构为<P位网格单元编码,Q-P位内部对象编码,0>;若区域中有2个以上空间对象,则用<P位网格单元编码,Q-P位内部对象编码,X>,其中X表示从0开始的顺序整数值,表示对象的唯一编码。
步骤3.基于key-value结构和列存储设计存储模式,每个网格单元及其所有空间对象存储为一个或若干个独立的物理存储单元,在每个物理存储单元中采用字典序组织空间对象顺序存储。
(1)采用<key,timestamp,value>结构来组织空间对象。其中,key对应空间对象所在的网格单元编码,空间对象的<内部对象编码,对象序号>二元组作为timestamp,即将网格单元内的对象视为该网格单元的一个多版本数据对象,value对应空间对象的所有属性,例如经度、维度、名称等。value采用列簇形式组织,若干个属性存储为一个列簇,从而保证空间对象的不同属性可以按照类别和用途分布存储。
(2)将每个网格单元或者独立地存储为一个物理单元,或者基于属性集合的列簇划分存储为若干个独立的物理单元,同时让网格单元内的所有对象基于timestamp的字典序进行顺序存储。
步骤4.基于网格单元编码的字典序为所有网格的物理存储单元建立字典序索引结构。按照字典序来组织网格单元编码,并采用顺序存储模式实现该组织结构,存储结构中的每一个元素项包含两项内容,第一项内容是网格单元编码,第二项内容是对应该编码的网格单元的物理存储位置。
步骤5.基于输入请求开展空间对象查询。输入表示形式为(<x,y>,r),其中<x,y>表示查询坐标起点,r表示查询半径,即查询以<x,y>为圆心,半径为r米范围内的所有空间对象。
(1)基于<x,y>和r计算出与该查询范围具有重叠区域的所有网格单元,以第1步第(1)点的长度a和宽度b,涉及到的网格单元数目N表示如下:
(2)以<x,y>为输入,按照第1步第(2)点得到该对象对应的Q位编码,获取该编码的P位前缀。基于第3步第(2)点构建的网格单元字典序索引查找到该网格单元对应的物理存储单元,将其读入内存。依次处理其余的N-1位网格单元。
(3)依次顺序扫描读入内存的网格单元,对其内部的每一个空间对象,计算其与<x,y>的空间距离,如果少于等于r,则输出该对象。
Claims (6)
1.一种融合编码和多版本数据的海量空间对象存储方法,其特征是,包括如下步骤:
步骤1.将空间区域划分成等面积大小的网格单元,为每一个网格单元设计一个唯一的编码,并让每个空间对象位于且仅位于一个网格单元中;其中网格单元的大小取决于网格单元编码精度P,该编码精度P根据空间对象的密度进行调整;
步骤2.对各个网格单元中的空间对象进行编码,若同一网格单元的多个空间对象编码相同,则采用序号进行区分,并用三元组<网格单元编码,内部对象编码,对象序号>唯一地标识一个空间对象;
步骤3.基于key-value结构和列存储设计存储模式,采用<key,timestamp,value>结构来组织空间对象,每个网格单元及其所有空间对象存储为一个或若干个独立的物理存储单元,在每个物理存储单元中采用字典序组织空间对象顺序存储;其中,key对应空间对象所在的网格单元编码,timestamp对应空间对象的<内部对象编码,对象序号>二元组,即将网格单元内的对象视为该网格单元的一个多版本数据对象,value对应空间对象的所有属性;
步骤4.基于网格单元编码的字典序为所有网格单元的物理存储单元建立字典序索引结构;按照字典序来组织网格单元编码,并采用顺序存储模式实现该组织结构,存储结构中的每一个元素项包含两项内容,第一项内容是网格单元编码,第二项内容是对应该编码的网格单元的物理存储位置;
步骤5.基于输入请求开展空间对象查询;输入表示形式为(<x,y>,r),其中<x,y>表示查询坐标起点,r表示查询半径,即查询以<x,y>为圆心,半径为r米范围内的所有空间对象。
2.根据权利要求1所述的一种融合编码和多版本数据的海量空间对象存储方法,其特征是,步骤2中,采用内部对象编码精度Q对各个网格单元中的空间对象进行编码,其中内部对象编码精度Q>网格单元编码精度P。
3.根据权利要求2所述的一种融合编码和多版本数据的海量空间对象存储方法,其特征是,步骤2中,若网格单元中只有1个空间对象,则该空间对象编码的三元组结构为<P位网格单元编码,Q-P位内部对象编码,0>;若区域中有2个以上空间对象,则用<P位网格单元编码,Q-P位内部对象编码,X>;上述P表示网格单元编码精度;Q表示内部对象编码精度;X表示对象的唯一编码,为从0开始的顺序整数值。
4.根据权利要求1所述的一种融合编码和多版本数据的海量空间对象存储方法,其特征是,步骤3中,value采用列簇形式组织,若干个属性存储为一个列簇。
5.根据权利要求4所述的一种融合编码和多版本数据的海量空间对象存储方法,其特征是,步骤3中,将每个网格单元或者独立地存储为一个物理单元,或者基于属性集合的列簇划分存储为若干个独立的物理单元。
6.根据权利要求5所述的一种融合编码和多版本数据的海量空间对象存储方法,其特征是,步骤3中,让网格单元内的所有对象基于timestamp的字典序进行顺序存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710192554.XA CN106991149B (zh) | 2017-03-28 | 2017-03-28 | 一种融合编码和多版本数据的海量空间对象存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710192554.XA CN106991149B (zh) | 2017-03-28 | 2017-03-28 | 一种融合编码和多版本数据的海量空间对象存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106991149A CN106991149A (zh) | 2017-07-28 |
CN106991149B true CN106991149B (zh) | 2020-11-10 |
Family
ID=59412382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710192554.XA Active CN106991149B (zh) | 2017-03-28 | 2017-03-28 | 一种融合编码和多版本数据的海量空间对象存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106991149B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109325086B (zh) * | 2018-08-10 | 2021-01-26 | 中国电子科技集团公司第二十八研究所 | 一种离散地理数据归档管理方法 |
CN109408507B (zh) * | 2018-09-27 | 2021-07-27 | 中国联合网络通信集团有限公司 | 多属性数据的处理方法、装置、设备及可读存储介质 |
CN111221924B (zh) * | 2018-11-23 | 2023-04-11 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、存储介质和网络设备 |
CN110609926A (zh) * | 2019-09-20 | 2019-12-24 | 中国银行股份有限公司 | 数据标签存储管理方法及装置 |
CN110909093B (zh) * | 2019-10-11 | 2020-10-30 | 中国人民解放军战略支援部队信息工程大学 | 智慧地标控制网的构建方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103383682A (zh) * | 2012-05-01 | 2013-11-06 | 刘龙 | 一种地理编码方法、位置查询系统及方法 |
CN104199860A (zh) * | 2014-08-15 | 2014-12-10 | 浙江大学 | 一种基于二维地理位置信息的数据集分片方法 |
CN104199986A (zh) * | 2014-09-29 | 2014-12-10 | 国家电网公司 | 基于hbase和geohash的矢量数据空间索引方法 |
CN105630968A (zh) * | 2015-12-23 | 2016-06-01 | 华中师范大学 | 面向Cassandra的分布式可扩展四叉树索引机制及基于该机制的查询方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013045319A (ja) * | 2011-08-25 | 2013-03-04 | Sony Corp | 情報処理装置、情報処理方法、およびプログラム |
BR112015023617B1 (pt) * | 2013-03-15 | 2022-05-31 | Twitter, Inc | Método e sistema para gerar um trie de geocódigo e facilitar buscas de geocódigo reverso |
CN106251164A (zh) * | 2016-03-21 | 2016-12-21 | 上海驴徒电子商务有限公司 | 一种景区推荐方法及系统 |
CN106453049B (zh) * | 2016-10-11 | 2019-06-11 | 福建师范大学 | 一种保护位置隐私的近邻检测方法 |
-
2017
- 2017-03-28 CN CN201710192554.XA patent/CN106991149B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103383682A (zh) * | 2012-05-01 | 2013-11-06 | 刘龙 | 一种地理编码方法、位置查询系统及方法 |
CN104199860A (zh) * | 2014-08-15 | 2014-12-10 | 浙江大学 | 一种基于二维地理位置信息的数据集分片方法 |
CN104199986A (zh) * | 2014-09-29 | 2014-12-10 | 国家电网公司 | 基于hbase和geohash的矢量数据空间索引方法 |
CN105630968A (zh) * | 2015-12-23 | 2016-06-01 | 华中师范大学 | 面向Cassandra的分布式可扩展四叉树索引机制及基于该机制的查询方法 |
Non-Patent Citations (2)
Title |
---|
"基于Spark的空间数据实时访存技术的研究";方金云 等;《地理信息世界》;20151231;第22卷(第6期);24-31 * |
"海量空间数据的分布式存储查询优化";杨超;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180115(第1期);I138-793 * |
Also Published As
Publication number | Publication date |
---|---|
CN106991149A (zh) | 2017-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106991149B (zh) | 一种融合编码和多版本数据的海量空间对象存储方法 | |
CN104199986B (zh) | 基于hbase和geohash的矢量数据空间索引方法 | |
CN110413611B (zh) | 数据存储、查询方法及装置 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN107798054B (zh) | 一种基于Trie的范围查询方法及装置 | |
CN111782742B (zh) | 一种面向大规模地理空间数据的存储和检索方法及其系统 | |
CN106933833B (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
CN107766433B (zh) | 一种基于Geo-BTree的范围查询方法及装置 | |
CN102982103A (zh) | 一种olap海量多维数据维存储方法 | |
CN112685407A (zh) | 一种基于GeoSOT全球剖分网格编码的空间数据索引方法 | |
CN111078807B (zh) | 位置查询方法、装置、计算机设备及存储介质 | |
EP2973046B1 (en) | System and method for compressing data in database | |
WO2021072874A1 (zh) | 基于双数组的位置查询方法、装置、计算机设备及存储介质 | |
CN111104457A (zh) | 基于分布式数据库的海量时空数据管理方法 | |
Wang et al. | Massive remote sensing image data management based on HBase and GeoSOT | |
CN103002061A (zh) | 一种长域名与短域名互相转化的方法及装置 | |
CN111125119A (zh) | 一种基于HBase的时空数据存储与索引方法 | |
CN114048204A (zh) | 基于数据库倒排索引的北斗网格空间索引方法和装置 | |
CN112214472A (zh) | 气象格点数据的存储及查询方法、装置及存储介质 | |
CN116775661A (zh) | 基于北斗网格技术的空间大数据存储与管理方法 | |
CN110069500B (zh) | 一种非关系型数据库动态混合索引方法 | |
CN109885638B (zh) | 一种三维立体空间索引方法及系统 | |
CN106649425A (zh) | 一种顾及空间邻近性的矢量空间数据编码方法 | |
CN108345607B (zh) | 搜索方法和装置 | |
CN111563080A (zh) | 一种空间数据索引和拓扑方法、装置及存储介质 |
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 |