我有多租户模型
tenant_template (
tenant_id int,
sub_org_id int,
code text,
active bool,
......
)
带有分区键 ->(tenant_id, sub_org_id)
和集群键 ->code
我们必须使用 admin api 获取所有活动配置,
最大活动行可能达到 1000(单行大小约为 11 KB)。
- 从数据库中获取所有数据好吗?
- 行数的任何最佳实践都应该是单个分区
Cassandra 中分区的经验规则是:
但这不是任意的或类似的事情,并且在投入生产之前总是欢迎性能测试。大隔断不便于移动和紧凑。
我觉得你描述的很好。
是的,1000 行就足够了,而且与许多数据模型相比,这个值相当小。
Cassandra 在单个分区中最多可以有 20 亿个单元(或 2 31,这是 Java 整数的大小)。如果您的表格有 10 列,则总共有 10K 个单元格 (
1000 rows x 10 columns
),这远低于限制。假设您正确计算了行大小,分区大小也将远低于建议的 100MB/分区(不是硬性限制,只是建议)。
需要注意的一件重要事情是,对一个集群有利的东西不一定对另一个集群有利。评估您概述的条件是否可接受有很多因素。这些包括(但不限于)用例、访问模式、硬件(CPU、内存、磁盘)、集群负载等。
我们始终建议您使用类似生产的负载和数据进行彻底测试,以确定您的数据模型是否适合您的用例。干杯!