PostGIS so với SQL Server cho dữ liệu GIS


15

Vì vậy, gần đây tôi bắt đầu ở một công ty mới và có rất nhiều người dùng ArcGIS, những người dường như thực sự quan tâm đến việc chuyển tiếp với một ví dụ PostGIS để phục vụ một số dữ liệu cho khách hàng của chúng tôi. Mặc dù tôi không có vấn đề gì với vấn đề này, chúng tôi là một Máy chủ SQL 95% và cửa hàng 5% của Oracle. GIS nội bộ hiện tại của chúng tôi chạy SQL Server và tôi chưa nghe thấy bất kỳ khiếu nại nào.

Tôi biết SQL Server có rất nhiều khả năng hình học / không gian được cải thiện vào năm 2012, nhưng có tính năng sát thủ nào trong PostGIS đáng để xâm nhập vào nền tảng mới không? Tôi đã cố gắng nghiên cứu nó nhưng không thể tìm thấy bất cứ điều gì thực sự sâu sắc hoặc điều đó không hoàn toàn thiên vị.

Tôi muốn cung cấp cho họ các công cụ tốt nhất để hoàn thành công việc của họ, nhưng cũng phải cân nhắc thực tế rằng tôi sẽ học Postgres / GIS ngay từ đầu và đó là toàn bộ hành trình.


1
Nếu đang phục vụ dữ liệu cho khách hàng từ nó bằng ArcGIS For Server, thì sự cân nhắc duy nhất sẽ là hiệu suất. Mặc dù nó có phạm vi chức năng không gian lớn hơn, tôi không nghĩ bất kỳ thứ gì trong số này sẽ là một tính năng giết người hoặc có khả năng được ArcGIS yêu cầu. Thật không may, tôi không có điểm chuẩn về hiệu suất.
MickyT

Câu thần chú tuổi sử dụng những gì bạn biết chắc chắn áp dụng ở đây. Chuyển sang một nền tảng khác luôn có vẻ là một ý tưởng tuyệt vời trước khi bắt tay vào thay đổi. Không lâu sau, khi bạn 6 tháng và nhận ra rằng bạn chỉ mới bắt đầu có được kiến ​​thức cần thiết. Bao giờ nghe nói về chi phí cơ hội?
Max Vernon

2
Chưa có kinh nghiệm về các sản phẩm ARC, nhưng khi nói chỉ có cơ sở dữ liệu. PostGIS là cách triển khai cơ sở dữ liệu không gian trưởng thành hơn so với máy chủ MSSQL, nhiều ví dụ hơn, nội dung miễn phí hơn. Nếu bạn cần làm một cái gì đó liên quan đến không gian trong db, PostGIS có nhiều tùy chọn hơn. PostGIS là miễn phí, MS SQL thì không, cơ sở dữ liệu không gian dường như có xu hướng phát triển lớn hơn mong đợi. Vì vậy, có vấn đề đau đầu từ việc cấp phép, v.v ... Tất nhiên Linux + PostGIS có vấn đề riêng nếu quản trị viên được sử dụng nhiều hơn cho môi trường windows.
Simplexio

Câu trả lời:


21

Tôi đã làm việc với cả Postgres và SQL Server. Tôi thấy Postgres vượt trội về chức năng GIS. Và trong khi tôi sẽ trình bày chi tiết ngắn gọn những phát hiện của mình dưới đây, tôi đề nghị điều này: Hãy cho mình một khoảng thời gian ngắn nhưng hợp lý để xem xét giải pháp lạ lẫm so với giải pháp bạn biết, với những mục tiêu cụ thể. Ví dụ: có thể khoảng thời gian 2 tuần để cài đặt và tìm hiểu một số chức năng cụ thể hiện đang được sử dụng. Nếu bạn thấy rằng bạn bị mắc kẹt hoặc thiếu chức năng trong khoảng thời gian đó, thì bạn biết rằng nó không dành cho bạn. Đó là một khoản đầu tư vào nghiên cứu giúp mở rộng tầm nhìn của bạn và giúp bạn nhận ra rằng bạn có thể đã bỏ lỡ điều gì đó mà trước đây bạn không biết hoặc chỉ đơn giản xác nhận khóa học hiện tại của bạn là ngay bây giờ.

Theo như cơ sở dữ liệu, tôi thấy Postgres có thời gian học ngắn hơn và nông hơn. Các tài liệu chỉ là không thể tin được. SQL Server có khá nhiều tài liệu, nhưng tôi thấy rất khó đọc, không có đủ ví dụ và hướng dẫn.

PostGIS vs SQL Server Spatial tương tự như các tài liệu liên quan ở trên, nhưng PostGIS đánh bại quần khỏi SQL Server Spatial về chức năng. Ví dụ: Google Maps và ở mức độ thấp hơn Bing Maps, gần đây đã thêm hỗ trợ đầy đủ GeoJSON vào API bản đồ của họ. Vâng, PostGIS có thể dễ dàng trả về một kết quả GeoJSON trực tiếp từ một truy vấn cơ sở dữ liệu sử dụng ST_AsGeoJSON () . Kết quả GeoJSON này sau đó có thể được truyền trực tiếp đến bất cứ điều gì có thể hiểu GeoJSON. SQL Server yêu cầu bạn sử dụng thư viện và xử lý bổ sung hoặc sử dụng ogr2ogr. Ngoài ra, PostGIS có hơn 300 chức năng có sẵn để chuyển đổi dữ liệu vào và ra khỏi cơ sở dữ liệu, so với SQL Server có khoảng 70-100.


Ngay khi bạn cần đa giác, hãy sử dụng PostGIS - bạn sẽ tự cứu mình rất nhiều rắc rối. Nếu bạn chỉ cần điểm, có thể SQL-Server là đủ, nhưng sau đó bạn chỉ có thể sử dụng hai cột thập phân (2 cột không được khuyến nghị nếu bạn cần thực hiện tính toán khoảng cách - sử dụng GeoPoint). GeoPoint không được khuyến nghị nếu bạn sử dụng EntityFramwork / LINQ2SQL / AverageCrappyORM.
Quandary

0

Dường như với tôi rằng db nào tốt hơn không phải là mối quan tâm chính của bạn ở đây và thay vào đó bạn có hai cân nhắc khác nhau, điều này chống lại nhau, đó là kiến ​​thức kinh doanh so với mong muốn của khách hàng. Cuối cùng, đó sẽ là một quyết định kinh doanh, không phải là một quyết định kỹ thuật.

Rõ ràng là có chi phí cơ hội như Max đã lưu ý trong một bình luận. Không có cách nào xung quanh đó. Nếu bạn đang đi theo con đường Postgres, vui lòng xem xét nhận một số trợ giúp, dưới dạng một thỏa thuận tư vấn tốt, một dba dày dạn hoặc cả hai.

Nếu người dùng của bạn muốn PostGIS, đó có thể là một chiến thắng ròng. Bạn sẽ bán được bao nhiêu dịch vụ nữa bằng cách thực hiện chuyển đổi? Nó sẽ có giá trị nó cơ hội-chi phí-khôn ngoan? Đó không phải là những quyết định sẽ được đưa ra dựa trên db nào tốt hơn trong mắt bạn hoặc về thông số kỹ thuật, nhưng về mặt đường cong học tập và tiếp thị.


Cái nhìn sâu sắc về sự lựa chọn trong tầm tay - cảm ơn Chris.
LowlyDBA

Mà db là tốt hơn là mối quan tâm chính ở đây. Máy chủ SQL không thể xử lý kích thước dữ liệu đó (hành tinh.osm). Ngoài ra, nó bỏ lỡ rất nhiều tính năng, mà bạn thực sự cần, nếu bạn sẽ làm nhiều hơn là nghiên cứu học thuật (gạch vector, Geojson, v.v.). Ngoài ra, nó không thể xử lý các đa giác đi từ một bên của xích đạo sang bên kia (ngu ngốc), đó là một mối quan tâm nếu bạn cần brazil, Equador, colombia, drc, gabon, Kenya, Somalia, malaysia, indonesia, Singapore, Papua hoặc Ấn Độ, Thái Bình Dương hoặc Đại Tây Dương, v.v. Ngoài ra, lỗi nếu đa giác có hướng sai - thay vì tự động chuyển đổi ...
Quandary
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.