我是cassandra的新手。我正试图在cassandra中设计一个存储facebook帖子数据的表。
它包含
user_id,post_id,post_data,comments_details,likes_details, comments_count and likes_counts
。
我将user_id and Post_Id
作为Partitioning key
我使用用户定义的数据类型来存储包含list of map types
字段<{1}}的JSON数据
comments_details
这是在单个表中执行此操作的正确方法,还是可以为comments_details和likes_details创建另一个表。我也想对这篇文章没有评论。
请帮助..
答案 0 :(得分:2)
Cassandra中的数据建模在很大程度上取决于您计划运行最多的查询。首先,我们应该讨论一个正确的数据模型相对于一组特定的查询。
Here如果你刚刚开始使用Cassandra,那么我建议你写一篇非常好的文章。它提供了一种用于数据建模的自动化工具,但也简要而精确地解释了良好数据建模背后的基本原理。
通常,您希望应用程序以尽可能少的分区访问来满足其数据需求。数据如何变红是一个重要的部分:例如,如果应用程序的主要要求是加载给定用户的最新帖子,我们将决定使用user_id作为分区键,并将发布日期作为集群键通过单个分区访问获取最新的n个帖子。需要考虑的其他方面是灵活性和数据分布之间的权衡。换句话说,考虑一组特定的查询和访问模式,然后从那里开始。