空間數(shù)據(jù)庫(kù)管理系統(tǒng)哪家強(qiáng)?
作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學(xué),十多年數(shù)據(jù)庫(kù)管理與開(kāi)發(fā)經(jīng)驗(yàn),目前在一家全球性的金融公司從事數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)。CSDN學(xué)院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net
文章目錄
PostGIS
SpatiaLite
H2GIS
rasdaman
GeoMesa
更多
??博學(xué)之,審問(wèn)之,慎思之,明辨之,篤行之。——《中庸》
大家好!我是只談技術(shù)不剪發(fā)的 Tony 老師。
空間數(shù)據(jù)庫(kù)管理系統(tǒng)(Spatial DBMS)是一種用于高效存儲(chǔ)、操作和查詢空間數(shù)據(jù)的數(shù)據(jù)庫(kù)管理系統(tǒng)。空間數(shù)據(jù)代表了幾何空間中的對(duì)象,例如點(diǎn)、線和多邊形。
空間數(shù)據(jù)庫(kù)管理系統(tǒng)通常為空間數(shù)據(jù)提供了專用的數(shù)據(jù)類型,同時(shí)為了優(yōu)化空間數(shù)據(jù)集的訪問(wèn)提供了空間索引。例如,空間索引可以高效地檢索距離某一對(duì)象一定距離之內(nèi)的數(shù)據(jù)點(diǎn)。另外,空間數(shù)據(jù)庫(kù)管理系統(tǒng)還提供了操作空間對(duì)象或者執(zhí)行基于空間對(duì)象的操作功能。例如,計(jì)算對(duì)象之間的距離、對(duì)象合并或交叉以及計(jì)算對(duì)象的屬性(例如多邊形的面積)。
地理空間數(shù)據(jù)(Geospatial data)是空間數(shù)據(jù)的一個(gè)重要子集,用于處理描述地球表面位置的數(shù)據(jù)。地理信息系統(tǒng)(Geographic information systems、GIS)可以處理地理空間數(shù)據(jù)。
時(shí)空數(shù)據(jù)(Spatio-temporal data)是另一種常見(jiàn)的相關(guān)數(shù)據(jù)類型,它們將空間數(shù)據(jù)與時(shí)間戳相結(jié)合,從而為數(shù)據(jù)存儲(chǔ)和操作提供了另一個(gè)額外的維度。
下面給大家介紹幾個(gè)主流的空間數(shù)據(jù)庫(kù)管理系統(tǒng)。如果你覺(jué)得文章有用,歡迎評(píng)論??、點(diǎn)贊??、推薦??
PostGIS
PostGIS
PostGIS 是基于 PostgreSQL 對(duì)象關(guān)系數(shù)據(jù)庫(kù)的空間數(shù)據(jù)庫(kù)擴(kuò)展,它增加了對(duì)地理對(duì)象的支持,允許使用 SQL 執(zhí)行位置查詢。
PostGIS 增加了一些額外的數(shù)據(jù)類型(幾何、地理、格柵類型等)和相關(guān)的函數(shù)、操作符以及索引(基于 GiST 的 R-樹(shù)空間索引)支持,增強(qiáng)了 PostgreSQL 核心功能,使其成為了一個(gè)高性能、功能豐富、健壯的空間數(shù)據(jù)庫(kù)管理系統(tǒng)。
PostGIS 提供的功能包括:
基于 SQL 處理和分析矢量和柵格數(shù)據(jù)的功能,包括拼接、切割、變形、重新分類和收集/合并等。
用于細(xì)粒度柵格處理的柵格地圖代數(shù)。
可直接用于 SQL 語(yǔ)句的矢量和柵格數(shù)據(jù)的空間重投影函數(shù)。
支持通過(guò)命令行和 GUI 工具導(dǎo)入/導(dǎo)出 ESRI shapefile 矢量數(shù)據(jù),同時(shí)通過(guò)其他第三方開(kāi)源工具支持更多格式的導(dǎo)入/導(dǎo)出。
用于導(dǎo)入多種標(biāo)準(zhǔn)格式(GeoTiff、NetCDF、PNG、JPG 等)數(shù)據(jù)的命令行工具。
使用 SQL 展示和導(dǎo)入標(biāo)準(zhǔn)文本格式(KML、GML、GeoJSON、GeoHash 以及 WKT 等)的矢量數(shù)據(jù)。
使用 SQL 展示各種標(biāo)準(zhǔn)格式(GeoTIFF、PNG、JPG、NetCDF 等)的格柵數(shù)據(jù)。
可直接用于 SQL 語(yǔ)句的無(wú)縫格柵/矢量數(shù)據(jù)處理函數(shù),例如按幾何區(qū)域拉伸像素值、按區(qū)域運(yùn)行統(tǒng)計(jì)信息、按幾何體剪裁光柵以及光柵的矢量化等。
3D 對(duì)象的支持,包括空間索引和函數(shù)。
網(wǎng)絡(luò)拓?fù)渲С帧?br> Tiger Loader / Geocoder/ 反向 Geocoder / 使用美國(guó)人口普查 Tiger 數(shù)據(jù)。
PostGIS 是一個(gè)開(kāi)源空間信息基金會(huì) OSGeo 項(xiàng)目,遵循開(kāi)放地理空間信息聯(lián)盟 OGC 提供的 Simple Features for SQL Specification 規(guī)范。PostGIS 基于 GNU 通用公開(kāi)許可證(GPLv2 或者更高版本)發(fā)行,目前最新的版本為 PostGIS 3.1.2。
另外,pgRouting 為 PostGIS 提供了地理空間路由功能。
SpatiaLite
SpatiaLite
SpatiaLite 是一個(gè)基于 SQLite 的開(kāi)源代碼庫(kù),為后者提供了成熟的空間 SQL 功能支持。SpatiaLite 被完美地整合到 SQLite 之中,從而提供了一個(gè)完整而強(qiáng)大的空間數(shù)據(jù)庫(kù)管理系統(tǒng)(兼容 OGC-SFS 規(guī)范 )。
SQLite + SpatiaLite 可以作為 PostgreSQL + PostGIS 的替代產(chǎn)品。
SpatiaLite 基于 MPL 1.1、GPL v2.0 以及更高版本或者 LGPL v2.1 以及更高版本協(xié)議,目前最新的版本為 SpatiaLite 5.0.1。
另外,spatialite_gui 是 SpatiaLite 的圖形用戶界面,spatialite-tools 是 SpatiaLite 的命令行工具,librasterlite2 則為 SpatiaLite 提供了存儲(chǔ)和檢索大型格柵數(shù)據(jù)的功能。
H2GIS
H2GIS
H2GIS 是一個(gè)基于 H2 數(shù)據(jù)庫(kù)的空間擴(kuò)展,遵循開(kāi)放地理空間信息聯(lián)盟 OGC 提供的 Simple Features for SQL Specification 規(guī)范。
H2GIS 基于 LGPL 3 協(xié)議,目前最新的版本為 H2GIS 1.5.0。
另外,H2Network 為 H2GIS 提供了地理空間路由功能。
rasdaman
rasdaman(raster data manager)是一個(gè)靈活可擴(kuò)展的數(shù)組處理引擎,允許管理和分析大規(guī)模的多維數(shù)組,例如地球、空間、生命科學(xué)中的傳感器、圖像、仿真以及統(tǒng)計(jì)數(shù)據(jù)。從簡(jiǎn)單的地理圖像服務(wù)到復(fù)雜的分析,rasdaman 提供了關(guān)于時(shí)空格柵數(shù)據(jù)的全功能支持。rasdaman 支持各種常用的客戶端,包括 Leaflet、NASA WorldWind、QGIS、R 以及 python 等。
rasdaman
rasdaman 的主要特點(diǎn)包括:
快速:在小數(shù)秒內(nèi)并發(fā)訪問(wèn)百億億級(jí)歸檔和 TB 數(shù)量級(jí)對(duì)象。
可擴(kuò)展:從筆記本到高并發(fā)、高可用的云和服務(wù)器集群。
靈活性:使用“數(shù)組 SQL”進(jìn)行導(dǎo)航、提取、處理以及即席查詢。數(shù)組數(shù)據(jù)可用存儲(chǔ)在傳統(tǒng)數(shù)據(jù)庫(kù)、rasdaman 優(yōu)化文件或者已有歸檔中。
開(kāi)放標(biāo)準(zhǔn):遵循 OGC 標(biāo)準(zhǔn) WMS、WCS、WCS-T以及 WCPS。
免費(fèi):由 Jacobs University 管理的一個(gè)活躍、成熟的開(kāi)源項(xiàng)目,由 開(kāi)源空間信息基金會(huì) OSGeo 孵化。
節(jié)約成本:智能,經(jīng)濟(jì)的資源利用和免費(fèi)的源代碼。
GeoMesa
GeoMesa
GeoMesa 是一個(gè)開(kāi)源工具套件,支持基于分布式計(jì)算系統(tǒng)的大規(guī)模地理空間數(shù)據(jù)查詢和分析,可以讓用戶管理和分析物聯(lián)網(wǎng)、社交媒體、追蹤以及移動(dòng)電話應(yīng)用程序的海量時(shí)空數(shù)據(jù)集。GeoMesa 屬于 Eclipse 基金會(huì) LocationTech 項(xiàng)目組的一員。
GeoMesa 提供了基于 Accumulo、HBase、Google Bigtable、Redis 以及 Cassandra 等數(shù)據(jù)庫(kù)的時(shí)空索引,從而能夠存儲(chǔ)大量的點(diǎn)、線和多邊形數(shù)據(jù)。GeoMesa 還通過(guò)在 Apache Kafka 之上構(gòu)建分層空間語(yǔ)義來(lái)提供時(shí)空數(shù)據(jù)的近實(shí)時(shí)流處理。GeoMesa 通過(guò) GeoServer 集成了各種遵循開(kāi)放地理空間信息聯(lián)盟 OGC 的客戶端 API 和協(xié)議,例如 WFS 和 WMS。GeoMesa 支持基于 Apache Spark 的自定義分布式地理空間分析。
GeoMesa 基于 Apache Version 2.0 協(xié)議,目前最新的版本為 GeoMesa 3.2.0。
更多
除了以上介紹的數(shù)據(jù)庫(kù)系統(tǒng)之外,許多傳統(tǒng)的數(shù)據(jù)庫(kù)管理系統(tǒng)也提供了空間數(shù)據(jù)的支持,包括 Oracle、MySQL、Microsoft SQL Server、Db2、MongoDB、Redis、Elasticsearch 等,具體可以查看相關(guān)數(shù)據(jù)庫(kù)文檔。