PostGIS 或 Oracle Spatial and Graph 可以擴展到數百 TB 的數據,還是應該使用像 DynamoDB 這樣的 NoSQL 選項?
我將擁有一個非常大的數據集(最終會達到幾百 TB),但它的結構非常好,數據相對簡單,涉及經緯度點(這就是我想要一些 GIS 兼容性的原因)。
據我所知,PostGIS 只能處理 32TB 左右,我不確定 Oracle Spatial 可以擴展到什麼。亞馬遜的 DynamoDB 可以達到 PB 級規模,但我讀過一些抱怨,說它會變得相當複雜,並且在沒有充分理由使用它的情況下被避免。對這種結構化數據使用 NoSQL 似乎是錯誤的,但我找不到這種大小的其他替代方案。就成本而言,是的,它會很昂貴,但讓我們假設這不是一個大問題。空間和時間查詢的檢索速度是主要決定因素。
您可能需要考慮為您的項目做一些需求工程。當您列出所有需求後,您將希望將其寫在文件中,並讓 Oracle、Microsoft、IBM 或其他公司等公司為您提供解決方案。
如果沒有足夠的顧問在後台,我認為開源解決方案無法滿足您期望的數據量。規則的例外是你願意經歷一些痛苦的“邊做邊學”的經歷。如果您的“客戶”(內部或外部)願意在項目的各個增長階段忍受一些停機時間,這可能是一個可行的解決方案。
我猜任何數據庫都可能擴展到一定數量的數據,具體取決於您必須圍繞它建構以滿足您的要求的框架。
以下文件/連結中概述了大型數據庫系統的案例。根據 RDBMS 提供的功能,一些數據庫的大小減小了:
微軟 SQL 伺服器
- 納斯達克 OMX 集團利用 Microsoft 記憶體技術將 2 PB 的數據減少到 500 TB(Microsoft 客戶)
- 微軟稱讚 1.1 PB SQL Server 2008 數據庫 (Softpedia)
- 更新的數據庫大小調查結果(Paul Randal 的 SQL 技能)
PostgreSQL
- PostgreSQL 數據庫實例能否支持 PB 級數據?(知乎)
- 更新 50 TB 的 PostgreSQL 數據庫(medium.com)
- 行、表和數據庫的最大大小是多少?(PostgreSQL 維基)
當然,這些實際上並不是無限的,而是受限於可用磁碟空間和記憶體/交換空間。當這些值變得異常大時,性能可能會受到影響。
地理資訊系統
- PostGIS 簡介 (PostGIS)
GlobeXplorer 是一項基於 Web 的服務,提供對PB 級全球衛星和航空圖像的線上訪問。GlobeXplorer 使用 PostGIS 管理與影像目錄關聯的元數據,因此影像查詢首先搜尋 PostGIS 目錄以查找相關影像的位置,然後從儲存中提取影像並將其返回給客戶端。在建構他們的系統時,GlobeXplorer 嘗試了其他空間數據庫,但最終選擇了 PostGIS,因為它提供了價格和性能的完美結合。
Oracle 空間和圖形
- 使用 Oracle Database 12c 進行非結構化數據管理(Oracle 白皮書 PDF)
可以在數據庫儲存結構 (BLOB) 中儲存和檢索的單個媒體對象的大小限制為 128 TB。
所以基本上這些限制可能更多地出現在您可用的硬體中,而不是使用的軟體中。但這取決於。