【问题标题】:What are the pros and cons of grouping multiple table together in Cassandra?在 Cassandra 中将多个表组合在一起的优缺点是什么?
【发布时间】:2016-04-18 02:54:12
【问题描述】:

问题是 Cassandra 无法处理每个集群的大量表 (> 1000)。我一直在寻找任何方法来减少表的数量,其中之一是将共享相同结构的多个表组合在一起。

假设我们有两个表 AB

create table A (
    key text,
    value text,
    primary key(key)
)

create table B (
    key text,
    value text,
    primary key(key)
)

我们可以通过再添加一个分区键将它们组合在一起

create table Shared (
    original_table_name text,    // either 'A' or 'B'
    key text,
    value text,
    primary key(original_table_name, key)
)

我的问题是,这是一个好的模式吗?以这种方式对数据建模会产生什么后果?

【问题讨论】:

    标签: cassandra data-modeling database nosql


    【解决方案1】:

    请详细说明您所说的很多表是什么意思,因为我们的生产运行有 50 多个表,我认为它没有任何问题。

    无论如何,如果您的应用程序正在使用大量表,那么最可能的原因是规范化表。在 cassandra 中,您应该始终创建非规范化表,因为没有连接工具。 Cassandra 专为非常快速的写入而构建,因此,您可以信赖它而不必担心。

    现在关于新设计,我认为这没有任何问题,唯一的问题是您的分区键应该是 (table_name, key) 而不仅仅是 table_name 的组合,以便它可以均匀地分布在节点之间。 当然每次查询都需要指定table_name + key。

    【讨论】:

    • 问题已更新。我正在处理 1000 多个表,因为我们托管了多个应用程序(并且非规范化在这里肯定发挥了作用)。这个问题的动机是减少表的数量,这样我们就不需要制作很多额外的集群来托管它们。
    猜你喜欢
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    相关资源
    最近更新 更多