[譯] 爲什麼我們需要關注PostGIS? - Part 1

原文鏈接:https://medium.com/@tjukanov/why-should-you-care-about-postgis-a-gentle-introduction-to-spatial-databases-9eccd26bc42b

由於原博文較長,我分爲幾個部分翻譯。上一部分在這裏:https://blog.csdn.net/IDisposable/article/details/103830440

 

第一部分:一種新的工作方式

 

PostGIS能夠帶給你一種新的工作方式。你能夠更容易地重複這種工作方式,你能更容易地使用版本控制,PostGIS使多人工作流成爲可能。

文件常常需要特定的軟件來讀取和寫入。SQL是一個間接層,使用它能夠隨機地訪問數據並且分析數據。如果沒有這個間接層,你要麼需要特定的軟件來操作數據,要麼自己寫代碼來完成數據訪問和分析。

使用SQL來分析數據,而不是使用各式各樣的軟件、各式各樣的操作來處理文件,使得你能夠更輕鬆地分享和重現你的工作。你可能有那麼一個”主SHP文件",你用這個主文件和另外的SHP文件做了一些空間的連接操作,做了剪切操作,搞定了工作。那麼,文件丟了腫麼辦?

Johnnie 同學在推特上有一個很好的例子,講的是他一個不小心把所有數據刪除了,但是萬幸的是他在GIT上存了一些SQL腳本,所以很輕鬆恢復了他的工作。

搞軟件開發的人可能(希望是這樣)熟悉版本控制。我在這篇博文裏邊不打算多講版本控制,但是你可以(並且你應該)把SQL腳本放到像GIT這樣的版本控制系統裏邊。把它當做放在你書架裏的烹飪書,經常性地更新它,加入最好的菜譜,做出最美味的“數據分析”大菜。哪怕是你房子燒了你也能從版本系統中再得到一本新的。

數據庫也能幫助你整理好你的空間數據。沒有人是完美的,所以我們常常創建一些表,例如temp_1, final_final,但是數據庫比普通文件提供了更好的機會讓你標準化你的數據結構(例如,標準化表格中的數據類型)。

 

那麼那些大的數據集呢?空間數據庫使得處理大的數據集變得可能。使用數據庫不僅僅是變得容易,因爲很多時候不用數據庫來處理大數據集幾乎是不可能的。你試過打開2GB大小的csv文件嗎?或者用800MB的GeoJSON文件做空間分析?你曉不曉得SHP文件尺寸有上限?當然你能夠用GeoPackage或者其他文件格式來搞定一些問題,但是通常來講PostGIS是處理大型空間數據的最優工具。

 

 

這張圖片是根據QGIS從PostGIS數據庫讀取的22,000,000個船隻GPS位置的點數據渲染出來的。你能看到這些船隻哪些是在河流上,哪些是在公海上嗎?

 

數據庫有一個很讚的功能是能夠輕鬆地自動完成一些你平時手動處理的事情。例如使用PostgreSQL的NOTIFY功能,你能自動地更新你的QGIS地圖。你也能使用ETL工具(例如FME)來自動化你的工作,從PostGIS表中讀取,或者將數據寫入PostGIS表中都比讀寫文件容易多了。

如果你跟我不一樣(我自己單幹,我的興趣所在),你可能工作在一個團隊中,有一些同事。他們可能需要和你需要訪問相同的數據。在工作中使用數據庫來實現並行工作,跟使用共享目錄中的文件相比,完全不是同一個層次。

一個主要的原因是併發用戶可能破壞文件。雖然說你可以額外地寫一些代碼來保證對於同一個文件的寫操作不會破壞數據,那時候你解決了文件保護的問題也解決了由此引起的性能問題,但你不可能比一個數據庫做得更好。

當然採用一個新的工作方式有好處也有壞處。就像下班之前整理好文件一樣,維護數據庫也是一項不小的工作。例如升級你的PostGIS到一個新版本可能很痛苦。能力越大,責任越大。

 

讓我們來看看這些“大”的部分。

 

【廣而告之】對地理信息系統開發感興趣的同學們,歡迎加QQ羣: 開源GIS技術交流羣  羣號:767137544 入羣請註明:CSDN

QQ Group Image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章