Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 如果我想查询多个列,我应该创建单独的列族吗?还是使用复合PK?_Cassandra_Cql_Cql3 - Fatal编程技术网

Cassandra 如果我想查询多个列,我应该创建单独的列族吗?还是使用复合PK?

Cassandra 如果我想查询多个列,我应该创建单独的列族吗?还是使用复合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中,并将按

我有一个像这样的家庭

反对 ( obect_id, 公司id, 组id, 家庭id, 描述 .. );

我想根据对象id、公司id、组id以及它们的任意组合来查询

我的问题是 我应该制作复合主键吗

(对象id、公司id、组id)

还是创建单独的列familis


只有对象id在CF中是唯一的,公司id可以在多行中重复,但组id不会在多行中重复

根据您的查询模式,您可能希望在多个CFs中复制数据。这是相当普遍的做法

如果公共查询是“按公司id获取所有对象”,那么您可能希望将所有对象存储在CF中,并将按公司id分区作为行键。如果您还需要进行单独的对象查找,那么您可以将重复的数据存储在另一个CF中—每个对象都是按对象id分区的。如果组始终是特定公司的子集,那么您可能希望按公司对键进行行搜索,然后按组进行群集


您应该根据需要运行的查询而不是需要进入的数据来设计Cassandra模式。

您可能希望根据您的查询模式在多个CFs中复制数据。这是相当普遍的做法

如果公共查询是“按公司id获取所有对象”,那么您可能希望将所有对象存储在CF中,并将按公司id分区作为行键。如果您还需要进行单独的对象查找,那么您可以将重复的数据存储在另一个CF中—每个对象都是按对象id分区的。如果组始终是特定公司的子集,那么您可能希望按公司对键进行行搜索,然后按组进行群集

您应该根据需要运行的查询而不是需要进入其中的数据来设计Cassandra模式