milvus-logo
LFAI
Home
  • Concepts

Stratégies multi-tenant

Alors que ChatGPT gagne en popularité, de plus en plus de développeurs créent leurs propres services SaaS en utilisant la pile CVP (ChatGPT, Vector Database, Prompt). Ce guide explique comment mettre en place une architecture multi-tenant sur Milvus, l'une des bases de données vectorielles les plus utilisées au monde, afin de suivre cette tendance.

La multi-location est une architecture dans laquelle une instance unique de Milvus sert plusieurs locataires. La façon la plus simple de distinguer les locataires est de séparer leurs données et leurs ressources de celles des autres. Chaque locataire dispose de ses propres ressources dédiées ou partage des ressources avec d'autres pour gérer les objets Milvus tels que les bases de données, les collections et les partitions. En fonction de ces objets, il existe des méthodes correspondantes pour réaliser le multi-tenant Milvus.

Multi-tenance orientée base de données

Depuis la version 2.2.9 de Milvus, la base de données des objets est désormais disponible. Vous pouvez créer plusieurs bases de données dans un seul cluster Milvus. Cette nouvelle fonctionnalité permet de réaliser une multi-location orientée base de données en attribuant une base de données à chaque locataire, afin qu'ils puissent créer leurs propres collections et partitions pour tirer le meilleur parti de leurs données. Toutefois, cette stratégie garantit l'isolation des données et les performances de recherche pour les locataires, mais les ressources risquent d'être gaspillées pour les locataires inactifs.

Multi-location axée sur la collecte

Il existe deux façons de parvenir à une multi-location orientée collection.

Une collection pour tous les locataires

L'utilisation d'une collection unique pour mettre en œuvre la multi-location en ajoutant un champ de locataire pour distinguer les locataires est une option simple. Lorsque vous effectuez des recherches ANN pour un locataire spécifique, ajoutez une expression de filtrage pour éliminer toutes les entités qui appartiennent à d'autres locataires. Il s'agit de la méthode la plus simple pour parvenir à la multi-location. Cependant, il faut savoir que les performances du filtre peuvent devenir le goulot d'étranglement des recherches ANN.

Une collection par locataire

Une autre approche consiste à créer une collection pour chaque locataire afin de stocker ses propres données, au lieu de stocker les données de tous les locataires dans une seule collection. Cela permet de mieux isoler les données et d'améliorer les performances des requêtes. Toutefois, il convient de garder à l'esprit que cette approche nécessite un investissement plus important en termes de planification des ressources, de capacité opérationnelle et de coûts et qu'elle peut ne pas être applicable si le nombre de locataires dépasse le nombre maximum de collections qu'un seul cluster Milvus peut prendre en charge.

Multi-locations orientées vers les partitions

Il existe également deux façons d'obtenir une multi-location orientée partition :

Une partition par locataire

La gestion d'une seule collection est beaucoup plus facile que la gestion de plusieurs collections. Au lieu de créer plusieurs collections, envisagez d'attribuer une partition à chaque locataire afin d'obtenir une isolation des données et une gestion de la mémoire flexibles. Les performances de recherche de la multi-location orientée partition sont bien meilleures que celles de la multi-location orientée collection. Il convient toutefois de noter que le nombre de locataires de la collection ne doit pas dépasser le nombre maximal de partitions qu'une collection peut contenir.

Multi-tenance basée sur les clés de partition

Milvus 2.2.9 introduit une nouvelle fonctionnalité appelée clé de partition. Lors de la création d'une collection, nommez un champ de locataire et faites-en le champ de clé de partition. Milvus stocke les entités dans une partition en fonction des valeurs du champ clé de partition. Lors des recherches ANN, Milvus passe à une partition basée sur la clé de partition spécifiée, filtre les entités en fonction de la clé de partition et effectue une recherche parmi les entités filtrées.

Cette stratégie lève la limite du nombre maximum de locataires qu'une collection Milvus peut prendre en charge et simplifie considérablement la gestion des ressources car Milvus gère automatiquement les partitions pour vous.

Pour récapituler, vous pouvez utiliser l'une ou l'autre des stratégies multi-locataires ci-dessus, ou certaines d'entre elles, pour créer votre propre solution. Le tableau suivant établit des comparaisons entre ces stratégies en termes d'isolation des données, de performances de recherche et de nombre maximum de locataires.

Isolation des donnéesPerformances de rechercheNombre maximal de locatairesScénarios recommandés
Orienté base de donnéesForteForte64Pour ceux qui ont besoin que les collections varient en fonction des projets, particulièrement adapté à l'isolation des données entre les départements de votre organisation.
Une seule collection pour tousFaibleMoyenneSANS OBJETPour ceux qui ont des ressources limitées et qui ne sont pas sensibles à l'isolation des données.
Une collection par locataireForteFortMoins de 10 000Pour ceux qui ont moins de 10 000 locataires par cluster.
Une partition par locataireMoyenneFort4,096Pour ceux qui ont moins de 4 096 locataires par collection.
Basé sur une clé de partitionMoyenFort10,000,000+Pour ceux qui prévoient une augmentation rapide du nombre de locataires à plusieurs millions.

Prochaine étape

Gérer leschéma desbases de données

Traduit parDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Cette page a-t - elle été utile ?