milvus-logo
LFAI
Home
  • Conceptos

Estrategias multi-tenancy

A medida que ChatGPT gana popularidad, más desarrolladores crean sus propios servicios SaaS utilizando la pila CVP (ChatGPT, base de datos vectorial, Prompt). Esta guía explica cómo conseguir multitenencia en Milvus, una de las bases de datos vectoriales más utilizadas del mundo, para seguir esta tendencia.

El multiarrendamiento es una arquitectura en la que una única instancia de Milvus sirve a varios arrendatarios. La forma más sencilla de distinguir a los inquilinos es separar sus datos y recursos de los de los demás. Cada arrendatario tiene sus propios recursos dedicados o comparte recursos con otros para gestionar objetos Milvus como bases de datos, colecciones y particiones. En función de estos objetos, existen métodos correspondientes para conseguir la multitenencia de Milvus.

Arrendamiento múltiple orientado a bases de datos

Desde la versión 2.2.9 de Milvus, está disponible la base de datos de objetos. Puede crear múltiples bases de datos en un único clúster Milvus. Esta nueva característica permite conseguir multitenencia orientada a bases de datos asignando una base de datos a cada inquilino, de forma que puedan crear sus propias colecciones y particiones para sacar el máximo partido a sus datos. Sin embargo, esta estrategia garantiza el aislamiento de los datos y el rendimiento de las búsquedas para los inquilinos, pero pueden desperdiciarse recursos en inquilinos ociosos.

Arrendamiento múltiple orientado a colecciones

Hay dos formas posibles de conseguir la multitenencia orientada a colecciones.

Una colección para todos los inquilinos

Utilizar una única colección para implementar la multitenencia añadiendo un campo de inquilino para distinguir entre inquilinos es una opción sencilla. Al realizar búsquedas de RNA para un inquilino específico, añada una expresión de filtro para filtrar todas las entidades que pertenezcan a otros inquilinos. Esta es la forma más sencilla de conseguir la multitenencia. Sin embargo, tenga en cuenta que el rendimiento del filtro puede convertirse en el cuello de botella de las búsquedas RNA.

Una colección por inquilino

Otro enfoque consiste en crear una colección para que cada inquilino almacene sus propios datos, en lugar de almacenar los datos de todos los inquilinos en una única colección. Esto proporciona un mejor aislamiento de los datos y un mejor rendimiento de las consultas. Sin embargo, tenga en cuenta que este enfoque requiere una mayor inversión en programación de recursos, capacidad operativa y costes, y puede no ser aplicable si el número de arrendatarios supera el número máximo de colecciones que admite un único clúster Milvus.

Arrendamiento múltiple orientado a particiones

También hay dos formas posibles de lograr la multitenencia orientada a particiones:

Una partición por inquilino

Gestionar una única colección es mucho más fácil que gestionar varias. En lugar de crear varias colecciones, considere la posibilidad de asignar una partición a cada inquilino para lograr un aislamiento de datos y una gestión de memoria flexibles. El rendimiento de búsqueda de la multi-tenencia orientada a particiones es mucho mejor que la multi-tenencia orientada a colecciones. Sin embargo, hay que tener en cuenta que el número de inquilinos de la colección no debe superar el número máximo de particiones que puede contener una colección.

Multiarrendamiento basado en claves de partición

Milvus 2.2.9 introduce una nueva característica llamada clave de partición. Al crear una colección, nombre un campo de inquilino y conviértalo en el campo de clave de partición. Milvus almacenará las entidades en una partición según los valores del campo de clave de partición. Al realizar búsquedas RNA, Milvus cambia a una partición basada en la clave de partición especificada, filtra las entidades según la clave de partición y busca entre las entidades filtradas.

Esta estrategia elimina el límite del número máximo de inquilinos que puede soportar una colección Milvus y simplifica enormemente la gestión de recursos porque Milvus gestiona automáticamente las particiones por usted.

Para recapitular, puede utilizar una o varias de las estrategias multiarrendamiento anteriores para crear su propia solución. La siguiente tabla compara estas estrategias en términos de aislamiento de datos, rendimiento de búsqueda y número máximo de inquilinos.

Aislamiento de datosRendimiento de búsquedaNúmero máximo de inquilinosEscenarios recomendados
Orientado a la base de datosFuerteFuerte64Para aquellos que requieren que las colecciones varíen con los proyectos, especialmente adecuado para el aislamiento de datos entre los departamentos de su organización.
Una colección para todosDébilMediaN/APara aquellos que tienen recursos limitados y son insensibles al aislamiento de datos.
Una recopilación por inquilinoFuerteFuerteMenos de 10.000Para aquellos que tienen menos de 10.000 inquilinos por clúster.
Una partición por inquilinoMediaFuerte4,096Para aquellos que tienen menos de 4.096 inquilinos por colección.
Basado en clave de particiónMediaFuerte10,000,000+Para los que prevén un rápido aumento de inquilinos hasta millones.

Lo que viene después

Gestionarel esquema delas bases de datos

Traducido porDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

¿Fue útil esta página?