在我的应用程序中,我需要在任何一个大数据模型中保存消息的数据。我需要在两者之间做出选择。
我将在下面解释我的用例。
在我的应用程序中,每个用户都会收到电子邮件。如果同一封邮件已经回复/转发,我们会将这些回复/转发的邮件组成对话。
我计划将电子邮件的内容保存在cassandra或hbase中,如下所示。
假设user为u1,messages为m1,conversations为c1。
下面是平宽行车型:
row key -> U1
Column family(Composite key) -> C1#M1 or C1#M2 ... (Conversation-ID#Message-ID) #->Separator
Column value -> Content of M1 or Content of M2 .....
下面是高窄排车型
row key -> U1#C1 (User-ID#Conversation-ID) #->Separator
Column family(Composite key) -> M1 or M2 or M3 ...
Column value -> Content of M1 or Content of M2 .....
哪个数据模型适合用例?
通过数据库执行以下类型的查询。1为用户u1获取会话id c1的所有邮件的内容(可以是1到10封邮件或11到20封邮件)或2。为用户u1获取会话id c2中特定邮件m3的内容。
消息的内容将从10kb到1mb不等。很少会达到10mb(0.0001%),主要以kbs为单位。
在本系统中,读取、插入/更新/删除操作将是80:20(80%的读取操作和19%的插入操作。最多1%的删除或更新内容)删除操作将类似于删除整个会话。更新将类似于更新特定的消息内容
请提供与上述要求相适应的解决方案,并给出有帮助的解释。
暂无答案!
目前还没有任何答案,快来回答吧!