CBS verileri için PostGIS ve SQL Server


15

Son zamanlarda yeni bir şirkete başlıyorum ve müşterilerimize bazı veriler sunmak için bir PostGIS örneğiyle ilerlemeye gerçekten hevesli görünen birçok ArcGIS kullanıcısı var. Bununla ilgili bir sorunum olmasa da,% 95 SQL Server ve% 5 Oracle mağazasıyız. Mevcut dahili CBS SQL Server çalışır ve henüz herhangi bir şikayet duymak zorunda.

SQL Server'ın 2012 itibariyle gelişmiş uzaysal / geometrik yetenekleri olduğunu biliyorum, ancak PostGIS'te yeni platforma girmeye değer herhangi bir katil özellik var mı? Araştırmaya çalıştım ama gerçekten derinlemesine bir şey bulamıyorum ya da tamamen önyargılı değil.

Onlara işlerini yapmaları için en iyi araçları vermek istiyorum, ama aynı zamanda Postgres / GIS'i en başından öğreneceğim ve bu kendi başına bütün bir yolculuk olduğu gerçeğini tartmak zorundayım.


1
ArcGIS For Server kullanarak istemcilere veri sunuyorsanız, tek şey performans olacaktır. Daha geniş bir mekansal işlevselliğe sahip olsa da, bunların herhangi birinin katil bir özellik olacağını veya ArcGIS tarafından gerekli olacağını düşünmüyorum. Maalesef performans konusunda hiçbir ölçütüm yok.
MickyT

Yaşlandığınız kullanım mantrası burada kesinlikle geçerlidir. Farklı bir platforma geçmek , değişime başlamadan önce her zaman harika bir fikir gibi görünüyor. Çok geç değil, 6 ay içinde olduğunuzda ve sadece gerekli bilgiyi kazanmaya başladığınızı fark ettiğinizde. Hiç fırsat maliyetini duydunuz mu?
Max Vernon

2
ARC ürünleri ile deneyim yok, ama sadece veritabanları konuşurken. PostGIS, uzamsal veritabanının MSSQL sunucusundan çok daha olgun bir uygulamasıdır, daha fazla örnek, daha ücretsiz içerik. Eğer db ile ilgili uzamsal bir şey yapmanız gerekiyorsa, PostGIS daha fazla seçeneğe sahiptir. PostGIS ücretsizdir, MS SQL değildir, uzamsal veritabanları beklenenden daha fazla büyüme eğilimi göstermektedir. Bu yüzden lisanslama vb.
simplexio

Yanıtlar:


21

Hem Postgres hem de SQL Server ile çalıştım. Postgres'in CBS işlevselliğinde üstün olduğunu gördüm. Ve aşağıda bulgularımı kısaca ayrıntılarıyla açıklarken, şunu öneririm: Kendinize, bildiğiniz çözümle ilgili bilmediğiniz çözümü gözden geçirmek için kısa ve makul bir süre verin. Örneğin, şu anda kullanımda olan belirli işlevleri yüklemek ve öğrenmek için 2 haftalık bir zaman dilimi olabilir. Bu süre içinde sıkışıp kaldığınızı veya işlevsellikten yoksun olduğunuzu fark ederseniz, bunun sizin için olmadığını bilirsiniz. Görüşünüzü genişleten ve daha önce bilmediğiniz bir şeyi kaçırmış olabileceğinizi anlamanıza yardımcı olan veya mevcut kursunuzun şu anda doğru olduğunu onaylayan bir araştırma yatırımıdır.

Veritabanına gelince, Postgres'in daha kısa ve daha sığ bir öğrenme eğrisine sahip olduğunu gördüm. Dokümantasyon inanılmaz. SQL Server belgelerin biraz var, ama ben çok fazla örnek ve öğreticiler ile okumak zor buluyorum.

PostGIS ve SQL Server Spatial, dokümantasyonla ilgili olarak yukarıdakine benzer, ancak PostGIS işlevselliği açısından SQL Server Spatial'ın üstündeki pantolonları yener. Örneğin, Google Haritalar ve daha düşük bir dereceye kadar Bing Haritalar, yakın zamanda harita API'larına tam geoJSON desteği ekledi. PostGIS, bir geoJSON sonucunu ST_AsGeoJSON () kullanarak doğrudan bir veritabanı sorgusundan kolayca döndürebilir . Bu geoJSON sonucu daha sonra geoJSON'u anlayabilen her şeye doğrudan aktarılabilir. SQL Server, ek kitaplık ve işleme veya ogr2ogr kullanmanızı gerektirir. Buna ek olarak PostGIS, 70-100 civarında SQL Server'a kıyasla veri tabanına ve dışına veri dönüşümü için 300'den fazla işleve sahiptir.


Çokgenlere ihtiyacınız olduğu anda PostGIS kullanın - kendinizi çok fazla sorundan kurtaracaksınız. Yalnızca noktalara ihtiyacınız varsa, SQL Server yeterli olabilir, ancak iki ondalık sütun da kullanabilirsiniz (mesafe hesaplamaları yapmanız gerekiyorsa 2 sütun önerilmez - GeoPoint kullanın). EntityFramwork / LINQ2SQL / AverageCrappyORM kullanıyorsanız GeoPoint önerilmez.
ikilem

0

Bana öyle geliyor ki, hangi db daha iyi burada birincil endişe değildir ve bunun yerine birbirleriyle, yani iş bilgisi vs müşteri istekleri karşı kesilmiş iki farklı düşünceler var. Sonuçta bu bir teknik karar değil, bir iş kararı olacaktır.

Açıkçası Max'in bir yorumda belirttiği gibi fırsat maliyeti var. Bunun baska yolu yok. Postgres yoluna gidiyorsanız, lütfen iyi bir danışmanlık anlaşması, tecrübeli bir dba veya her ikisi şeklinde biraz yardım almayı düşünün.

Kullanıcılarınız PostGIS istiyorsa, bu net bir kazanç olabilir. Geçiş yaparak hizmetlerinizin ne kadarını satacaksınız? Buna fırsat-maliyet açısından değer mi olacak? Bunlar, hangi db'nin gözlerinizde veya teknik özellikler açısından daha iyi olduğuna dayanarak verilecek kararlar değil, öğrenme eğrisi ve pazarlama açısından verilecek kararlardır.


Eldeki seçim hakkında büyük fikir - teşekkürler Chris.
LowlyDBA

Hangi db daha iyidir burada birincil endişe. SQL-server bu boyuttaki verileri (planet.osm) işleyemez. Ayrıca, akademik araştırmalardan (vektör fayansları, geojson, vb.) Daha fazlasını yapacaksanız, aslında ihtiyacınız olan birçok özelliği kaçırır. Ayrıca, ekvatorun bir tarafından diğer tarafına (aptal) giden çokgenleri işleyemez, bu da brezilya, ekvator, kolombiya, drc, gabon, Kenya, Somali, malezya, endonezya, Singapur, Papua veya Hint, Pasifik veya Atlantik Okyanusu vb. Ayrıca, çokgenin yanlış yöne sahip olması durumunda hatalar - otomatik dönüştürme yerine ...
Quandary
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.