Cassandra 如果我想查询多个列,我应该创建单独的列族吗?还是使用复合PK?
我有一个像这样的家庭 反对 ( obect_id, 公司id, 组id, 家庭id, 描述 .. ); 我想根据对象id、公司id、组id以及它们的任意组合来查询 我的问题是 我应该制作复合主键吗 (对象id、公司id、组id) 还是创建单独的列familisCassandra 如果我想查询多个列,我应该创建单独的列族吗?还是使用复合PK?,cassandra,cql,cql3,Cassandra,Cql,Cql3,我有一个像这样的家庭 反对 ( obect_id, 公司id, 组id, 家庭id, 描述 .. ); 我想根据对象id、公司id、组id以及它们的任意组合来查询 我的问题是 我应该制作复合主键吗 (对象id、公司id、组id) 还是创建单独的列familis 只有对象id在CF中是唯一的,公司id可以在多行中重复,但组id不会在多行中重复根据您的查询模式,您可能希望在多个CFs中复制数据。这是相当普遍的做法 如果公共查询是“按公司id获取所有对象”,那么您可能希望将所有对象存储在CF中,并将按
只有对象id在CF中是唯一的,公司id可以在多行中重复,但组id不会在多行中重复根据您的查询模式,您可能希望在多个CFs中复制数据。这是相当普遍的做法 如果公共查询是“按公司id获取所有对象”,那么您可能希望将所有对象存储在CF中,并将按公司id分区作为行键。如果您还需要进行单独的对象查找,那么您可以将重复的数据存储在另一个CF中—每个对象都是按对象id分区的。如果组始终是特定公司的子集,那么您可能希望按公司对键进行行搜索,然后按组进行群集
您应该根据需要运行的查询而不是需要进入的数据来设计Cassandra模式。您可能希望根据您的查询模式在多个CFs中复制数据。这是相当普遍的做法 如果公共查询是“按公司id获取所有对象”,那么您可能希望将所有对象存储在CF中,并将按公司id分区作为行键。如果您还需要进行单独的对象查找,那么您可以将重复的数据存储在另一个CF中—每个对象都是按对象id分区的。如果组始终是特定公司的子集,那么您可能希望按公司对键进行行搜索,然后按组进行群集 您应该根据需要运行的查询而不是需要进入其中的数据来设计Cassandra模式