我來自RDBMS背景,設計一個Cassandra作爲後端的應用程序,我不確定我設計的有效性和可擴展性。Cassandra DB Design
我正在研究書籍/電影等的某種評價/反饋應用程序。由於卡桑德拉具有靈活的列族的概念(稀疏結構),我想用下面的架構:
user-id (row key): book-id/movie-id (dynamic column name) - rating (column value)
如果我這樣做,這樣一來,我會最終擁有數以百萬計的列(這本來是行在RDBMS)雖然沒有本質上與行鍵相關聯,例如:
user1: {book1:Rating-Ok; book1023:good; book982821:good}
user2: {book75:Ok;book1023:good;book44511:Awesome}
由於所有列族都存儲在一個單一的文件,我不知道這是否是一個可擴展的設計(或設計可言!)。此外,可能會有像"pick all 'good' reviews of 'book125'"
這樣的查詢。 我應該使用什麼方法?