2015-01-15 40 views
0

我正在創建一個Web應用程序,它將與REST API進行通信,該應用程序以JSON形式返回數據。該數據可以轉換爲關係數據,當然,當我將它存儲到恰好是PostgreSql的數據庫時。但是我正在考慮使用MongoDb,因爲使用JSON對於MongoDb更自然。PostgreSql或MongoDb,用於從REST API接收的JSON數據

您的想法,我應該使用MongoDb來代替嗎?

+1

http://tapoueh.org/blog/2014/02/17-aggregating-nba-data-PostgreSQL-vs-MongoDB –

回答

1

最好的選擇可能是什麼,你可以取決於幾個因素:

  • 多久你要輪詢API?
  • 你打算插入數據庫的頻率如何?
  • 你多久打算從數據庫讀取數據?
  • 數據增長速度有多快?
  • 實際數據的結構是什麼?

MongoDB的水平尺度非常善意的,如果你將要投票的API經常和插入大量數據到你的數據庫的則是相對容易實現分片和火起來的另一臺服務器上的另一個蒙戈實例。 Difference between scaling horizontally and vertically for databases

將JSON數據插入到MongoDB可能比將其轉換爲關係格式更簡單,並且可能會在其中執行多個插入操作(假設JSON格式正確),您可以只執行一次插入操作。或者使用mongoimport一次導入許多JSON文檔。如果API數據經常更改新列的實例,那麼在關係數據庫中,您將不得不使用ALTER TABLE創建列,而在MongoDB中,它只會存儲JSON文檔。

如果你想了解更多關於MongoDB的信息,他們提供免費的在線課程。這些課程爲期7周,每週他們發佈新的視頻講座和一個需要幾個小時才能完成的新任務。 https://university.mongodb.com/courses/catalog

+1

您可以像在MongoDB中那樣在Postgres中存儲JSON文檔。 –

+0

好的,在這種情況下,如果您當前的實現是Postgres,那麼可能首先嚐試它,而不是使用其他技術。如果它符合你的目的,那麼太棒了,如果你到達了一個絆腳石,將來將相同的JSON數據從Postgres移動到MongoDB應該很簡單。 – mrjamesmyers

0

有一個用例值得檢查,如果你在json結構中有任何數據字段的集合。這是一種可能需要RDBMS粘性或高級狀態可能是OLAP存儲的用例。

+0

這會比回答更好地作爲評論。它不回答這個問題 – Dbz