PostGIS vs. SQL Server für GIS-Daten


15

Ich bin vor kurzem bei einem neuen Unternehmen gestartet und habe viele ArcGIS-Benutzer, die sehr daran interessiert zu sein scheinen, eine PostGIS-Instanz zu verwenden, um unseren Kunden einige Daten bereitzustellen. Ich habe kein Problem damit, aber wir sind zu 95% ein SQL Server- und zu 5% ein Oracle-Shop. Unser aktuelles internes GIS läuft unter SQL Server und ich habe noch keine Beschwerden zu hören.

Ich weiß, dass SQL Server seit 2012 eine Menge verbesserter räumlicher / geometrischer Funktionen bietet. Gibt es jedoch Killer-Features in PostGIS, für die es sich lohnt, in die neue Plattform einzusteigen? Ich habe versucht, es zu recherchieren, aber ich kann nichts wirklich Tiefes finden, oder das ist nicht ganz voreingenommen.

Ich möchte ihnen die besten Werkzeuge geben, um ihre Arbeit zu erledigen, aber ich muss auch die Tatsache abwägen, dass ich von Anfang an Postgres / GIS lernen werde, und das ist eine ganze Reise für sich.


1
Wenn Sie mit ArcGIS For Server Daten für Clients bereitstellen, ist die einzige Überlegung die Leistung. Es verfügt zwar über einen größeren Bereich an räumlichen Funktionen, ich glaube jedoch nicht, dass dies eine Killerfunktion ist oder wahrscheinlich von ArcGIS benötigt wird. Leider habe ich keine Leistungsmaßstäbe.
MickyT

Das uralte Mantra des Gebrauchs, was Sie wissen, gilt hier mit Sicherheit. Der Wechsel zu einer anderen Plattform scheint immer eine gute Idee zu sein, bevor Sie mit der Änderung beginnen. Nicht viel später, wenn Sie 6 Monate alt sind und feststellen, dass Sie gerade erst begonnen haben, das notwendige Wissen zu erwerben. Schon mal was von Opportunitätskosten gehört?
Max Vernon

2
Keine Erfahrung mit ARC-Produkten, sondern nur mit Datenbanken. PostGIS ist weitaus ausgereifter in der Implementierung von räumlichen Datenbanken als MSSQL-Server, mehr Beispiele, mehr kostenlose Inhalte. Wenn Sie in db etwas räumliches tun müssen, stehen Ihnen in PostGIS mehr Optionen zur Verfügung. PostGIS ist kostenlos, MS SQL jedoch nicht. Geodatenbanken scheinen tendenziell größer zu werden als erwartet. So gibt es Kopfschmerzen von der Lizenzierung etc ... Natürlich hat Linux + PostGIS seine eigenen Probleme, wenn Administratoren mehr an die Windows-Umgebung gewöhnt sind.
Simplexio

Antworten:


21

Ich habe sowohl mit Postgres als auch mit SQL Server gearbeitet. Ich fand, dass Postgres in der GIS-Funktionalität überlegen ist. Und während ich im Folgenden kurz auf meine Ergebnisse eingehen werde, schlage ich Folgendes vor: Geben Sie sich einen kurzen, aber angemessenen Zeitraum, um die unbekannte Lösung anhand bestimmter Ziele zu überprüfen. Beispiel: Möglicherweise 2 Wochen, um bestimmte Funktionen zu installieren und zu erlernen, die derzeit verwendet werden. Wenn Sie feststellen, dass Sie innerhalb dieses Zeitraums nicht weiterkommen oder keine Funktionalität haben, wissen Sie, dass dies nichts für Sie ist. Es ist eine Investition in die Forschung, die Ihre Sicht erweitert und Ihnen hilft, zu erkennen, dass Sie möglicherweise etwas übersehen haben, von dem Sie vorher nichts wussten, oder einfach zu bestätigen, dass Ihr aktueller Kurs jetzt der richtige ist.

In Bezug auf die Datenbank stellte ich fest, dass Postgres eine kürzere und flachere Lernkurve aufweist. Die Dokumentation ist einfach unglaublich. SQL Server hat eine ganze Reihe von Dokumentationen, aber ich finde viele davon schwer zu lesen, mit nicht genügend Beispielen und Tutorials.

PostGIS und SQL Server Spatial sind in Bezug auf die Dokumentation ähnlich wie oben, aber PostGIS schlägt die Hosen von SQL Server Spatial in der Funktionalität. Zum Beispiel hat Google Maps und in geringerem Maße Bing Maps kürzlich die volle geoJSON-Unterstützung zu seiner Karten-API hinzugefügt. Nun, PostGIS kann mit ST_AsGeoJSON () problemlos ein geoJSON-Ergebnis direkt aus einer Datenbankabfrage zurückgeben . Dieses geoJSON-Ergebnis kann dann direkt an alles übergeben werden, was geoJSON verstehen kann. Für SQL Server müssen Sie eine zusätzliche Bibliothek und Verarbeitung verwenden oder ogr2ogr verwenden. Darüber hinaus stehen in PostGIS über 300 Funktionen für die Datenkonvertierung in und aus der Datenbank zur Verfügung, verglichen mit SQL Server mit etwa 70 bis 100 Funktionen.


Verwenden Sie PostGIS, sobald Sie Polygone benötigen - Sie sparen sich viel Ärger. Wenn Sie nur Punkte benötigen, reicht SQL-Server möglicherweise aus, aber Sie können auch nur zwei Dezimalspalten verwenden (zwei Spalten werden nicht empfohlen, wenn Sie Entfernungsberechnungen durchführen müssen - verwenden Sie GeoPoint). GeoPoint wird nicht empfohlen, wenn Sie EntityFramwork / LINQ2SQL / AverageCrappyORM verwenden.
Quandary

0

Es scheint mir, dass die Frage, welche Datenbank besser ist, hier nicht Ihr Hauptanliegen ist. Stattdessen haben Sie zwei unterschiedliche Überlegungen, die sich gegenseitig stören: Geschäftskenntnisse und Kundenwünsche. Letztendlich wird dies eine Geschäftsentscheidung sein, keine technische Entscheidung.

Offensichtlich entstehen Opportunitätskosten, wie Max in einem Kommentar angemerkt hat. Daran führt kein Weg vorbei. Wenn Sie die Postgres-Route wählen, sollten Sie in Betracht ziehen, Hilfe in Form einer guten Beratungsvereinbarung, einer erfahrenen DBA oder beidem zu erhalten.

Wenn Ihre Benutzer PostGIS wünschen, kann dies jedoch ein Nettogewinn sein. Wie viel mehr von Ihren Dienstleistungen werden Sie durch den Wechsel verkaufen? Lohnt es sich in Bezug auf die Opportunitätskosten? Dabei handelt es sich nicht um Entscheidungen, die auf der Grundlage getroffen werden, welche Datenbank in Ihren Augen oder in Bezug auf technische Spezifikationen besser ist, sondern in Bezug auf die Lernkurve und das Marketing.


Toller Einblick in die Auswahl - danke Chris.
LowlyDBA

Welche Datenbank besser ist, ist hier von größter Bedeutung. SQL-Server ist nicht in der Lage, diese Datenmenge (planet.osm) zu verarbeiten. Außerdem fehlen viele Funktionen, die Sie tatsächlich benötigen, wenn Sie mehr als nur akademische Forschung betreiben möchten (Vektorkacheln, Geojson usw.). Es kann auch keine Polygone verarbeiten, die von einer Seite des Äquators zur anderen verlaufen (dumm). Dies ist ein Problem, wenn Sie Brasilien, Equador, Kolumbien, Demokratische Republik Kongo, Gabun, Kenia, Somalia, Malaysia, Indonesien, Singapur benötigen. Papua oder der indische, pazifische oder atlantische Ozean usw. Auch Fehler, wenn das Polygon die falsche Richtung hat - anstatt automatisch zu konvertieren ...
Quandary
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.