我来自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'"
这样的查询。 我应该使用什么方法?