YashanDB在地理信息系统(GIS)范畴的要害功用和技术优势
1 GIS的技能场景
地舆信息体系(Geographic Information System,简称GIS)是⼀种集成的核算机体系,⽤于捕获、存储、剖析、办理和展⽰一切类型的地舆数据。GIS的核⼼功用和原理可以从以下⼏个⽅⾯进⾏具体论述:
1.1 数据捕获与存储
GIS可以处理各种类型的地舆数据,包含但不限于地图、卫星图画、GPS数据、现场丈量数据等。这些数据可以经过数字化、扫描、直接从传感器获取或经过数据库导⼊等⽅式进⼊GIS体系。GIS⽀持多种数据格式,如⽮量数据(点、线、面)和栅格数据(像素或单元格)。
1.2 数据办理
GIS具有强⼤的数据库办理功用,可以有用地安排、存储和检索地舆数据。这包含数据的增修改查、版别操控、元数据办理和数据的备份与康复。GIS数据库体系一般与通⽤数据库办理体系(如PostGIS、Oracle Spatial等)集成,以⽀持杂乱的数据操作和查询。
1.3 数据展⽰
GIS可以将地舆数据以图形的方式展⽰在地图上。⽤⼾可以经过GIS软件创立和定制地图,包含挑选不同的地图款式、符号、颜⾊和透明度。GIS还⽀持地图的缩放、平移和标示,以及创立3D可视化和动画作用。
1.4 数据查询与剖析
GIS供给了强⼤的查询和剖析⼯具,答应⽤⼾依据空间方位和特点信息检索数据。常⻅的查询包含缓冲区剖析、路径剖析、⽹络剖析、叠加剖析等。GIS的空间剖析功用可以协助⽤⼾了解空间方式、趋势和联系,为决议计划供给⽀持。
1.5 地舆模型建⽴
GIS可以⽤于建⽴地舆模型,模仿实践国际的地舆过程和现象。例如,经过叠加不同的地舆数据层,可以剖析⼟有利地势⽤改变、环境影响评价、城市扩张等。GIS模型可以依据规矩、统计数据或机器学习算法来猜测未来的改变。
1.6 地图制造与输出
GIS⽀持地图的制造和输出,用户可以创立专业的地图和陈述,用于展现剖析成果或作为决议计划的依据。GIS输出的地图可以是纸质的、数字的或在线的,支撑多种比例尺和投影体系。
1.7 空间决议计划⽀持
GIS的中心价值在于其支撑空间决议计划的能⼒。经过GIS,用户可以评价不同计划的空间影响,进行危险剖析、资源办理和城市规划等。GIS的空间决议计划支撑功用使得它成为政府、企业和研究机构的重要东西。GIS的作业原理依据地舆坐标体系和地图投影,保证不同来历和规范的数据可以在同⼀地图上精确展展现。GIS软件经过算法处理地舆数据,执⾏空间剖析和模型模仿,并将成果以图形和陈述的方式出现给用户。
GIS技能的开展与核算机硬件的前进、数据库技能的提高以及遥感和GPS技能的应⽤严密相关。现代GIS体系一般集成了云核算、大数据和⼈⼯智能等先进技能,以提⾼数据处理能⼒和剖析精度。
2崖山数据库(YashanDB)在地舆信息体系(GIS)范畴要害
技能
崖⼭数据库(YashanDB)在地舆信息体系(GIS)范畴供给了⼀系列的功用和优化,以⽀持空间数据的办理、剖析和可视化。依据供给的信息,以下是崖⼭数据库针对GIS所供给的要害功用和特性:
2.1 原生 GIS 数据库引擎和中间件
崖⼭数据库⽀持“原生 GIS 数据库引擎和中间件 + 联系型数据库”的方式,这意味着它不只供给了传统的数据库功用,还集成了专⻔针对GIS应⽤的空间数据办理能⼒。
2.2 双形状空间能⼒
崖⼭数据库具有 GIS 引擎与 SDE(Spatial Database Engine)双形状空间能⼒,这使得它可以⽀持⽮量地图、激光云点、栅格、轨道、遥感印象等多种空间数据类型。
2.3 空间索引
YashanDB 空间数据库完成了依据 R-tree 的空间索引能⼒,这有助于提⾼空间数据的查询功率和功能。空间索引的物理存储复⽤了崖⼭原有 B-tree 的存储安排,承继了并发割裂部分锁机制等优势。
2.4 全节点 MVCC 支撑
崖⼭数据库的空间索引完成了全节点 MVCC(多版别并发操控),⽀持细粒度多版别办理和空值优化,保证了空间数据的⼀致性和并发拜访的功率。
2.5 空间核算引擎优化
崖⼭数据库的空间核算引擎在功能进步⾏了优化,特别是在处理⼤规划空间数据和杂乱查询时,功能体现优于商业和开源的空间核算引擎。
2.6 空间数据办理模型扩展
YashanDB 23.1 版别对地舆空间数据办理模型进⾏了扩展,增加了⽮量数据、规范函数、空间索引等功用,使得数据库具有高功能地舆空间⽮量数据办理能⼒。
2.7 适配 GIS 渠道
崖⼭数据库活跃与 GIS 渠道进⾏协作,完成了与中地数码 MapGIS 和超图 SuperMapGIS 的适配验证,一起打造出全国产化处理⽅案。
2.8 使用事例
崖⼭空间数据库作为核⼼时空数字底座,已被应⽤于深圳⻰华区数字孪⽣城市等项⽬,展⽰了其在实践事务场景中的应⽤价值。
2.9 未来规划
崖⼭数据库在空间数据办理⽅⾯还在继续优化和拓宽,未来的规划包含⽀持更⼤规划的空间应⽤、空间数据的分布式并⾏核算、时空数据冷热别离存储等⽅向。
3崖山数据库(YashanDB)在空间索引方面的技能优势
崖⼭数据库(YashanDB)在空间索引⽅⾯的技能查询功能首要体现在以下⼏个⽅⾯:
3.1 依据 R-tree 的空间索引结构
崖⼭数据库采⽤了 R-tree 这种平衡树结构作为其空间索引的根底。R-tree 是⼀种专为空间数据规划的索引结构,它可以有用地安排和检索多维空间中的数据。经过将空间目标依照其鸿沟框(Bounding
Box)进⾏区分和层次化办理,R-tree 可以在查询时快速定位到相关的空间数据,从⽽提⾼查询功率。
3.2 外包框优化
在 R-tree 索引中,每个节点都有⼀个外包框,它包含了该节点下一切⼦节点的鸿沟框。崖⼭数据库经过⾃习惯算法优化了外包框的核算,关于较⼤的空间目标,体系可以提早核算其外包框,保证提取外包框的 I/O 耗费可控。这种优化减少了不必要的数据拜访,提⾼了查询功能。
3.3 物理存储的复用
崖⼭数据库的空间索引在物理存储上复⽤了原有的 B-tree 存储安排,这意味着空间索引可以承继Btree 在数据办理⽅⾯的优势,如并发割裂部分锁机制等。这种复⽤不只提⾼了空间索引的功率,还减少了体系的杂乱性和保护本钱。
3.4 功能测验与优化
崖山数据库在功能测验⽅⾯进⾏了⼤量⼯作,特别是在处理⼤规划空间数据和杂乱查询时。经过与商业和开源的空间核算引擎进⾏对⽐,崖⼭数据库展⽰了其在空间核算功能上的优势,这表明其空间索引的优化是有用的。
4 GIS的R-tree功能测验比照
4.1 测验目标
本次测验的目标是YashanDB、PostgreSQL单机的rtree功能对⽐测验(表数据量、表数据相同、表结构⼀致,表上仅带R-tree索引)。测验环境使⽤统⼀参数标准的虚拟机, YashanDB和PostgreSQL布置在同⼀台机器上。
4.2 测验场景
4.2.1带索引的状况
功能场景⼀:
YashanDB:
select count(OGR_FID) from GIS_OSM_ROADS_FREE_1 where ST_CoveredBy
(YAS_GEOMETRY, st_geomfromtext('POLYGON((115.416827 39.442078,117.508251 39.442078,
117.508251 41.058964, 115.416827 41.058964, 115.416827 39.442078))', 4326));
PostgreSQL:
点击检查代码select count(gid) from GIS_OSM_ROADS_FREE_1 where ST_CoveredBy (geom,
st_geomfromtext('POLYGON((115.416827 39.442078,117.508251 39.442078, 117.508251
41.058964, 115.416827 41.058964, 115.416827 39.442078))', 4326));
功能场景⼆:
YashanDB:
select count(a.OGR_FID),count(c.OGR_FID) from GIS_OSM_ROADS_FREE_1 a,
WORLD_LAKES c where ST_contains(c.YAS_GEOMETRY,a.YAS_GEOMETRY);
PostgreSQL:
点击检查代码select count(a.gid),count(c.gid) from GIS_OSM_ROADS_FREE_1 a, WORLD_LAKES c
where ST_contains(c.geom,a.geom);
4.2.2不带索引的状况,使⽤的功能场景⼆的句子
YashanDB:
点击检查代码select count(OGR_FID) from GIS_OSM_ROADS_FREE_1 where ST_CoveredBy
(YAS_GEOMETRY, st_geomfromtext('POLYGON((115.416827 39.442078,117.508251 39.442078,
117.508251 41.058964, 115.416827 41.058964, 115.416827 39.442078))', 4326));
PostgreSQL:
点击检查代码
select count(gid) from GIS_OSM_ROADS_FREE_1 where ST_CoveredBy (geom,
st_geomfromtext('POLYGON((115.416827 39.442078,117.508251 39.442078, 117.508251
41.058964, 115.416827 41.058964, 115.416827 39.442078))', 4326));
4.2.3创立索引
YashanDB:
点击检查代码create rtree index OSI_14506 on GIS_OSM_ROADS_FREE_1(YAS_GEOMETRY);
PostgreSQL:
点击检查代码
create index index_GIS_OSM_ROADS_FREE_1 on GIS_OSM_ROADS_FREE_1 using
rtree (geom);
4.2.4 WORLD_COUNTRIES的数据量加到60万+
YashanDB:
点击检查代码select count(OGR_FID) from WORLD_COUNTRIES where ST_Within (YAS_GEOMETRY,
st_geomfromtext('POLYGON((-69.882232666015625 12.411109924316406, -69.946945190429688
12.436665534973145, -70.059036254882812 12.540207862854004, -70.059661865234375
12.627776145935059, -70.033195495605469 12.618331909179688, -69.932235717773438
12.528055191040039, -69.896957397460938 12.480833053588867, -69.891403198242188
12.472221374511719, -69.885559082031250 12.457777023315430, -69.874862670898438
12.415276527404785, -69.882232666015625 12.411109924316406))', 4326));
PostgreSQL:
点击检查代码
select count(gid) from WORLD_COUNTRIES where ST_Within (geom,
st_geomfromtext('POLYGON((-69.882232666015625 12.411109924316406, -69.946945190429688
12.436665534973145, -70.059036254882812 12.540207862854004, -70.059661865234375
12.627776145935059, -70.033195495605469 12.618331909179688, -69.932235717773438
12.528055191040039, -69.896957397460938 12.480833053588867, -69.891403198242188
12.472221374511719, -69.885559082031250 12.457777023315430, -69.874862670898438
12.415276527404785, -69.882232666015625 12.411109924316406))', 4326));
4.3 测验成果汇总
全体的测验数据优于PostgreSQL,特别是创立R-tree索引的速度,单个场景⽐如数据来历于表,YashanDB没有对表数据的缓存,相对PostgreSQL会慢⼀点。
汇总数据,采⽤的是三次执⾏成果的平均值,选用四舍五入