Ostatnio zaczynam pracę w nowej firmie i mam wielu użytkowników ArcGIS, którzy wydają się bardzo chętni do korzystania z instancji PostGIS w celu udostępniania niektórych danych naszym klientom. Chociaż nie mam z tym problemu, jesteśmy 95% serwerem SQL Server i 5% sklepem Oracle. Nasz obecny wewnętrzny system GIS działa na serwerze SQL Server i jeszcze nie słyszałem żadnych skarg.
Wiem, że SQL Server ma wiele ulepszonych funkcji przestrzennych / geometrycznych od 2012 roku, ale czy są jakieś zabójcze funkcje w PostGIS, które są warte włamania się na nową platformę? Próbowałem to zbadać, ale nie mogę znaleźć niczego naprawdę dogłębnego lub nie jest to całkowicie stronnicze.
Chcę dać im najlepsze narzędzia do wykonania ich pracy, ale muszę też rozważyć fakt, że od samego początku będę się uczyć Postgres / GIS i to jest cała podróż sama w sobie.
Odpowiedzi:
Pracowałem zarówno z Postgres, jak i SQL Server. Uważam, że Postgres ma lepszą funkcjonalność GIS. I chociaż krótko opiszę poniżej moje ustalenia, sugeruję to: Daj sobie krótki, ale rozsądny okres na zapoznanie się z nieznanym rozwiązaniem w stosunku do tego, co znasz, mając na uwadze konkretne cele. Na przykład może być 2-tygodniowy okres na zainstalowanie i nauczenie się niektórych konkretnych funkcji, które są obecnie w użyciu. Jeśli okaże się, że utknąłeś lub brakuje Ci funkcji w tym czasie, wiesz, że to nie jest dla Ciebie. Jest to inwestycja w badania, które poszerzają twoje spojrzenie i pomagają uświadomić sobie, że mogłeś przegapić coś, czego wcześniej nie wiedziałeś, lub po prostu potwierdzić, że twój obecny kurs jest właśnie teraz.
Jeśli chodzi o bazę danych, zauważyłem, że Postgres ma krótszą i bardziej płytką krzywą uczenia się. Dokumentacja jest po prostu niesamowita. SQL Server ma sporo dokumentacji, ale trudno mi ją czytać, z niewystarczającą liczbą przykładów i samouczków.
PostGIS vs SQL Server Spatial jest podobny do powyższego w odniesieniu do dokumentacji, ale PostGIS wyprzedza SQL Server Spatial pod względem funkcjonalności. Na przykład Google Maps, aw mniejszym stopniu Bing Maps, niedawno dodały pełną obsługę geoJSON do API map. Cóż, PostGIS może łatwo zwrócić wynik geoJSON bezpośrednio z zapytania do bazy danych za pomocą ST_AsGeoJSON () . Ten wynik geoJSON można następnie przekazać bezpośrednio do wszystkiego, co może zrozumieć geoJSON. SQL Server wymaga użycia dodatkowej biblioteki i przetwarzania lub użycia ogr2ogr. Ponadto PostGIS ma ponad 300 funkcji dostępnych do konwersji danych do iz bazy danych, w porównaniu do SQL Server, który ma około 70-100.
źródło
Wydaje mi się, że to, która db jest lepsza, nie jest tu twoim głównym zmartwieniem, a zamiast tego masz dwa różne względy, które przeciwstawiają się sobie nawzajem, a mianowicie znajomość biznesu a pragnienia klientów. Ostatecznie będzie to decyzja biznesowa, a nie decyzja techniczna.
Oczywiście, jak zauważył Max w komentarzu, istnieje koszt alternatywny. Nie można tego obejść. Jeśli wybierasz się na trasę Postgres, rozważ skorzystanie z pomocy, w postaci dobrej umowy konsultacyjnej, doświadczonego dba lub obu.
Jeśli Twoi użytkownicy chcą PostGIS, może to być wygrana netto. Ile jeszcze swoich usług sprzedasz, dokonując zmiany? Czy będzie to opłacalne pod względem kosztów? Nie są to decyzje, które będą podejmowane na podstawie tego, która db jest lepsza w twoich oczach lub pod względem specyfikacji technicznych, ale pod względem krzywej uczenia się i marketingu.
źródło