1

我們即將啓動一個新項目,其中需求之一就是使用NoSQL解決方案。由於我們依賴於aws,90%的機會將成爲Amazon DynamoDB。我們正在研究DynamoDB存儲之上的TitanDB(圖形)。關係數據模型到NoSQL,Amazon DynamoDB

數據模型包括:

  • 用戶角色,權限,令牌存儲
  • 多個關係像數據與一對多/一對一的關聯

任務,我們去解決:

  • 在數據之上構建報告。某些報告可以從不同的實體包括字段通過範圍(從 - 到)
  • 過濾
  • 排序,計數,分頁
  • 所有上述可同時

體積的被施加的數據:

  • 數據量不是那麼大,我們不流事件實時

假設: 據我瞭解,我們需要創建我們要建立(合併來自不同的「表」的數據)的報告,非規範化的觀點 - 保持數據的拷貝在多個表中。 或 我們需要使用Elasticsearch或其他解決方案進行索引。

圖形數據庫經驗看起來很瘋狂,但提供了一個清晰的數據模型,其中每個實體與另一個實體有關係。需要知道查詢的db api的侷限性。

問題:

  • 什麼是是非關係數據庫管理關係型數據,並保持一致的最佳途徑?
  • 是否有任何事務支持(例如在DynamoDB中)保持數據一致(在數據更新過程中,由於非規範化,我們應該將數據寫入多個表)?
  • 這是一個很好的解決方案,與Elasticsearch集成並向其發出搜索請求,然後通過數據庫中的id獲取數據?迪納摩

回答

0

讀取DynamoDB中的一致性可能最終一致或強烈一致;請查看http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html瞭解兩者之間差異的詳細信息。

將ElasticSearch與圖形結合使用仍然是一項新興技術組合。有一些項目(彈性gremlin和unipop)正在解決它。根據您的使用情況,您應該能夠通過使用Gremlin(它是Tinkerpop的一部分)遍歷Titan圖形來獲取數據,而無需添加額外的ElasticSearch圖層...但您可能不會。如果您想要在AWS中輕鬆實驗ES環境,您可能需要查看https://aws.amazon.com/elasticsearch-service/

此外:如果您有AWS支持合同,您應該聯繫他們 - 這不僅僅是爲了中斷/修復。支持團隊可以將您連接到AWS技術人員,他們可以幫助驗證甚至測試您的計劃。