PostGIS vs SQL Server untuk data GIS

15

Jadi saya baru-baru ini mulai di perusahaan baru dan memiliki banyak pengguna ArcGIS yang tampaknya sangat tertarik untuk maju dengan contoh PostGIS untuk melayani beberapa data kepada pelanggan kami. Meskipun saya tidak memiliki masalah dengan ini, kami adalah 95% SQL Server dan 5% toko Oracle. GIS internal kami saat ini berjalan dari SQL Server dan saya belum mendengar keluhan.

Saya tahu SQL Server memiliki banyak peningkatan kemampuan spasial / geometris pada tahun 2012, tetapi apakah ada fitur pembunuh di PostGIS yang layak menembus platform baru? Saya sudah mencoba untuk meneliti tetapi tidak dapat menemukan sesuatu yang benar-benar mendalam atau yang tidak sepenuhnya bias.

Saya ingin memberi mereka alat terbaik untuk menyelesaikan pekerjaan mereka, tetapi juga harus mempertimbangkan fakta bahwa saya akan belajar Postgres / GIS sejak awal dan itu adalah seluruh perjalanan dalam dan dari dirinya sendiri.

LowlyDBA
sumber
1
Jika melayani data ke klien dari itu menggunakan ArcGIS Untuk Server, maka satu-satunya pertimbangan adalah kinerja. Walaupun memang memiliki rentang fungsi spasial yang lebih besar, saya tidak berpikir semua ini akan menjadi fitur pembunuh atau kemungkinan dibutuhkan oleh ArcGIS. Sayangnya saya tidak memiliki tolok ukur pada kinerja.
MickyT
Mantra kuno tentang penggunaan apa yang Anda ketahui tentu berlaku di sini. Beralih ke platform yang berbeda selalu tampak seperti ide bagus sebelum memulai perubahan. Tidak banyak kemudian, ketika Anda 6 bulan ke dalamnya dan menyadari bahwa Anda baru saja mulai mendapatkan pengetahuan yang diperlukan. Pernah mendengar tentang biaya peluang?
Max Vernon
2
Tidak ada pengalaman dengan produk ARC, tetapi ketika berbicara hanya database. PostGIS adalah implementasi database spasial yang jauh lebih matang daripada server MSSQL, lebih banyak contoh, lebih banyak konten gratis. Jika Anda perlu melakukan sesuatu terkait spasial dalam db, PostGIS memiliki lebih banyak opsi. PostGIS gratis, MS SQL tidak, database spasial tampaknya memiliki kecenderungan untuk tumbuh lebih besar dari yang diharapkan. Jadi ada sakit kepala dari perizinan dll ... Tentu saja Linux + PostGIS memiliki masalah sendiri jika admin lebih terbiasa dengan windows enviroment.
simplexio

Jawaban:

21

Saya telah bekerja dengan Postgres dan SQL Server. Saya menemukan Postgres lebih unggul dalam fungsi GIS. Dan sementara saya akan merinci secara singkat temuan saya di bawah ini, saya akan menyarankan ini: Beri diri Anda periode waktu yang singkat tapi masuk akal untuk meninjau solusi yang tidak dikenal daripada yang Anda tahu, dengan tujuan spesifik dalam pikiran. Misalnya, mungkin periode waktu 2 minggu untuk menginstal dan mempelajari beberapa fungsi spesifik yang sedang digunakan. Jika Anda merasa mandek atau tidak berfungsi dalam jangka waktu tersebut, maka Anda tahu itu bukan untuk Anda. Ini adalah investasi dalam penelitian yang memperluas pandangan Anda dan membantu Anda menyadari bahwa Anda mungkin telah melewatkan sesuatu yang sebelumnya tidak Anda sadari, atau hanya mengonfirmasi bahwa kursus Anda saat ini adalah sekarang.

Sejauh database berjalan, saya menemukan Postgres memiliki kurva belajar yang lebih pendek, dan lebih dangkal. Dokumentasinya sungguh luar biasa. SQL Server memang memiliki sedikit dokumentasi, tetapi saya menemukan banyak kesulitan untuk dibaca, dengan contoh dan tutorial yang tidak cukup.

PostGIS vs SQL Server Spatial mirip dengan dokumentasi terkait di atas, tetapi PostGIS mengalahkan fungsionalitas SQL Server Spatial. Misalnya, Google Maps, dan pada tingkat lebih rendah Bing Maps, baru-baru ini menambahkan dukungan geoJSON penuh ke API peta mereka. Yah, PostGIS dapat dengan mudah mengembalikan hasil geoJSON langsung dari kueri basis data menggunakan ST_AsGeoJSON () . Hasil geoJSON ini kemudian dapat diteruskan langsung ke apa pun yang dapat memahami geoJSON. SQL Server mengharuskan Anda untuk menggunakan pustaka dan pemrosesan tambahan , atau menggunakan ogr2ogr. Selain itu PostGIS memiliki lebih dari 300 fungsi yang tersedia untuk konversi data masuk dan keluar dari database, dibandingkan dengan SQL Server yang memiliki sekitar 70-100.

TechJohn
sumber
Segera setelah Anda membutuhkan poligon, gunakan PostGIS - Anda akan menghemat banyak masalah. Jika Anda hanya membutuhkan poin, mungkin SQL-Server sudah cukup, tetapi kemudian Anda bisa menggunakan dua kolom desimal juga (2 kolom tidak disarankan jika Anda perlu melakukan perhitungan jarak - gunakan GeoPoint). GeoPoint tidak direkomendasikan jika Anda menggunakan EntityFramwork / LINQ2SQL / AverageCrappyORM.
Quandary
0

Tampak bagi saya bahwa db mana yang lebih baik bukanlah perhatian utama Anda di sini dan sebaliknya Anda memiliki dua pertimbangan berbeda yang bertentangan satu sama lain, yaitu pengetahuan bisnis vs keinginan pelanggan. Pada akhirnya itu akan menjadi keputusan bisnis, bukan keputusan teknis.

Jelas ada biaya peluang seperti yang dicatat Max dalam komentar. Tidak ada cara selain itu. Jika Anda memilih rute Postgres, harap pertimbangkan untuk mendapatkan bantuan, dalam bentuk perjanjian konsultasi yang baik, dba berpengalaman, atau keduanya.

Jika pengguna Anda menginginkan PostGIS, itu mungkin merupakan kemenangan bersih. Berapa banyak lagi layanan Anda yang akan Anda jual dengan beralih? Akankah ini layak untuk dilakukan dari segi biaya? Itu bukan keputusan yang akan dibuat berdasarkan db mana yang lebih baik di mata Anda atau dalam hal spesifikasi teknis, tetapi dalam hal kurva belajar dan pemasaran.

Chris Travers
sumber
Wawasan hebat tentang pilihan yang ada - terima kasih Chris.
LowlyDBA
Yang db lebih baik adalah perhatian utama di sini. SQL-server tidak dapat menangani ukuran data itu (planet.osm). Selain itu, ia kehilangan banyak fitur, yang sebenarnya Anda butuhkan, jika Anda akan melakukan lebih dari penelitian akademis (ubin vektor, geojson, dll). Selain itu, tidak dapat menangani poligon yang bergerak dari satu sisi khatulistiwa ke yang lain (bodoh), yang merupakan masalah jika Anda membutuhkan brazil, equador, colombia, drc, gabon, Kenya, Somalia, malaysia, indonesia, Singapura, Papua atau Samudra Hindia, Pasifik atau Atlantik dll. Juga, kesalahan jika poligon memiliki arah yang salah - alih-alih otomatis dikonversi ...
Quandary