🚀 Try Zilliz Cloud, the fully managed Milvus, for free—experience 10x faster performance! Try Now>>

milvus-logo
LFAI
Home
  • Konzepte

Strategien mit mehreren Mandanten

In vielen Anwendungsfällen möchten Entwickler einen Milvus-Cluster betreiben und mehrere Mandanten bedienen, z. B. mehrere Produktteams oder Millionen von Endbenutzern. In diesem Leitfaden werden einige verschiedene Strategien zur Erreichung von Mandantenfähigkeit auf Milvus erläutert.

Milvus ist so konzipiert, dass es Multi-Tenancy auf Datenbank-, Sammel- oder Partitionsebene unterstützt. Das Ziel der Mandantenfähigkeit ist es, die Daten und Ressourcen voneinander zu trennen. Die Implementierung von Mandantenfähigkeit auf verschiedenen Ebenen kann ein unterschiedliches Ausmaß an Isolation erreichen, ist aber auch mit unterschiedlichem Overhead verbunden. Im Folgenden werden die Kompromisse zwischen diesen Ebenen erläutert.

Datenbankorientierte Mehrmandantenfähigkeit

Seit der Milvus-Version 2.2.9 können Sie mehrere Datenbanken in einem einzigen Milvus-Cluster erstellen. Diese Funktion ermöglicht eine datenbankorientierte Mandantenfähigkeit, indem jedem Mandanten eine Datenbank zugewiesen wird, so dass er seine eigenen Sammlungen erstellen kann. Dieser Ansatz bietet die beste Daten- und Ressourcenisolierung für Mandanten, ist aber auf maximal 64 Datenbanken in einem Cluster beschränkt.

Sammlungsorientierte Mehrmandantenfähigkeit

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

Eine Sammlung für alle Tenants

Die Verwendung einer einzigen Sammlung zur Implementierung 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. Um die Suchleistung zu verbessern, können Sie mit der folgenden partitionierten Mandantenfähigkeit optimieren.

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 Ressourcen bei der Planung erfordert und auf maximal 10.000 Sammlungen in einem Cluster beschränkt ist.

Partitionsorientierte Multi-Tenancy

Es gibt zwei Möglichkeiten, 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 dem Hash-Wert des Partitionsschlüsselfeldes. Bei der Durchführung von ANN-Suchen durchsucht Milvus nur die Partition, die den Partitionsschlüssel enthält. Dadurch wird der Umfang der Suche weitgehend reduziert und eine bessere Leistung erzielt als ohne Partitionsschlüssel.

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 Zahl der Mieter in Millionenhöhe erwarten.

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?