在Cassandra中将多个表组合在一起的优缺点是什么?

时间:2016-04-18 02:54:12

标签: cassandra data-modeling database nosql

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

如果我们有两个表 A B

,请说
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)
)

我的问题是,它是一个好的模式,以这种方式建模数据的后果是什么?

1 个答案:

答案 0 :(得分:0)

请详细说明你的意思很多表,因为我们的产品运行时有50多个表,我没有看到任何问题。

无论如何,如果您的应用程序使用的是表格,那么最可能的原因是它,规范化表格。在cassandra中,您应始终创建非规范化表,因为没有连接工具。 Cassandra是为非常快速的写入而构建的,所以,你可以依靠它而不用担心它。

现在关于新设计,我没有看到任何问题,唯一的问题是您的分区键应该是(table_name,key)的组合而不仅仅是table_name,以便它将在节点之间均匀分布。 而且每次查询时,都必须指定table_name + key。