gpt4 book ai didi

cassandra - Reddit中使用的Cassandra数据库架构是什么?

转载 作者:行者123 更新时间:2023-12-04 04:42:31 25 4
gpt4 key购买 nike

Reddit当前正在将其数据库从PostgreSQL迁移到Apache Cassandra。有人知道Reddit在Cassandra中使用哪种数据库架构吗?

最佳答案

我也不知道确切的Reddit模式,但是对于您要归档的内容,您使用的是正确的方法,将注释层次结构保存在基于文档的数据库中,而不是在关系数据库中。我建议为每个根注释保留一个文档,然后将所有子项(和子项的子项)添加到该注释中。

在CouchDB和MongoDB中,您可以直接存储JSON文档。 在Cassandra中,我将JSON保存为String 。因此,数据结构将仅仅是

root-comments
{
root-comment-id
root-comment-json-string
}

每个root-comment-json-string看起来像这样:
{
comment : "hello world"
answers :
[
{
comment : "reply to hello world"
answers :
[
{
comment : "thanks for the good reply"
answers : []
},
{
comment : "yes that reply was indeed awesome"
answers : []
}

]
}

]
}

另外,您可能想在每个注释的结构中添加一个UserName,UserID,Timestamp等。

如果您有大量数据,则这种“非规范化”结构与规范化的关系结构相比,将使查询变得非常快。

在任何情况下,您都必须照顾所有异常,例如,当您为大型用户规模实现这样的系统时,可能会发生这种异常。如果有人用评论B回复评论A,但同时(或以后)删除评论A,会发生什么情况。

如果在Internet上搜索“cassandra层次数据”,则会找到其他方法,但是它们都可以归一化,或者对于“无限”层次还不完善。

关于cassandra - Reddit中使用的Cassandra数据库架构是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com