實施多租戶
在 Milvus 中,多租戶是指多個客戶或團隊(稱為租戶)共用同一集群,同時保持隔離的資料環境。
Milvus 支援四種多租戶策略,每種策略都在可擴展性、資料隔離和靈活性之間提供不同的權衡。本指南將介紹每個選項,協助您選擇最適合您使用個案的策略。
多租用策略
Milvus 支援四個層級的多租戶:資料庫、資料集、分區和分區鑰匙。
資料庫層級多租戶
使用資料庫級多租戶,每個租戶都會收到一個對應的資料庫,其中包含一個或多個集合。
資料庫層級多租戶
可擴展性:資料庫層級多租戶策略預設最多支援 64 個租戶。
資料隔離:每個資料庫中的資料完全分離,提供企業級的資料隔離,非常適合受監管的環境或有嚴格合規需求的客戶。
彈性:每個資料庫都可以擁有不同模式的集合,提供高度彈性的資料組織,並允許每個租戶擁有自己的資料模式。
其他:此策略也支援 RBAC,可針對每個租戶的使用者存取進行精細控制。此外,您可以彈性載入或釋放特定租戶的資料,以有效管理冷熱資料。
集合層級多重租用
使用集合層級多租戶功能,每個租戶都會被指派一個集合,提供強大的資料隔離功能。
集合層級多租戶
可擴充性:由於群集預設最多可容納 65,536 個集合,因此此策略可在群集中容納相同數量的租戶。
資料隔離:資料集彼此實體隔離。此策略提供強大的資料隔離。
彈性:此策略允許每個集合擁有自己的模式,可容納不同資料模式的租戶。
其他:此策略也支援 RBAC,允許對租戶進行細粒度存取控制。此外,您可以彈性載入或釋放特定租戶的資料,以有效管理冷熱資料。
分割層級多重租用
在磁碟分割層級多重租用中,每個租戶都會被指派到共用集合中手動建立的磁碟分割。
分割層級多重租用
可擴充性:每個集合最多可容納 1,024 個分割區,讓其中的租戶數目相同。
資料隔離:每個租戶的資料都由分割區實際分隔。
彈性:此策略要求所有租戶共用相同的資料模式。而且需要手動建立分區。
其他:分區層級不支援 RBAC。租戶可以單獨或跨多個分區進行查詢,這使得此方法非常適合涉及跨租戶區段的聚合查詢或分析的場景。此外,您可以彈性載入或釋放特定租戶的資料,以有效管理冷熱資料。
分區鑰匙層級多租戶
使用此策略,所有租戶共用單一集合和模式,但每個租戶的資料會根據分割區金鑰值自動路由至 16 個實體隔離的分割區。雖然每個實體磁碟分割可包含多個租戶,但不同租戶的資料在邏輯上仍是分開的。
分割區金鑰層級多租戶
可擴充性:磁碟分割金鑰層級策略提供最具擴充能力的方法,可支援數百萬個租戶。
資料隔離:此策略提供相對較弱的資料隔離,因為多位租戶可以共用一個實體磁碟分割。
彈性:由於所有租戶必須共用相同的資料模式,因此此策略提供的資料彈性有限。
其他:分區鑰匙層級不支援 RBAC。租戶可以單獨或跨越多個分區進行查詢,這使得此方法非常適合涉及跨租戶區段的聚合查詢或分析的場景。
選擇正確的多租戶策略
下表全面比較了四種層級的多租戶策略。
資料庫層級 |
資料集層級 |
分割層級 |
分割鑰匙層級 |
|
|---|---|---|---|---|
資料隔離 |
物理層級 |
實體 |
實體 |
物理 + 邏輯 |
最大租戶數 |
預設為 64。您可以透過修改 Milvus.yaml 配置檔案中的 |
預設為 65,536。您可以透過修改 Milvus.yaml 配置檔案中的 |
每個集合最多 1,024 個。 |
百萬 |
資料模式彈性 |
高 |
中 |
低 |
低 |
RBAC 支援 |
是 |
有 |
不支援 |
不支援 |
搜尋效能 |
強 |
強 |
中等 |
中等 |
跨租户搜索支持 |
無 |
不支援 |
是 |
是 |
支援有效處理冷熱資料 |
是 |
是 |
是 |
No 目前不支援分割區金鑰層級策略。 |
當您選擇 Milvus 的多租戶策略時,有幾個因素需要考慮。
擴充性:分割區金鑰 > 分割區 > 集合 > 資料庫
如果您預期會支援非常多的租戶 (數百萬或更多),請使用分割區金鑰層級策略。
強大的資料隔離需求:資料庫 = 資料集 > 磁碟分割 > 磁碟分割金鑰
如果您有嚴格的實體資料隔離要求,請選擇資料庫、集合或磁碟分割層級策略。
每個租戶資料的彈性資料模式:資料庫 > 資料集 > 磁碟分割 = 磁碟分割金鑰
資料庫層級和資料集層級策略提供完全彈性的資料模式。如果您租戶的資料結構不同,請選擇資料庫層級或集合層級的多重租用。
其他
效能:搜尋效能取決於各種因素,包括索引、搜尋參數和機器配置。Milvus 也支援效能調整。建議您在選擇多租用策略前,先測試實際效能。
有效處理冷熱資料:目前,資料庫層級、集合層級和分割區層級的策略都支援冷熱資料處理。
跨租用戶搜尋:只有磁碟分割層級和磁碟分割 key 層級策略支援跨租客查詢。