卡桑德拉的多租户

时间:2017-01-05 22:15:56

标签: cassandra data-modeling multi-tenant

我们支持多租户。将客户ID作为分区键或集群列

的一部分更好

将客户ID作为分区密钥的一部分将确保其他客户无法查看其中一个客户数据。

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

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

由于

1 个答案:

答案 0 :(得分:1)

将customer_id作为分区键的部分。您需要这样才能确保每个客户的数据存储在一起。

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

  

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

这回归到使用基于查询的方法设计表。如果您有查询要求一次性支持所有(或多个)客户的时间序列数据查询,那么您可能需要一个旨在支持该表的数据库。