多租户策略
在 Zilliz Cloud 中,多租户(multi-tenancy)指多个客户或团队(即租户)共享同一个集群,同时保持各自数据环境的隔离。
Zilliz Cloud 支持 4 种多租户策略,每种策略在可扩展性、数据隔离性和灵活性之间具有不同的权衡。本文将逐一介绍这些策略,帮助您为具体使用场景选择最合适的方案。
Zilliz Cloud 的多租户策略
Zilliz Cloud 支持以下四个级别的多租户策略:Database 级别、Collection 级别、 Partition 级别和 Partition-key 级别。
Database 级别多租户
在 Database 级别的多租户模式中,每个租户对应一个独立的 Database,各个 Database 中可以包含一个或多个 Collection。
-
可扩展性:仅 Dedicated 版本的集群支持 Database 级别的多租户策略。最多可支持 1,024 个租户。
-
数据隔离:每个数据库之间完全隔离,提供企业级的数据隔离能力,适用于合规性要求严格的场景。
-
灵活性:不同数据库中的 Collection 可以拥有各自的数据 Schema,支持高度灵活的数据组织。
-
其他:支持 RBAC,可对每个租户的用户访问权限进行精细控制。您还可以按需加载或释放某个租户的数据,实现冷热数据分层管理。
Collection 级别多租户
在 Collection 级别的多租户模式中,每个租户对应一个 Collection,数据隔离性强。
-
可扩展性:一个集群最多支持 16,384 个 collections,即最多支持 16,384 个租户。
-
数据隔离:Collections 在物理层面相互隔离,具备良好的数据隔离能力。
-
灵活性:每个 Collection 可以拥有自己的数据 Schema,适配不同租户的数据需求。
-
其他:支持 RBAC,可对每个租户的访问权限进行精细管理。支持按租户加载或释放数据,实现冷热数据管理。
Partition 级别多租户
在 Partition 级别的多租户模式中,所有租户共享同一个 Collection,但每个租户分配一个手动创建的 Partition。
可扩展性:一个 Collection 最多支持 1,024 个 Partition,即支持 1,024 个租户。
数据隔离:每个租户的数据在物理上由 Partition 隔离。
灵活性:所有租户必须共享同样的数据 Schema,且需要手动创建 Partition。
其他:该级别不支持 RBAC。支持对单个或多个 Partition 进行查询,适用于需要跨租户聚合查询或分析的场景。同时支持按租户加载或释放数据,实现冷热数据管理。
分区键级多租户
在 Partition key 级别的策略下,所有租户共享同一个 Collection 和 schema,但系统会根据 Partition key 的值自动将数据分配到 16 个自动创建的 Partitio 中。虽然单个 Partition 中可能包含多个租户,但各租户数据在逻辑上是相互隔离的。
-
可扩展性:该策略具有最强的扩展能力,可支持百万级租户。
-
数据隔离:数据隔离能力相对较弱,因为多个租户可能共享一个物理分区。
-
灵活性:所有租户必须使用相同的数据 Schema,灵活性受限。
-
其他:该级别不支持 RBAC。支持对单个或多个 Partition 进行查询,适用于跨租户聚合分析等场景。
选择合适的多租户策略
下表提供了四种多租户策略的详细对比。
Database 级别 | Collection 级别 | Partition 级别 | Partition key 级别 | |
---|---|---|---|---|
支持的集群版本 | 仅 Dedicated 版本集群支持 | 所有版本 | 所有版本 | 所有版本 |
数据隔离 | 物理隔离 | 物理隔离 | 物理隔离 | 物理隔离 + 逻辑隔离 |
最多可支持的租户数量 | 1024 | 受集群版本影响,最多 16,384。详见使用限制。 | 受集群版本影响,每个 Collection 中最多 1,024。详见使用限制。 | 百万 |
数据 Schema 灵活性 | 高 | 中 | 低 | 低 |
是否支持 RBAC | 是 | 是 | 否 | 否 |
搜索性能 | 高 | 高 | 中 | 中 |
是否支持跨租户搜索 | 否 | 否 | 是 | 是 |
是否支持冷热数据分层管理 | 是 | 是 | 是 | 否 当前 Partition key 级别的多组策略暂不支持。如果您的租户数量极大且需要分层管理冷热数据,请联系我们。 |
在 Zilliz Cloud 中选择多租户策略时,建议综合考虑以下因素:
-
可扩展性:Partition Key > Partition > Collection > Database 如果您需要支持数量极大的租户(如百万级以上),建议选择 Partition key 级别的策略。
-
强数据隔离需求:Database = Collection > Partition > Partition key 如果租户间的数据必须物理隔离,建议选择 Database、Collection 或 Partition 级别的策略。
-
数据灵活性(不同租户的数据 Schema 不同):Database > Collection > Partition = Partition key Database 和 Collection 级别的策略允许每个租户拥有不同的数据 Schema,更适合数据结构差异大的场景。
-
其他因素:
-
性能:检索性能受索引、检索参数和机器配置等多种因素影响,Zilliz Cloud 支持性能调优。建议在选择策略前进行实际性能测试。
-
冷热数据管理:目前,Database、Collection 和 Partition 级别的策略都支持冷热数据分层管理。若您计划使用 Partition key 级别的策略但有冷热数据处理需求,请联系我们。
-
跨租户查询:仅 Partition 和 Partition key 级别的策略支持跨租户查询操作。
-