PostGIS vs. SQL Server para datos SIG


15

Así que recientemente comencé en una nueva compañía y tengo muchos usuarios de ArcGIS que parecen realmente interesados ​​en avanzar con una instancia de PostGIS para servir algunos datos a nuestros clientes. Si bien no tengo ningún problema con esto, somos un 95% de SQL Server y un 5% de Oracle. Nuestro SIG interno actual se ejecuta en SQL Server y aún no he escuchado ninguna queja.

Sé que SQL Server tiene muchas capacidades espaciales / geométricas mejoradas a partir de 2012, pero ¿hay alguna característica asesina en PostGIS que valga la pena ingresar a la nueva plataforma? He intentado investigarlo, pero no puedo encontrar nada realmente profundo o que no sea un sesgo completo.

Quiero darles las mejores herramientas para hacer su trabajo, pero también tengo que sopesar el hecho de que aprenderé Postgres / GIS desde el principio y eso es todo un viaje en sí mismo.


1
Si está sirviendo datos a clientes desde ArcGIS For Server, entonces la única consideración sería el rendimiento. Si bien tiene una gama más amplia de funcionalidad espacial, no creo que nada de esto sea una característica asesina o que ArcGIS lo requiera. Lamentablemente no tengo puntos de referencia sobre el rendimiento.
MickyT

El antiguo mantra de uso de lo que sabes ciertamente se aplica aquí. Cambiar a una plataforma diferente siempre parece una gran idea antes de embarcarse en el cambio. No mucho después, cuando llevas 6 meses y te das cuenta de que acabas de comenzar a obtener los conocimientos necesarios. ¿Has oído hablar del costo de oportunidad?
Max Vernon

2
No hay experiencia con productos ARC, pero cuando se habla solo de bases de datos. PostGIS es una implementación mucho más madura de la base de datos espacial que el servidor MSSQL, más ejemplos, más contenido gratuito. Si necesita hacer algo espacial relacionado con db, PostGIS tiene más opciones. PostGIS es gratuito, MS SQL no lo es, las bases de datos espaciales parecen tener una tendencia a crecer más de lo esperado. Así que hay problemas con las licencias, etc. Por supuesto, Linux + PostGIS tiene sus propios problemas si los administradores están más acostumbrados al entorno de Windows.
simplexio

Respuestas:


21

He trabajado con Postgres y SQL Server. Encontré que Postgres es superior en la funcionalidad SIG. Y aunque voy a detallar brevemente mis hallazgos a continuación, sugiero esto: Date un breve pero razonable período de tiempo para revisar la solución desconocida sobre la que conoces, con objetivos específicos en mente. Por ejemplo, tal vez un período de 2 semanas para instalar y aprender algunas funciones específicas que se están utilizando actualmente. Si encuentra que está atascado o le falta funcionalidad dentro de ese período de tiempo, entonces sabe que no es para usted. Es una inversión en investigación que amplía su visión y lo ayuda a darse cuenta de que puede haberse perdido algo de lo que no estaba al tanto antes, o simplemente confirmar que su curso actual es el correcto en este momento.

En lo que respecta a la base de datos, descubrí que Postgres tiene una curva de aprendizaje más corta y menos profunda. La documentación es simplemente increíble. SQL Server tiene bastante documentación, pero me resulta difícil de leer, ya que no hay suficientes ejemplos y tutoriales.

PostGIS vs SQL Server Spatial es similar a la documentación anterior, pero PostGIS supera a SQL Server Spatial en funcionalidad. Por ejemplo, Google Maps, y en menor grado Bing Maps, recientemente ha agregado soporte completo de geoJSON a su API de mapas. Bueno, PostGIS puede devolver fácilmente un resultado geoJSON directamente desde una consulta de base de datos usando ST_AsGeoJSON () . Este resultado de geoJSON se puede pasar directamente a lo que pueda entender geoJSON. SQL Server requiere que use una biblioteca y procesamiento adicionales , o que use ogr2ogr. Además, PostGIS tiene más de 300 funciones disponibles para la conversión de datos dentro y fuera de la base de datos, en comparación con SQL Server, que tiene alrededor de 70-100.


Tan pronto como necesite polígonos, use PostGIS: se ahorrará muchos problemas. Si solo necesita puntos, tal vez SQL-Server sea suficiente, pero también puede usar dos columnas decimales (no se recomiendan 2 columnas si necesita hacer cálculos de distancia; use GeoPoint). GeoPoint no se recomienda si utiliza EntityFramwork / LINQ2SQL / AverageCrappyORM.
Dilema

0

Me parece que la mejor base de datos no es su principal preocupación aquí y, en cambio, tiene dos consideraciones diferentes que se oponen entre sí, a saber, el conocimiento del negocio frente a los deseos del cliente. En última instancia, será una decisión comercial, no una decisión técnica.

Obviamente, hay un costo de oportunidad, como ha señalado Max en un comentario. No hay forma de evitar eso. Si va por la ruta de Postgres, considere obtener ayuda, en forma de un buen acuerdo de consultoría, un dba experimentado o ambos.

Sin embargo, si sus usuarios quieren PostGIS, puede ser una ganancia neta. ¿Cuánto más de sus servicios venderá haciendo el cambio? ¿Valdrá la pena el costo de oportunidad? Esas no son decisiones que se tomarán en función de qué base de datos es mejor a sus ojos o en términos de especificaciones técnicas, sino en términos de la curva de aprendizaje y el marketing.


Gran conocimiento sobre la elección en cuestión: gracias Chris.
LowlyDBA

Qué db es mejor es la principal preocupación aquí. El servidor SQL no puede manejar ese tamaño de datos (planet.osm). Además, pierde muchas características, que realmente necesita, si va a hacer más que la investigación académica (mosaicos vectoriales, geojson, etc.). Además, no puede manejar polígonos que van de un lado del ecuador al otro (estúpido), lo cual es una preocupación si necesita Brasil, Ecuador, Colombia, la República Democrática del Congo, Gabón, Kenia, Somalia, Malasia, Indonesia, Singapur, Papúa o el indio, el Pacífico o el Océano Atlántico, etc. Además, los errores si el polígono tiene la dirección equivocada - en lugar de la conversión automática ...
dilema
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.