空间数据库选择
到底gis项目的数据库该用什么?一直困扰着我们,每次工作中遇到都是一阵唏嘘,过后重来还是一脸茫然。且度妈也是一通乱炖,费时费力到最后也很难找到找到我们想吃的菜!
今天,我就手头现有资料来慢慢逐步整理出我的一套选择方案。仅供参考。
首先来说明一下空间数据库的存在-空间数据库:
空间数据的存在必然是为空间数据服务的,然空间数据和一般的数据都是数据,到底有什么区别呢?用一般数据库来存管空间数据有什么问题或是潜在弊端呢?
学地理专业的我们都知道,空间数据的特征是:时空(空间、属性、时间),多维度(空间维、时间维、数据属性、数据来源、数据载体等),多尺度(空间多尺度、时间多尺度),海量(二维分块分图幅,垂直分层)。
就此分析:空间海量和现在的大数据大量级相言,空间海量?大数据海量?
大数据的通用数据库如何选型?
参考文章:大数据数据库选型:NoSQL数据库入门
文中入门性的介绍了noSQL并简单说了下优势,如下:
NoSQL数据库在大数据处理上,具有明显的一些优势,比如:
①灵活的可扩展性(增加廉价硬件)
②灵活的数据模型(视频/音频/位置地图等)
③很好的与云计算融合
准确来说,我没有投身大数据行业,对此了解也是寥寥(以后有时间会考虑深入),然半结构,非结构的数据在地理行业真是常出不穷的,尽管现在就工作而言,我们都在尽可能的考虑做到结构化从而实现批量操作,减少风险,避免重复劳动等。
貌似扯远了,接着说,
空间数据库选择:
通常且常用的要数postgressql+postgis了吧?
postgressql百度查询介绍:
- 对象-关系型数据库管理系统(ORDBMS)
- 开源
文章参考:PostgreSQL创建空间数据库
postgressql创建空间数据的核心即为:添加postgis扩展,使之成为支持空间类型的空间数据库create extension postgis;
既然postgis只是postgresql的一个扩展,那我们继续百度查询postgis:
我们就此又看到: - postgis遵循opengis的规范
- refraction公司最初在postgresql基础上研究空间数据库的实现
则可以理解为postgis+postgresql自发展以来,目的即为空间数据库。我们常用的空间数据库选择是历史的选择、人民的选择、也是极为正常的选择。具体版本结合、函数、弊端什么的,自行深入,或者等我更新,此文只考虑空间数据库选择这个话题。
自此,空间数据选择方案1:postgis+postgresql。
我们接着往下聊,
开源在发展,商用也不断进步,要不然,怎么赚钱呢~。当然,空间数据库的意义更多的在于空间数据管理。
地理专业都知道,esri和supermap是目前市场份额占有率最大的两个gis厂商,分开来看:
geodatabase
SuperMap SDX+空间数据库引擎
自此,空间数据选择方案2、3:esri、supermap。
我们接着往下聊,
开源,商业可用产品都出来之后是不是就稳定向下推进,不再平行发展了?答案显示是:不。不仅几大数据库厂商,而且致力爱好者也不答应。对应接着往下查,
文章参考:Compare SQL Server 2008 R2, Oracle 11G R2, PostgreSQL/PostGIS 1.5 Spatial Features
GIS: PostGIS/PostgreSQL vs. MySql vs. SQL Server?
深入浅出Oracle Spatial
主流空间数据的存储解决方案,我们看到推荐的5种解决方案,除过上面谈到的postgis+postgresql,还有oracle spatial,mocrosoftsql server(since 2008),mysql,sybase。
如此,我们便一个一个慢慢来分析且查资料说明,首先oracle:
参考文章:Oracle下载及安装超详细教程