it-swarm.com.de

PostGIS vs. SQL Server für GIS-Daten

Ich fange vor kurzem bei einem neuen Unternehmen an und habe viele ArcGIS-Benutzer, die wirklich daran interessiert zu sein scheinen, eine PostGIS-Instanz weiterzuentwickeln, um unseren Kunden einige Daten bereitzustellen. Ich habe zwar kein Problem damit, aber wir sind zu 95% SQL Server und zu 5% Oracle. Unser aktuelles internes GIS läuft unter SQL Server und ich habe noch keine Beschwerden gehört.

Ich weiß, dass SQL Server seit 2012 viele verbesserte räumliche/geometrische Funktionen hat, aber gibt es in PostGIS Killer-Funktionen, für die es sich lohnt, in die neue Plattform einzusteigen? Ich habe versucht, es zu erforschen, kann aber nichts wirklich in der Tiefe finden oder das ist nicht ganz voreingenommen.

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

15
LowlyDBA

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, würde ich Folgendes vorschlagen: Geben Sie sich eine kurze, aber angemessene Zeitspanne, um die ungewohnte Lösung anhand der Ihnen bekannten Lösung unter Berücksichtigung spezifischer Ziele zu überprüfen. Beispiel: Möglicherweise zwei 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 verpasst haben, von dem Sie vorher nichts gewusst haben, oder einfach zu bestätigen, dass Ihr aktueller Kurs 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 Menge Dokumentation, aber ich finde eine Menge schwer zu lesen, mit nicht genügend Beispielen und Tutorials.

PostGIS vs SQL Server Spatial ähnelt in Bezug auf die Dokumentation den oben genannten, aber PostGIS übertrifft die Funktionalität von SQL Server Spatial. Beispielsweise hat Google Maps und in geringerem Maße Bing Maps kürzlich die vollständige GeoJSON-Unterstützung zu ihrer 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 zusätzliche Bibliothek und Verarbeitung 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.

21
TechJohn

Nachdem ich mit den GIS-Funktionen beider Systeme gearbeitet habe, würde ich Folgendes vorschlagen:

  • Wenn Sie hauptsächlich Geometrien speichern und abfragen möchten, sind ihre Funktionen ziemlich vergleichbar.
  • Wenn Sie Rasteroperationen ausführen möchten, ist PostGIS Ihre einzige Option ohne Plugins von Drittanbietern wie ST_Raster von ArcGIS. SQL Server speichert ein Bild, vergisst es jedoch, wenn Sie Rastermanipulationen oder Abfragen durchführen möchten.
  • Einige würden dies bestreiten, aber im Allgemeinen finde ich SQL Server schneller und konsistenter. Wenn alle anderen Dinge gleich sind, bevorzuge ich es für eine Produktionslaufzeit.
  • PostgreSQL hat einen weitaus umfangreicheren und eleganteren SQL-Dialekt und einen Abfrageprozessor, der weniger mit willkürlichen Einschränkungen behaftet ist. In Bezug auf Sprachkraft und Eleganz gibt es keinen Vergleich. Mit pgSQL sieht TSQL wie ein Kinderspiel aus. Ich habe darüber nachgedacht, ein Buch darüber zu schreiben, wie schlecht Transact SQL ist, um gutes Sprachdesign zu lernen. :-)
2
N8allan

Es scheint mir, dass die bessere Datenbank hier nicht Ihr Hauptanliegen ist. Stattdessen haben Sie zwei verschiedene Überlegungen, die sich gegenseitig beeinflussen, nämlich Geschäftswissen und Kundenwünsche. Letztendlich wird dies eine Geschäftsentscheidung sein, keine technische Entscheidung.

Offensichtlich gibt es Opportunitätskosten, wie Max in einem Kommentar bemerkt hat. Daran führt kein Weg vorbei. Wenn Sie sich für Postgres entscheiden, sollten Sie Hilfe in Form einer guten Beratungsvereinbarung, einer erfahrenen Datenbank oder beidem in Anspruch nehmen.

Wenn Ihre Benutzer PostGIS möchten, kann dies jedoch ein Nettogewinn sein. Wie viel mehr Ihrer Dienstleistungen werden Sie durch den Wechsel verkaufen? Lohnt es sich in Bezug auf die Opportunitätskosten? Dies sind keine Entscheidungen, die basierend darauf getroffen werden, welche Datenbank in Ihren Augen oder in Bezug auf technische Spezifikationen besser ist, sondern in Bezug auf die Lernkurve und das Marketing.

0
Chris Travers