PostGIS vs. SQL Server для даних GIS


15

Тому я нещодавно починаю свою нову компанію і маю багато користувачів ArcGIS, які, здається, дуже зацікавлені йти вперед разом із екземпляром PostGIS, щоб обслуговувати деякі дані для наших клієнтів. Поки у мене немає проблем з цим, ми 95% SQL Server і 5% Oracle. У нашому поточному внутрішньому ГІС працює сервер SQL, і я ще не чув жодних скарг.

Я знаю, що SQL Server має багато вдосконалених просторових / геометричних можливостей станом на 2012 рік, але чи є в PostGIS які-небудь вбивчі функції, для яких варто перейти на нову платформу? Я намагався дослідити це, але не можу знайти нічого по-справжньому в глибині, або це не є абсолютно упередженим.

Я хочу дати їм найкращі інструменти для виконання своєї роботи, але також повинен зважити той факт, що я буду вивчати Postgres / GIS з самого початку, і це ціла мандрівка сама по собі.


1
Якщо ви обслуговуєте дані клієнтам із них за допомогою ArcGIS For Server, то єдиним врахуванням буде продуктивність. Хоча він має більший діапазон просторових функціональних можливостей, я не думаю, що будь-яке з них може бути вбивчою особливістю або, ймовірно, вимагатиме ArcGIS. На жаль, у мене немає орієнтирів щодо продуктивності.
MickyT

Тут вірно застосовується вікова мантра використання того, що ви знаєте. Перехід на іншу платформу завжди здається чудовою ідеєю, перш ніж приступати до змін. Не так вже й багато пізніше, коли ти перебуваєш на цьому 6 місяців і розумієш, що ти лише почав отримувати необхідні знання. Ви коли-небудь чули про можливу вартість?
Макс Вернон

2
Немає досвіду роботи з ARC, але якщо говорити лише про бази даних. PostGIS - це більш зріла реалізація просторової бази даних, ніж сервер MSSQL, більше прикладів, більше вільного контенту. Якщо вам потрібно зробити щось просторове, пов'язане в db, у PostGIS є більше варіантів. PostGIS безкоштовний, MS SQL - ні, просторові бази даних мають тенденцію до зростання більше, ніж очікувалося. Так що виникають головні болі від ліцензування тощо ... Звичайно, у Linux + PostGIS є свої проблеми, якщо адміністратори більше використовують для оточення Windows.
simplexio

Відповіді:


21

Я працював з Postgres і SQL Server. Я виявив, що Postgres є кращим у функціональності ГІС. І хоча я коротко деталізую свої висновки нижче, я б запропонував це: Надайте собі короткий, але розумний проміжок часу, щоб переглянути незнайоме рішення над тим, кого ви знаєте, з конкретними цілями. Наприклад, можливо 2-тижневий проміжок часу для встановлення та вивчення певної функції, яка зараз використовується. Якщо ви виявите, що ви застрягли або не маєте функціональності протягом цього періоду, знаєте, що це не для вас. Це інвестиція в дослідження, яка розширює ваш погляд і допомагає зрозуміти, що ви, можливо, пропустили щось, про що раніше не знали, або просто підтвердите, що ваш поточний курс є правильним зараз.

Що стосується бази даних, я виявив, що Postgres має більш коротку та більш дрібну криву навчання. Документація просто неймовірна. У SQL Server є досить мало документації, але мені дуже важко читати, не маючи прикладів та навчальних посібників.

PostGIS vs SQL Server Spatial подібний до вищезазначеного щодо документації, але PostGIS відбиває штани від функціональності SQL Server Spatial. Наприклад, Карти Google і, в меншій мірі, Bing Maps, нещодавно додали повну підтримку geoJSON до своїх API API. Ну, PostGIS може легко повернути результат geoJSON безпосередньо з запиту до бази даних за допомогою ST_AsGeoJSON () . Цей результат geoJSON може бути переданий безпосередньо тому, що може зрозуміти geoJSON. SQL Server вимагає використання додаткової бібліотеки та обробки або використання ogr2ogr. Крім того, PostGIS має понад 300 функцій, доступних для перетворення даних у базу даних і поза ними, порівняно з SQL Server, який має близько 70-100.


Як тільки вам знадобляться багатокутники, використовуйте PostGIS - ви заощадите собі багато клопоту. Якщо вам потрібні лише очки, можливо, SQL-сервера достатньо, але тоді ви можете просто використовувати два десяткових стовпці (2 стовпці не рекомендується, якщо вам потрібно робити обчислення відстані - використовуйте GeoPoint). GeoPoint не рекомендується, якщо ви використовуєте EntityFramwork / LINQ2SQL / AverageCrappyORM.
скрутне

0

Мені здається, що кращий db тут не є вашою основною проблемою, а натомість у вас є два різні міркування, які вирішують одне інше, а саме ділові знання та бажання клієнтів. Зрештою, це буде бізнес-рішення, а не технічне рішення.

Очевидно, що можлива вартість, як Макс зазначив у коментарі. Навколо цього немає способу. Якщо ви їдете по маршруту Postgres, будь ласка, подумайте про допомогу у вигляді хорошої консультаційної угоди, досвідченого dba або обох.

Якщо ваші користувачі хочуть PostGIS, однак це може бути чистим виграшем. Скільки ще своїх послуг ви продасте, зробивши перемикач? Чи варто це коштувати з можливістю витрат? Це не рішення, які будуть прийняті на основі того, який db краще в ваших очах або з точки зору технічних характеристик, а з точки зору кривої навчання та маркетингу.


Прекрасне розуміння вибору - спасибі Кріс.
LowlyDBA

Який db кращий, тут насамперед важливий. SQL-сервер не в змозі обробляти цей розмір даних (planet.osm). Крім того, він пропускає безліч функцій, які вам насправді потрібні, якщо ви збираєтеся робити більше, ніж академічні дослідження (векторні плитки, геойсон тощо). Крім того, він не може обробляти багатокутники, що йдуть з однієї сторони екватора на іншу (дурний), що викликає занепокоєння, якщо вам потрібні Бразилія, Еквадор, Колумбія, Дрк, Габон, Кенія, Сомалі, Малайзія, Індонезія, Сінгапур, Папуа або Індійський, Тихий або Атлантичний океан і т.д. Крім того , помилки , якщо багатокутник має неправильний напрямок - замість автоматичних зверненого ...
скрутний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.