我想挑選MongoDB作爲我的首選數據庫。我需要幫助我的桌子的設計。MongoDB架構建議
應用程序背景 - 分析應用程序,其中聯繫人推送他們自己的事件和相關的自定義數據。聯繫人可以有很多事件。如:接觸這樣做,這樣做等
EVENT_TYPE,custom_data(JSON),epoch_time
如: 事件1:EVENT_TYPE:page_visited,自定義數據:{網址:定價,引薦:谷歌}, CURRENT_TIME 事件2:EVENT_TYPE:video_watched,定製數據:{URL:VIDEO_LINK},CURRENT_TIME 事件3:EVENT_TYPE:支付,custom_data:{計劃:精簡版,價格:35}
這些事件是自定義,並且被定義由用戶。可伸縮性是一個問題。
這些都是常見的用例:
- 給我,誰是來定價頁在過去7天的用戶列表
- 給我誰看了視頻和付出更多的用戶列表50
- 給我誰訪問過定價用戶觀看視頻的名單,但沒有支付至少20
什麼是設計我的表的最佳方法是什麼? 在這種情況下使用嵌入式事件是個好主意嗎?
感謝您的留言。對於高寫入,低讀取和實時分析,您會有什麼建議? – cloudpre
如果您使用的是AWS,那麼DynamoDB速度很快,可能會滿足您的事件需求(主鍵userId,日期範圍或事件類型)。卡桑德拉有一些積極的評論(在網絡上和我一起工作的人)。我正在研究一些其他的NoSQL數據庫 - 我可以消除的大部分數據,儘管我對調查可能會/可能不會有好處的一些數據仍然是Riak或Couchbase。 (但我目前傾向於DynamoDB或Cassandra) –
DynamoDB不支持嵌套的JSON搜索。自定義數據對於每個客戶都是完全不同的,他們編寫他們的自定義數據。 – cloudpre