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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/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 卡桑德拉的多租户_Cassandra_Data Modeling_Multi Tenant - Fatal编程技术网

Cassandra 卡桑德拉的多租户

Cassandra 卡桑德拉的多租户,cassandra,data-modeling,multi-tenant,Cassandra,Data Modeling,Multi Tenant,我们支持多租户。将客户id作为分区键或集群列的一部分是否更好 将客户id作为分区密钥的一部分将确保一个客户的数据不能被另一个客户查看 将客户id作为集群列的一部分,开发人员必须确保客户id是where子句的一部分。也占用了更多的空间 有一种方法比另一种更好吗? 这将对时间序列数据产生影响,因为数据将按客户id进行分区,并且访问所有客户的超级用户将无法正确查看时间序列数据 谢谢将客户id作为分区密钥的一部分。您需要这样做,以确保每个客户的数据都存储在一起 但是,请确保customer_id不是唯一

我们支持多租户。将客户id作为分区键或集群列的一部分是否更好

将客户id作为分区密钥的一部分将确保一个客户的数据不能被另一个客户查看

将客户id作为集群列的一部分,开发人员必须确保客户id是where子句的一部分。也占用了更多的空间

有一种方法比另一种更好吗? 这将对时间序列数据产生影响,因为数据将按客户id进行分区,并且访问所有客户的超级用户将无法正确查看时间序列数据

谢谢

将客户id作为分区密钥的一部分。您需要这样做,以确保每个客户的数据都存储在一起

但是,请确保customer_id不是唯一的分区密钥。如果您有一个包含数百万行的时间序列数据集,那么您不会希望尝试将它们全部存储在同一个分区中(它会变得太大)

这将对时间序列数据产生影响,因为数据将按客户id进行分区,并且访问所有客户的超级用户将无法正确查看时间序列数据


这又回到了使用基于查询的方法设计表的问题上。如果您需要同时支持所有(或多个)客户对时间序列数据的查询,那么您可能需要设计一个表来支持该查询。

为什么会对时间序列数据产生影响?请您解释一下,为什么访问所有客户的超级用户不能正确查看时间序列数据?@simo,因为Cassandra不会对结果集进行排序。使用时间组件作为集群键将在分区键内按时间对数据进行排序。因此,我假设OP在说“无法正确查看时间序列数据”时的意思是,超级用户同时查询多个客户的数据(我不建议这样做)会找到按
customer\u id
排序的结果集,而不是按写入时间本身排序的结果集。我现在明白了,但我的情况不同,由于我将查询单个客户的数据,因此,我希望查看按时间聚类键正确排序的数据,这是正确的假设吗?