milvus-logo
LFAI
Home
  • Konzepte

Mehrmandantenstrategien

Da ChatGPT immer beliebter wird, erstellen immer mehr Entwickler ihre eigenen SaaS-Dienste unter Verwendung des CVP-Stacks (ChatGPT, Vector Database, Prompt). In diesem Leitfaden wird erklärt, wie man Multi-Tenancy auf Milvus, einer der weltweit am häufigsten verwendeten Vektordatenbanken, erreichen kann, um mit diesem Trend Schritt zu halten.

Multi-Tenancy ist eine Architektur, bei der eine einzige Milvus-Instanz mehrere Mandanten bedient. Die einfachste Möglichkeit, Mandanten zu unterscheiden, besteht darin, ihre Daten und Ressourcen von denen anderer zu trennen. Jeder Tenant hat seine eigenen dedizierten Ressourcen oder teilt sich Ressourcen mit anderen, um Milvus-Objekte wie Datenbanken, Sammlungen und Partitionen zu verwalten. Basierend auf diesen Objekten gibt es entsprechende Methoden, um Milvus-Multi-Tenancy zu erreichen.

Datenbankorientierte Mandantenfähigkeit

Seit Milvus Version 2.2.9 ist die Objektdatenbank nun verfügbar. Sie können mehrere Datenbanken in einem einzigen Milvus-Cluster erstellen. Diese neue Funktion ermöglicht eine datenbankorientierte Mandantenfähigkeit, indem jedem Mandanten eine Datenbank zugewiesen wird, so dass er seine eigenen Sammlungen und Partitionen erstellen kann, um das Beste aus seinen Daten herauszuholen. Diese Strategie gewährleistet zwar die Datenisolierung und die Suchleistung für die Mandanten, aber es kann zu einer Verschwendung von Ressourcen für untätige Mandanten kommen.

Sammlungsorientierte Multi-Tenancy

Es gibt zwei Möglichkeiten, um eine sammlungsorientierte Mandantenfähigkeit zu erreichen.

Eine Sammlung für alle Tenants

Die Verwendung einer einzigen Sammlung zur Umsetzung der Mandantenfähigkeit durch Hinzufügen eines Mandantenfeldes zur Unterscheidung zwischen den Mandanten ist eine einfache Option. Fügen Sie bei der ANN-Suche nach einem bestimmten Tenant einen Filterausdruck hinzu, um alle Entitäten herauszufiltern, die zu anderen Tenants gehören. Dies ist der einfachste Weg, um Multi-Tenancy zu erreichen. Beachten Sie jedoch, dass die Leistung des Filters zum Flaschenhals der ANN-Suche werden kann.

Eine Sammlung pro Mandant

Ein anderer Ansatz besteht darin, eine Sammlung für jeden Mandanten zu erstellen, um seine eigenen Daten zu speichern, anstatt die Daten aller Mandanten in einer einzigen Sammlung zu speichern. Dies bietet eine bessere Datenisolierung und Abfrageleistung. Beachten Sie jedoch, dass dieser Ansatz mehr Investitionen in die Ressourcenplanung, die Betriebsfähigkeit und die Kosten erfordert und möglicherweise nicht anwendbar ist, wenn die Anzahl der Mandanten die maximale Anzahl von Sammlungen, die ein einzelner Milvus-Cluster unterstützt, überschreitet.

Partitionsorientierte Multi-Mandantenschaft

Es gibt auch zwei Möglichkeiten, um eine partitionierte Mandantenfähigkeit zu erreichen:

Eine Partition pro Mandant

Die Verwaltung einer einzigen Sammlung ist viel einfacher als die Verwaltung mehrerer Sammlungen. Anstatt mehrere Sammlungen zu erstellen, können Sie jedem Mandanten eine Partition zuweisen, um eine flexible Datenisolierung und Speicherverwaltung zu erreichen. Die Suchleistung der partitionorientierten Mandantenfähigkeit ist wesentlich besser als die der sammlungsorientierten Mandantenfähigkeit. Beachten Sie jedoch, dass die Anzahl der Mandanten der Sammlung die maximale Anzahl von Partitionen, die eine Sammlung enthalten kann, nicht überschreiten sollte.

Partitionsschlüssel-basierte Mandantenfähigkeit

Milvus 2.2.9 führt eine neue Funktion namens Partitionsschlüssel ein. Bei der Erstellung einer Sammlung kann ein Mandantenfeld als Partitionsschlüsselfeld festgelegt werden. Milvus speichert Entitäten in einer Partition entsprechend den Werten im Partitionsschlüsselfeld. Bei der Durchführung von ANN-Suchen wechselt Milvus zu einer Partition, die auf dem angegebenen Partitionsschlüssel basiert, filtert Entitäten gemäß dem Partitionsschlüssel und sucht unter den gefilterten Entitäten.

Diese Strategie hebt die Begrenzung der maximalen Anzahl von Mandanten auf, die eine Milvus-Sammlung unterstützen kann, und vereinfacht die Ressourcenverwaltung erheblich, da Milvus automatisch Partitionen für Sie verwaltet.

Zusammenfassend lässt sich sagen, dass Sie eine oder mehrere der oben genannten Multi-Tenancy-Strategien verwenden können, um Ihre eigene Lösung zu erstellen. Die folgende Tabelle enthält Vergleiche zwischen diesen Strategien in Bezug auf die Datenisolierung, die Suchleistung und die maximale Anzahl von Mandanten.

DatenisolierungSuchperf.Max. Anzahl von MandantenEmpfohlene Szenarien
DatenbankorientiertStarkStark64Für diejenigen, bei denen die Sammlungen je nach Projekt variieren müssen, besonders geeignet für die Datenisolierung zwischen Abteilungen in Ihrem Unternehmen.
Eine Sammlung für alleSchwachMittelK.A.Für Unternehmen, die nur über begrenzte Ressourcen verfügen und denen eine Datenisolierung nicht wichtig ist.
Eine Sammlung pro MieterStarkStarkWeniger als 10.000Für diejenigen, die weniger als 10.000 Mandanten pro Cluster haben.
Eine Partition pro MandantMittelStark4,096Für diejenigen, die weniger als 4.096 Mandanten pro Sammlung haben.
Partitionsschlüssel-basiertMittelStark10,000,000+Für Unternehmen, die einen raschen Anstieg der Mieterzahlen in die Millionen voraussagen.

Was kommt als nächstes?

Verwalten vonDatenbankschemata

Übersetzt vonDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

War diese Seite hilfreich?