milvus-logo
LFAI
Home
  • Conceitos

Estratégias de multilocação

À medida que o ChatGPT ganha popularidade, mais programadores estão a criar os seus próprios serviços SaaS utilizando a pilha CVP (ChatGPT, Vetor Database, Prompt). Este guia explica como obter multilocação no Milvus, um dos bancos de dados vetoriais mais usados no mundo, para acompanhar essa tendência.

O multilocatário é uma arquitetura em que uma única instância do Milvus serve vários locatários. A forma mais simples de distinguir os utilizadores é separando os seus dados e recursos dos dos outros. Cada locatário tem os seus próprios recursos dedicados ou partilha recursos com outros para gerir objectos Milvus como bases de dados, colecções e partições. Com base nestes objectos, existem métodos correspondentes para conseguir o multi-tenancy Milvus.

Multitenancy orientado para a base de dados

Desde a versão 2.2.9 do Milvus, a base de dados de objectos está agora disponível. É possível criar várias bases de dados num único cluster Milvus. Esta nova funcionalidade permite obter um multi-tenancy orientado para a base de dados, atribuindo uma base de dados a cada inquilino, de modo a que estes possam criar as suas próprias colecções e partições para tirar o máximo partido dos seus dados. No entanto, esta estratégia garante o isolamento dos dados e o desempenho da pesquisa para os inquilinos, mas os recursos podem ser desperdiçados em inquilinos inactivos.

Multitenancy orientado para colecções

Existem duas formas possíveis de conseguir um multilocatário orientado para colecções.

Uma coleção para todos os inquilinos

A utilização de uma única coleção para implementar o multilocatário, adicionando um campo de locatário para distinguir entre locatários, é uma opção simples. Ao efetuar pesquisas ANN para um locatário específico, adicione uma expressão de filtro para filtrar todas as entidades que pertencem a outros locatários. Esta é a forma mais simples de alcançar o multi-tenancy. No entanto, tenha em atenção que o desempenho do filtro pode tornar-se o estrangulamento das pesquisas ANN.

Uma coleção por locatário

Outra abordagem consiste em criar uma coleção para cada locatário para armazenar os seus próprios dados, em vez de armazenar os dados de todos os locatários numa única coleção. Isto permite um melhor isolamento dos dados e um melhor desempenho das consultas. No entanto, tenha em atenção que esta abordagem requer um maior investimento na programação de recursos, na capacidade operacional e nos custos e pode não ser aplicável se o número de inquilinos exceder o número máximo de colecções que um único cluster Milvus suporta.

Multilocação orientada para a partição

Existem também duas formas possíveis de conseguir um multi-tenancy orientado por partições:

Uma partição por inquilino

Gerir uma única coleção é muito mais fácil do que gerir várias colecções. Em vez de criar várias colecções, considere a possibilidade de atribuir uma partição a cada locatário para obter um isolamento de dados e uma gestão de memória flexíveis. O desempenho de pesquisa do multilocatário orientado para a partição é muito melhor do que o multilocatário orientado para a coleção. No entanto, tenha em atenção que o número de inquilinos da coleção não deve exceder o número máximo de partições que uma coleção pode conter.

Multilocação baseada em chaves de partição

Milvus 2.2.9 introduz uma nova caraterística chamada chave de partição. Aquando da criação de uma coleção, nomeie um campo de inquilino e torne-o no campo de chave de partição. Milvus irá armazenar entidades numa partição de acordo com os valores no campo chave da partição. Ao efetuar pesquisas ANN, o Milvus muda para uma partição com base na chave de partição especificada, filtra as entidades de acordo com a chave de partição e pesquisa entre as entidades filtradas.

Essa estratégia eleva o limite do número máximo de locatários que uma coleção do Milvus pode suportar e simplifica muito o gerenciamento de recursos, pois o Milvus gerencia automaticamente as partições para você.

Recapitulando, pode utilizar uma ou algumas das estratégias multi-tenancy acima referidas para formar a sua própria solução. A tabela a seguir faz comparações entre essas estratégias em termos de isolamento de dados, desempenho de pesquisa e número máximo de locatários.

Isolamento de dadosDesempenho da pesquisaNúmero máximo de locatáriosCenários recomendados
Orientada para a base de dadosForteForte64Para aqueles que necessitam que as colecções variem com os projectos, especialmente adequado para o isolamento de dados entre departamentos na sua organização.
Uma coleção para todosFracaMédiaN/APara aqueles que têm recursos limitados e não são sensíveis ao isolamento de dados.
Uma coleção por inquilinoForteForteMenos de 10.000Para aqueles que têm menos de 10.000 inquilinos por cluster.
Uma partição por locatárioMédiaForte4,096Para aqueles que têm menos de 4.096 locatários por coleção.
Baseado em chave de partiçãoMédiaForte10,000,000+Para aqueles que prevêem um rápido aumento de locatários para milhões.

O que vem a seguir

Geriro esquemadas bases de dados

Traduzido porDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?