CN116610672A - 一种基于时空编码的空管数据分布式存储与快速查询方法 - Google Patents
一种基于时空编码的空管数据分布式存储与快速查询方法 Download PDFInfo
- Publication number
- CN116610672A CN116610672A CN202310532125.8A CN202310532125A CN116610672A CN 116610672 A CN116610672 A CN 116610672A CN 202310532125 A CN202310532125 A CN 202310532125A CN 116610672 A CN116610672 A CN 116610672A
- Authority
- CN
- China
- Prior art keywords
- data
- space
- time
- coding
- longitude
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012544 monitoring process Methods 0.000 claims abstract description 80
- 238000013461 design Methods 0.000 claims description 20
- 230000011218 segmentation Effects 0.000 claims description 9
- 238000005192 partition Methods 0.000 claims description 8
- 238000007726 management method Methods 0.000 claims description 6
- 238000012512 characterization method Methods 0.000 claims description 3
- 230000009977 dual effect Effects 0.000 claims description 3
- 230000000704 physical effect Effects 0.000 claims description 3
- 230000002123 temporal effect Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 abstract description 3
- 238000010168 coupling process Methods 0.000 abstract description 3
- 238000005859 coupling reaction Methods 0.000 abstract description 3
- 238000007670 refining Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010006 flight Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000002898 library design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
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/2291—User-Defined Types; Storage 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/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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- 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
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Remote Sensing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于时空编码的空管数据分布式存储与快速查询方法。该方法首先对时间和全球航空运行范围内的空间进行离散化,细化了统一嵌套递归的数字化表达方式,构建了全球范围内的时空编码模型;设计了基于时空编码的空管监视和气象数据分布式数据库;进一步建立了基于空间编码和时间编码的二级索引方法;完善了时间和空间双重耦合条件下的查询方法,大大提高了空管海量数据的分布式存储和查询效率。
Description
技术领域
本发明涉及一种数据分布式存储与快速查询方法,特别是一种基于时空编码的空管数据分布式存储与快速查询方法。
背景技术
随着经济增长和国民收入水平的提高,航空运输量不断增长。为了进一步保障航班安全水平和运行效率,新的信息化集成系统不断引入空管中,全国流量、气象和情报服务中心相继成立并正式启动,实现全国范围内航班整体协同决策。与此同时,空管运行产生的业务数据总量呈现指数级增长,为了支撑海量运行数据采集、存储和处理,大数据相关技术与平台不断引入到空中交通管理领域中。
然而,目前这些数据一部分是以表的形式存储在结构化数据库(如oracle,mysql)中,另一部分仅是利用了大数据平台进行分布式存储备份。一方面传统结构型数据库无法满足海量数据的处理,另一方面大数据平台仅是用来作为数据存储功能,尚未对数据检索和关联做进一步优化,导致调取数据很慢,难以满足秒级相应需求,无法充分挖掘海量历史数据的价值。目前,针对海量时空数据的分布式存储和快速查询已经有大量研究,但是针对空管数据特性的存储查询和关联融合研究成果仍然较少。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于时空编码的空管数据分布式存储与快速查询方法。
为了解决上述技术问题,本发明公开了一种基于时空编码的空管数据分布式存储与快速查询方法,包括以下步骤:
步骤1:对地表空间和时间进行离散化划分,分别建立空间和时间的编码模型,包括:
步骤1-1:将全球地表空间的经纬度点投影至地球外切立方体中,得到六个正方形平面;对每一个投影面采用2*2等分逐级剖面;在每一个等级的离散平面上,采用Hilbert曲线顺序串联,形成各层级嵌套的全球经纬度离散编码模型,共30级;经纬度编码使用UNIT64存储,前三位表征当前经纬度点所在的投影面,后每两位表征一个层级;此外,还采用16进制对UNIT64编码从最高位开始进行字符解析,形成字符表征,得到经纬度编码字符串;
步骤1-2:对高度范围[-1,60km]进行二等分逐层剖分,最高剖分16级,至米级,形成二进制序列,并将其等价转为16进制字符串表征,得到高度编码字符串;
步骤1-3:对一年的时间跨度进行二等分逐层剖分,最高剖分25层级,至秒级,形成二进制序列,并将其等价转为Base32进制字符串表征,得到时间编码字符串。
步骤2:建立空管监视数据和气象数据的分布式存储数据库,并设计主键规则;
所述的分布式存储数据库为基于HBase的分布式数据库,分别为基于HBase的分布式空管监视数据库和基于HBase的分布式气象数据库。
所述的设计主键规则,包括:
步骤2-1:基于HBase的分布式空管监视数据库的主键设置如下:
Rowkey1=Prefix1+Tc+Lc+Hc
其中,Rowkey1为所述的分布式空管监视数据库的主键,+为字符串拼接操作;Tc为时间,采用步骤1-3中得到的时间编码字符串;Lc为经纬度,采用步骤1-1中得到的经纬度编码字符串,在此最高分辨率设定为十米级;Hc为高度,采用步骤1-2中得到的高度编码字符串;Prefix1为第一前缀字符,用于解决热点数据的问题;
所述的第一前缀字符Prefix1,设计如下:
Prefix1=mod(|Hash(Tc+Lc+Hc)|,nb)
其中,nb为空管监视数据库或气象数据库中表的预分区数;Hash是对字符串Tc+Lc+Hc取哈希值,||表示取绝对值,mod(,nb)表示对预分区数nb取余后转为字符串。
步骤2-2:基于HBase的分布式气象数据库的主键设置如下:
Rowkey2=Prefix2+Sc+Tc0+Lc0+Hc
其中,Rowkey2为所述的分布式气象数据库的主键,Sc为气象物理属性,;Tc0为气象表中的时间字符串编码;Lc0为气象数据中的经纬度编码;Prefix2为第二前缀字符。
所述的第二前缀字符Prefix2,设计如下:
Prefix2=mod(|Hash(Sc+Tc0+Lc0+Hc)|,nb)。
步骤3:建立空管监视数据、气象数据和计划数据的关联关系,建立时空编码平面,构建空管监视数据和气象数据的时空索引树;
所述的建立空管监视数据、气象数据和计划数据的关联关系,具体方法包括:
通过相同时空编码字符串建立空管监视数据和气象数据在固定时空编码层级上的关联索引关系;空管监视数据和计划数据的关联关系由航班号、起降时间和机场唯一确定,并在空管监视数据和对应计划数据中通过采用16位UUID方式建立唯一标识符。
所述的构建空管监视数据和气象数据的时空索引树,包括:
步骤3-1:将经纬度编码字符串的值作为x轴,时间编码字符串的值作为y轴,建立时空编码平面,时空编码平面中的点包含空管监视数据和气象数据,点值的属性为数据库中的主键;
步骤3-2:在时空编码平面上,基于KD树建立时空索引树,具体步骤如下:
步骤3-2-1,初始化分割轴:选取表征经纬度编码值的x轴为初始分割轴;
步骤3-2-2,确定当前节点:对当前数据按照分割轴的维度进行检索,找到中位数数据,并将其放到当前节点上;
步骤3-2-3,对数据进行左右支划分:将在所有当前分割轴维度上小于当前节点的数据划分至左支,将当前分割轴维度上大于当前节点的数据划分至右支;
步骤3-2-4,更新分割轴:若上一次分割是x轴,则将分割轴更为y轴;若上次分割轴为y轴,则将分割轴为x轴;
步骤3-2-5,确定子节点:分别在左右分支中进行步骤3-2-2。
步骤4:根据时间范围和空域范围双重查询,设计查询步骤,获取空管数据。
所述的设计查询步骤,即针对时空双重查询设置三步查询步骤,包括:
步骤4-1:将所需查询的时间范围的上下限采用步骤1-3方式进行编码,得到时间编码字符串范围;将所需查询的空域经纬度范围采用步骤1-1方式进行粗等级覆盖,得到经纬度编码值的范围;将上述范围进行通过KD索引树进行范围查询,获得空管监视数据和气象数据主键候选集;
步骤4-2:将所需查询的空域经纬度范围采用步骤1-1方式进行细等级覆盖,生成更为精确的经纬度编码范围;将所需查询的空域高度范围采用步骤1-2方式进行编码,生成高度编码范围;然后与候选集中主键进行匹配查询,获得精确符合查询条件的监视和气象数据所对应的HBase数据库中的主键;
步骤4-3:通过上述主键搜索得到HBase数据库中的空管监视数据和气象数据,然后通过空管监视数据中的唯一标识符,在计划数据库中查询,获取计划数据。
有益效果:
本发明建立实现了空管监视与气象数据的分布式存储,建立了以时空编码为基础的统一数据组织体系,将用户访问数据的空域范围和时间范围与数据本身所表达的时空编码形成了直接关联,提高了空管海量数据的检索和集成效率。
本发明解决了空管监视、气象和计划等数据关联度差难以检索的问题,构建了以时空编码为主题的关联关系,通过时空编码可以快速定位到指定空域和时间内的气象、监视和计划数据;同时本技术解决了现有大规模数据在分布式存储时,存在的数据热点问题,设计了分布式存储数据库的结构,在仅可能保留时空近邻关系等下,使监视和气象数据能更加均匀的分布在每一个区域中,支撑空管海量数据的快速导入;并且本发明解决了时空耦合查询条件下难以快速定位到数据的问题,构建了基于时空编码的时空所引树,实现了给定时间范围和空间范围的空管数据的快速查询;本发明可以快速推广至全球,实现全球航班数据的快速存储和查询。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是一种基于时空编码的空管数据分布式存储与快速查询方法流程图。
图2是地球外切立方体示意图。
图3是Hilbert空间填充曲线递归过程图。
图4是基于时空编码的索引树构建示意图。
图5是时空查询步骤示意图。
图6是不同经纬度编码等级覆盖下的多边形空域示意图。
具体实施方式
本发明针对空管海量监视、计划和气象数据来源不一、存储分散、难以有效关联和快速检索的问题,构建分布式存储模型,设计分布式查询策略,实现空管数据分布式存储和快速查询。本发明公开了一种基于时空编码的空管数据分布式存储与快速查询方法,包括如下步骤:
步骤1:对地表空间和时间进行离散化划分,分别建立空间和时间的编码模型;
步骤2:设计空管监视、气象等数据分布式存储数据库,明确其主键设计规则;
步骤3:建立监视、气象和计划数据的关联关系,以时空编码平面为基础,构建监视和气象的时空索引树;
步骤4:根据时间范围和空域范围双重查询,设计查询步骤,快速获取空管数据。
在一种实现方式中,步骤1中所述建立空间和时间编码模型,包括:
步骤1-1:将全球地表空间的经纬度点投影至地球外切立方体中,得到六个正方形平面;对每一个投影面采用2*2等分逐级剖面;在每一个等级的离散平面上,采用Hilbert曲线顺序串联,形成各层级嵌套递归的全球经纬度离散编码模型,共30级,从0.7cm2到85000000km2;编码使用UNIT64存储,前三位表征当前经纬度点所在的投影面,后每两位表征一个层级;采用16进制对UNIT64编码从最高位开始进行字符解析,形成字符表征。
步骤1-2:对高度范围[-1,60km]进行二等分逐层剖分,最高剖分16级,至米级,形成二进制序列,将其等价转为16进制字符串表征;
步骤1-3:对一年的时间跨度进行二等分逐层剖分,最高剖分25层级,至秒级,形成二进制序列,并将其等价转为Base32进制字符串表征;
在一种实现方式中,步骤2中所述构建了空管监视与气象数据分布式存储数据主键,包括:
步骤2-I:设计基于HBase的分布式监视数据库的主键Rowkey为:
Rowkey1=Prefix+Tc+Lc+Hc
其中,式中出现的“+”号为字符串拼接操作;Tc为时间采用步骤1-3中时间编码的字符串,在此设定为25层,共计5个字符;Lc为采用步骤1-1中经纬度编码后的字符串,在此最高分辨率设定为十米级,为18级,共10个字符;Hc为高度编码字符串,在此设定为16层级,共计4位;Prefix为前缀字符,是为了解决热点数据的问题,在此设计为
Prefix=mod(|Hash(Tc+Lc+Hc)|,nb)
其中,nb为数据库表的预分区数。前缀字符是对字符串Tc+Lc+Hc取哈希值,然后将其绝对值对预分区数nb取余后转为字符串得到。
步骤2-2:设计基于HBase的分布式气象数据库主键为:
Rowkey2=Prefix+Sc+Tc0+Lc0+Hc
其中Sc为表征了风(wd)、温度(te)、湿度(rh)等气象物理属性。Tc0为时间字符串编码,在气象表中精确到分钟,共4字符。Lc0表征经纬度编码,设定气象存储精度为10km,为10级共6个字符。高度编码仍然采用监视数据中相同样式。主键的前缀字符和监视计划表中的类似,为:
Prefix=mod(|Hash(Sc+Tc+Lc+Hc)|,nb)
在一种实现方式中,步骤3中所述通过时空编码值建立空管监视数据和气象数据在固定时空编码层级上的关联索引关系;空管监视数据和计划数据的关联关系由航班号、起降时间和机场唯一确定,并在监视数据和对应计划数据中通过采用16位UUID方式建立唯一标识符。
在一种实现方式中,步骤3中建立的统一划设的时空主题库监视和气象的时空索引树,包括:
步骤3-1:将经纬度编码值作为x轴,时间编码值为y轴,建立时空编码平面,平面中的点包含监视数据和气象数据,点值的属性为HBase中的主键;
步骤3-2:在该时空平面上,基于KD树建立时空所引树。
在一种方式实现中,步骤4中针对时空双重查询设置的三步查询步骤,包括:
步骤4-1:将所需查询的时间范围的上下限采用步骤1-3方式进行编码,得到时间编码字符串范围;将所需查询的空域经纬度范围(如经纬度点组成的多边形)采用步骤1-1方式进行粗等级覆盖,得到经纬度编码值的范围;将上述范围进行通过KD所引树树进行范围查询,获得监视数据和气象数据主键候选集。
步骤4-2:将所需查询的空域经纬度范围采用步骤1-1方式进行细等级覆盖,生成更为精确的经纬度编码范围;将所需查询的空域高度范围采用步骤1-2方式进行编码,生成高度编码范围;然后与候选集中主键进行匹配查询,获得精确符合查询条件的监视和气象数据所对应的HBase数据库中的主键;
步骤4-3:通过上述主键搜索得到HBase数据库中的空管监视数据和气象数据,然后通过监视数据中的唯一标识符,在计划数据库中查询,获取计划数据。
本发明建立实现了空管监视与气象数据的分布式存储,建立了以时空编码为基础的统一数据组织体系,将用户访问数据的空域范围和时间范围与数据本身所表达的时空编码形成了直接关联,提高了空管海量数据的检索和集成效率。
与现有技术相比,本发明解决了空管监视、气象和计划等数据关联度差难以检索的问题,构建了以时空编码为主题的关联关系,通过时空编码可以快速定位到指定空域和时间内的气象、监视和计划数据;同时本技术解决了现有大规模数据在分布式存储时,存在的数据热点问题,设计了分布式存储数据库的结构,在仅可能保留时空近邻关系等下,使监视和气象数据能更加均匀的分布在每一个区域中,支撑空管海量数据的快速导入;并且本发明解决了时空耦合查询条件下难以快速定位到数据的问题,构建了基于时空编码的时空所引树,实现了给定时间范围和空间范围的空管数据的快速查询;本发明可以快速推广至全球,实现全球航班数据的快速存储和查询。
实施例:
为了进一步清晰阐述本申请的技术方案和优点,下面结合附图和实施例对本发明做进一步详细说明。
本实施所示的一种面向分布式框架的巨量空管数据存储和查询方法,流程见图1,对地表空间和时间进行离散化划分,构建时空立方体模型,提取空管监视、计划和气象数据中的时空特征信息,通过空间填充曲线实现基于离散网格的混合索引,提高空管关联数据的存储和检索效率。
步骤1:对经纬度(θ,φ)、高度h和时间t进行离散化划分,建立编码模型。
对经纬度编码,首先需要在地球表面建立离散化网格。为了降低高纬度的畸变,将地表经纬度点(θ,φ)投影至地球外切正方体中,如图2所示。然后对每一面采用Hilbert曲线填充,Hilbert曲线填充过程如图3所示。编码采用UNIT64存储,前三位表征当前经纬度点所在的投影面,后每两位表征一个层级,共30级,从0.7cm2到85000000km2。中间每一级的变化都比较平缓,接近于4次方的曲线。此编码方法对多边形快速构造栅格填充,并进行空间近邻查找。该经纬度编码方法的优点是,在相同等级编码下全球栅格大小大致相等,保证了高纬度地理特征的解析,该方法下的建立的时空数据库可以方便推广至全球。
对高度和时间的编码均采用二进制剖分的方法。在高度编码中,对高度范围[-1,60km]进行二等分逐层剖分,最高剖分16级,至米级,形成二进制序列,将其等价转为16进制字符串表征。在时间编码中对一年的时间跨度进行二等分逐层剖分,最高剖分25层级,至秒级,形成二进制序列,并将其等价转为Base32进制字符串表征;base32编码表如表1所示。需要进一步说明的,本发明选择时间和高度剖分范围和层级仅仅用来说明方法实现途径,根据具体情形可以做进一步更改。
表1 base32编码表
十进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Base32字符 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | b | c | d | e | f | g |
十进制 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Base32字符 | h | j | k | m | n | p | q | r | s | t | u | v | w | x | y | Z |
步骤2:设计空管监视、气象等数据分布式存储数据库,明确其主键设计规则。
为了有效支撑海量空管监视、气象等数据存储和查询,本应用引入分布式列式数据库HBase。HBase针对海量数据具有很高的实时性,其具有可伸缩、高可靠、高效读取等特点,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。HBase的表结构有主键Rowkey、列族和列和单元内容组成,其存储按照主键的顺序。对Rowkey的直接访问获取数据是HBase中效率最高的方式,因此的Rowkey设计是HBase表设计中最重要的一部分,Rowkey设计既要满足业务查询的功能需求,也要满足业务查询的性能需求。
步骤2-1:监视数据分布式基础设计库设计。航空器监视数据通常包含经纬度、高度、时间、飞行速度等基本信息和航班号、二次代码等属性信息,其更新周期通常在秒级。设计监视数据的主键为:
Rowkey1=Prefix+Tc+Lc+Hc
其中,式中出现的“+”号为字符串拼接操作。Tc为时间采用上一步时间编码的字符串,选取一年为编码周期,考虑闰年时间,则时间编码范围为(0,31622400s),按上述编码方式共计5个字符。Lc为采用上步经纬度编码后的字符串,在空管监视数据库中最高分辨率设定为十米级,为18级,共10个字符。Hc为高度编码字符串,考虑到民航客机飞行高度问题,对高度范围(-1000,64536m)进行编码,将整形转为16进制,为转为字符串,共计4位。Prefix为前缀字符,是为了解决热点数据的问题,使数据更加均匀的分布在每台服务器上。在本发明中前缀为设计为
Prefix=mod(|Hash(Tc+Lc+Hc)|,nb)
其中,nb为监视数据库表的预分区数。前缀字符是对字符串Tc+Lc+Hc取哈希值,然后将其绝对值对预分区数nb取余后转为字符串得到。这种主键的前缀有两点好处,一是将时空连续的数据打散,避免热点数据的问题;另一个是主键的前缀是后面确定字符串的哈希值计算得到的,整个主键可以根据经纬度、高度和时间直接确定,避免了无法精准定位主键导致的属性更新与增添困难的问题。具体编码形成监视数据基础表如表2所示:
表2监视数据基础表样例
以主键“0002nd131364f87ef0349”为例,“00”为其前缀,“02nd1”为时间“2021-01-0200:00:01”的时间编码,“31364f87ef”为经纬度(106.006210,19.7879648)编码字符串,“0349”为高度841编码字符串。
步骤2-1:气象基础表的设计本发明选取的气象数据以栅格数据为主,包括但不仅限于高空风、气象雷达数据、数值预报数据等。栅格数据的主要组成有时间、经纬度、高度和物理属性值为主。设计气象数据表的主键为:
Rowkey2=Prefix+Sc+Tc0+Lc0+Hc
其中Sc为表征了物理属性。Tc0为时间字符串编码,在气象表中精确到分钟,共4字符。Lc0表征经纬度编码,设定气象存储精度为10km,为10级共6个字符。高度编码仍然采用监视数据中相同样式。主键的前缀字符和监视计划表中的类似,为:
Prefix=mod(|Hash(Sc+Tc0+Lc0+Hc)|,nb)
以高空风气象栅格数据为例,Sc采用字符“wd”代表,编码形成气象数据基础表如表3所示:
表3气象数据基础表样例
步骤3:建立监视、气象和计划数据的关联关系,以时空编码平面为基础,构建监视和气象的时空索引树。
步骤3-1:监视数据和气象数据通过上述编码后在同一等级时空编码下存在由时空编码确定的关联关系,本发明中监视数据和计划数据的关联关系通过两者共有的航班号、起降机场和时间进行条件判定。得到关联关系后,在计划表中采用16位UUID给出唯一标识符作为主键,并将该唯一标识符作为监视数据列的一个属性存入,最后构建监视数据的唯一标识符的索引库。
步骤3-2:将经纬度编码值作为x轴,时间编码值为y轴,建立时空编码平面,如图4(a)所示为经纬度编码平面示意图,平面中的点包含监视数据和气象数据,点值的属性为HBase中的主键。
步骤3-3:构建kd-tree索引,如图4(b)所示为kd索引树示意图,进一步提升时间范围和空间范围的双重条件查询效率。kd-tree可以看做是一种分割k维数据空间并进行存储的数据结构,其每个节点都是k维点的二叉树,所有的非叶子节点可以看做为将一个空间分割成两个半空间的超平面。节点左边的子树代表在超平面左边的点(即在分割的维度上小于超平面的点集合),节点右边的子树代表在超平面右边的点(即在分割的维度上大于超平面的点集合)。在本发明中,在时空编码平面上,对经纬度编码与时间编码点(Lc,Tc)对建立kd-tree,如图4所示,其具体步骤如下:
步骤3-3-1.初始化分割轴:这里选取表征经纬度编码值的x轴为初始分割轴;
步骤3-3-2.确定当前节点:对当前数据按照分割轴的维度进行检索,找到中位数数据,并将其放到当前节点上;
步骤3-3-3.对数据进行左右支划分:将在所有当前分割轴维度上小于当前节点的数据划分至左支,将当前分割轴维度上大于当前节点的数据划分至右支;
步骤3-3-4.更新分割轴:若上一次分割是x轴,则将分割轴更为y轴;若上次分割轴为y轴,则将分割轴为x轴;
步骤3-3-5.确定子节点:分别在左右分支中进行步骤3-3-2。
步骤4:根据时间范围和空域范围双重查询条件,设计查询步骤,快速获取空管数据。
针对上述存储设计,以时间范围和空间范围双重条件为例,设计时空查询方式,从数据库中获取满足查询条件的对象集合。在本发明中采取“三步走”方式,即分为过滤、精炼和提取两个执行阶段,具体方式如图5所示。
步骤4-1:所需查询的时间范围的上下限采用步骤1-3方式进行编码,得到时间编码字符串范围;将所需查询的空域经纬度范围(如经纬度点组成的多边形)采用步骤1-1方式进行粗等级覆盖,如图6(a)所示,得到经纬度编码值的范围;然后在时空二级索引中通过树搜索算法,快速得到监视和气象分布式数据库的主键,生成监视数据和气象数据候选集;
步骤4-2:将所需查询的空域经纬度范围采用步骤1-1方式进行细等级覆盖,生成更为精确的经纬度编码范围,如图6(b)所示;将所需查询的空域高度范围采用步骤1-2方式进行编码,生成高度编码范围;然后与候选集中的高精度编码进行匹配,对候选集中监视数据进行精炼,获得精确符合查询范围的监视主键;
步骤4-3:通过主键获取HBase数据库中的监视和气象数据,然后通过监视中唯一标识符,从计划库表中查询获取计划数据。
具体实现中,本申请提供计算机存储介质以及对应的数据处理单元,其中,该计算机存储介质能够存储计算机程序,所述计算机程序通过数据处理单元执行时可运行本发明提供的一种基于时空编码的空管数据分布式存储与快速查询方法的发明内容以及各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,ROM)或随机存储记忆体(random access memory,RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术方案可借助计算机程序以及其对应的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机程序即软件产品的形式体现出来,该计算机程序软件产品可以存储在存储介质中,包括若干指令用以使得一台包含数据处理单元的设备(可以是个人计算机,服务器,单片机,MUU或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明提供了一种基于时空编码的空管数据分布式存储与快速查询方法的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (10)
1.一种基于时空编码的空管数据分布式存储与快速查询方法,其特征在于,包括以下步骤:
步骤1:对地表空间和时间进行离散化划分,分别建立空间和时间的编码模型;
步骤2:建立空管监视数据和气象数据的分布式存储数据库,并设计主键规则;
步骤3:建立空管监视数据、气象数据和计划数据的关联关系,建立时空编码平面,构建空管监视数据和气象数据的时空索引树;
步骤4:根据时间范围和空域范围双重查询,设计查询步骤,获取空管数据。
2.根据权利要求1所述的一种基于时空编码的空管数据分布式存储与快速查询方法,其特征在于,步骤1中所述的分别建立空间和时间编码模型,包括:
步骤1-1:将全球地表空间的经纬度点投影至地球外切立方体中,得到六个正方形平面;对每一个投影面采用2*2等分逐级剖面;在每一个等级的离散平面上,采用Hilbert曲线顺序串联,形成各层级嵌套的全球经纬度离散编码模型,共30级;经纬度编码使用UNIT64存储,前三位表征当前经纬度点所在的投影面,后每两位表征一个层级;此外,还采用16进制对UNIT64编码从最高位开始进行字符解析,形成字符表征,得到经纬度编码字符串;
步骤1-2:对高度范围[-1,60km]进行二等分逐层剖分,最高剖分16级,至米级,形成二进制序列,并将其等价转为16进制字符串表征,得到高度编码字符串;
步骤1-3:对一年的时间跨度进行二等分逐层剖分,最高剖分25层级,至秒级,形成二进制序列,并将其等价转为Base32进制字符串表征,得到时间编码字符串。
3.根据权利要求2所述的一种基于时空编码的空管数据分布式存储与快速查询方法,其特征在于,步骤2中所述的分布式存储数据库为基于HBase的分布式数据库,分别为基于HBase的分布式空管监视数据库和基于HBase的分布式气象数据库。
4.根据权利要求3所述的一种基于时空编码的空管数据分布式存储与快速查询方法,其特征在于,步骤2中所述的设计主键规则,包括:
步骤2-1:基于HBase的分布式空管监视数据库的主键设置如下:
Rowkey1=Prefix1+Tc+Lc+Hc
其中,Rowkey1为所述的分布式空管监视数据库的主键,+为字符串拼接操作;Tc为时间,采用步骤1-3中得到的时间编码字符串;Lc为经纬度,采用步骤1-1中得到的经纬度编码字符串,在此最高分辨率设定为十米级;Hc为高度,采用步骤1-2中得到的高度编码字符串;Prefix1为第一前缀字符,用于解决热点数据的问题;
步骤2-2:基于HBase的分布式气象数据库的主键设置如下:
Rowkey2=Prefix2+Sc+Tc0+Lc0+Hc
其中,Rowkey2为所述的分布式气象数据库的主键,Sc为气象物理属性,;Tc0为气象表中的时间字符串编码;Lc0为气象数据中的经纬度编码;Prefix2为第二前缀字符。
5.根据权利要求4所述的一种基于时空编码的空管数据分布式存储与快速查询方法,其特征在于,步骤2-1中所述的第一前缀字符Prefix1,设计如下:
Prefix1=mod(|Hash(Tc+Lc+Hc)|,nb)
步骤2-2中所述的第二前缀字符Prefix2,设计如下:
Prefix2=mod(|Hash(Sc+Tc0+Lc0+Hc)|,nb)
其中,nb为空管监视数据库或气象数据库中表的预分区数;Hash()是对字符串取哈希值,||表示取绝对值,mod(,nb)表示对预分区数nb取余后转为字符串。
6.根据权利要求5所述的一种基于时空编码的空管数据分布式存储与快速查询方法,其特征在于,步骤3中所述的建立空管监视数据、气象数据和计划数据的关联关系,具体方法包括:
通过相同时空编码字符串建立空管监视数据和气象数据在固定时空编码层级上的关联索引关系;空管监视数据和计划数据的关联关系由航班号、起降时间和机场唯一确定,并在空管监视数据和对应计划数据中通过采用16位UUID方式建立唯一标识符。
7.根据权利要求6所述的一种基于时空编码的空管数据分布式存储与快速查询方法,其特征在于,步骤3中所述的构建空管监视数据和气象数据的时空索引树,包括:
步骤3-1:将经纬度编码字符串的值作为x轴,时间编码字符串的值作为y轴,建立时空编码平面,时空编码平面中的点包含空管监视数据和气象数据,点值的属性为数据库中的主键;
步骤3-2:在时空编码平面上,基于KD树建立时空索引树。
8.根据权利要求7所述的一种基于时空编码的空管数据分布式存储与快速查询方法,其特征在于,步骤3-2中所述的基于KD树建立时空索引树,具体步骤如下:
步骤3-2-1,初始化分割轴:选取表征经纬度编码值的x轴为初始分割轴;
步骤3-2-2,确定当前节点:对当前数据按照分割轴的维度进行检索,找到中位数数据,并将其放到当前节点上;
步骤3-2-3,对数据进行左右支划分:将在所有当前分割轴维度上小于当前节点的数据划分至左支,将当前分割轴维度上大于当前节点的数据划分至右支;
步骤3-2-4,更新分割轴:若上一次分割是x轴,则将分割轴更为y轴;若上次分割轴为y轴,则将分割轴为x轴;
步骤3-2-5,确定子节点:分别在左右分支中进行步骤3-2-2。
9.根据权利要求8所述的一种基于时空编码的空管数据分布式存储与快速查询方法,其特征在于,步骤4中所述的设计查询步骤,即针对时空双重查询设置三步查询步骤,包括:
步骤4-1:将所需查询的时间范围的上下限采用步骤1-3方式进行编码,得到时间编码字符串范围;将所需查询的空域经纬度范围采用步骤1-1方式进行粗等级覆盖,得到经纬度编码值的范围;将上述范围进行通过KD索引树进行范围查询,获得空管监视数据和气象数据主键候选集;
步骤4-2:将所需查询的空域经纬度范围采用步骤1-1方式进行细等级覆盖,生成更为精确的经纬度编码范围;将所需查询的空域高度范围采用步骤1-2方式进行编码,生成高度编码范围;然后与候选集中主键进行匹配查询,获得精确符合查询条件的监视和气象数据所对应的HBase数据库中的主键;
步骤4-3:通过上述主键搜索得到HBase数据库中的空管监视数据和气象数据,然后通过空管监视数据中的唯一标识符,在计划数据库中查询,获取计划数据。
10.根据权利要求9所述的一种基于时空编码的空管数据分布式存储与快速查询方法,其特征在于,步骤2-2中所述的气象物理属性的Sc,至少包括:风wd、温度te以及湿度rh。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310532125.8A CN116610672A (zh) | 2023-05-11 | 2023-05-11 | 一种基于时空编码的空管数据分布式存储与快速查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310532125.8A CN116610672A (zh) | 2023-05-11 | 2023-05-11 | 一种基于时空编码的空管数据分布式存储与快速查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116610672A true CN116610672A (zh) | 2023-08-18 |
Family
ID=87681094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310532125.8A Pending CN116610672A (zh) | 2023-05-11 | 2023-05-11 | 一种基于时空编码的空管数据分布式存储与快速查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116610672A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117033526A (zh) * | 2023-10-09 | 2023-11-10 | 中国地质大学(武汉) | 数据存储方法、数据查询方法、装置、设备及存储介质 |
CN117312319A (zh) * | 2023-10-09 | 2023-12-29 | 中科院成都信息技术股份有限公司 | 基于元数据的数据存储方法、装置、设备及存储介质 |
-
2023
- 2023-05-11 CN CN202310532125.8A patent/CN116610672A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117033526A (zh) * | 2023-10-09 | 2023-11-10 | 中国地质大学(武汉) | 数据存储方法、数据查询方法、装置、设备及存储介质 |
CN117312319A (zh) * | 2023-10-09 | 2023-12-29 | 中科院成都信息技术股份有限公司 | 基于元数据的数据存储方法、装置、设备及存储介质 |
CN117033526B (zh) * | 2023-10-09 | 2023-12-29 | 中国地质大学(武汉) | 数据存储方法、数据查询方法、装置、设备及存储介质 |
CN117312319B (zh) * | 2023-10-09 | 2024-09-03 | 中科院成都信息技术股份有限公司 | 基于元数据的数据存储方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844622B (zh) | 一种全空间信息表达方法及全空间信息系统 | |
CN116610672A (zh) | 一种基于时空编码的空管数据分布式存储与快速查询方法 | |
CN106528793B (zh) | 一种分布式空间数据库的时空分片存储方法 | |
CN108595582B (zh) | 一种基于社会信号的灾害性气象热点事件识别方法 | |
CN108205562B (zh) | 地理信息系统的定位数据存储、检索方法及其装置 | |
CN110765331A (zh) | 一种时空数据的检索方法及系统 | |
CN107766433A (zh) | 一种基于Geo‑BTree的范围查询方法及装置 | |
CN117520470A (zh) | 基于GeoSOT网格编码的气象数据管理方法、装置及电子设备 | |
CN108009265B (zh) | 一种云计算环境下的空间数据索引方法 | |
CN116860905B (zh) | 一种城市信息模型的空间单元编码生成方法 | |
CN116775661A (zh) | 基于北斗网格技术的空间大数据存储与管理方法 | |
CN112835997A (zh) | 一种基于GeoSOT网格的电网巡检空间网格编码方法 | |
CN109583467B (zh) | 一种电力气象数据融合方法和系统 | |
CN111414445B (zh) | 一种应用地理信息的地址反解析方法 | |
CN116775971A (zh) | 基于退化四叉树的时空网格索引查询方法和系统 | |
CN114090714B (zh) | 基于地理格网模型矿区生态演变大数据多尺度查询方法 | |
CN117435823B (zh) | 基于网格编码的时空数据服务方法及工业互联网平台 | |
CN105677840A (zh) | 一种基于多维渐增数据模型的数据查询方法 | |
CN113032372B (zh) | 一种基于ClickHouse数据库的空间大数据管理方法 | |
CN111506576B (zh) | 一种基于区域四叉树的地块编码方法及装置 | |
CN114116925A (zh) | 一种时空数据的查询方法及相关装置 | |
CN113377883A (zh) | 一种基于学习索引模型的多维数据查询方法 | |
CN117891961B (zh) | 基于地图产品聚合的数据级联共享方法及系统 | |
CN114706930B (zh) | 一种基于AOI数据和GeoHash算法的交通小区各类型用地面积统计方法 | |
CN116630564B (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 |