Implementar Multi-tenancy

Em Milvus, multi-tenancy significa que vários clientes ou equipas - referidos como tenants -partilham o mesmo cluster enquanto mantêm ambientes de dados isolados.

O Milvus suporta quatro estratégias de multi-tenancy, cada uma oferecendo um compromisso diferente entre escalabilidade, isolamento de dados e flexibilidade. Este guia apresenta cada opção, ajudando-o a escolher a estratégia mais adequada para o seu caso de utilização.

Estratégias de multilocação

Milvus suporta multi-tenancy em quatro níveis: Banco de dados, Coleção, Partição e Chave de Partição.

Multitenancy ao nível da base de dados

Com o multi-tenancy ao nível da base de dados, cada inquilino recebe uma base de dados correspondente que contém uma ou mais colecções.

Database Level Multi Tenancy Multiluguer ao nível da base de dados

  • Escalabilidade: A estratégia de multi-tenancy ao nível da base de dados suporta um máximo de 64 inquilinos por defeito.

  • Isolamento de dados: Os dados em cada base de dados são totalmente separados, oferecendo um isolamento de dados de nível empresarial ideal para ambientes regulamentados ou clientes com necessidades de conformidade rigorosas.

  • Flexibilidade: Cada base de dados pode ter colecções com esquemas diferentes, oferecendo uma organização de dados altamente flexível e permitindo que cada inquilino tenha o seu próprio esquema de dados.

  • Outros: Esta estratégia também suporta o RBAC, permitindo um controlo refinado do acesso do utilizador por inquilino. Além disso, pode carregar ou libertar dados de forma flexível para inquilinos específicos para gerir eficazmente os dados quentes e frios.

Multitenancy ao nível da coleção

Com o multilocatário ao nível da coleção, é atribuída uma coleção a cada inquilino, oferecendo um forte isolamento de dados.

Collection Level Multi Tenancy Multiluguer ao nível da coleção

  • Escalabilidade: Uma vez que um cluster pode conter até 65.536 colecções por predefinição, esta estratégia pode acomodar o mesmo número de inquilinos no cluster.

  • Isolamento de dados: As colecções são fisicamente isoladas umas das outras. Esta estratégia proporciona um forte isolamento de dados.

  • Flexibilidade: Esta estratégia permite que cada coleção tenha o seu próprio esquema, acomodando inquilinos com diferentes esquemas de dados.

  • Outros: Esta estratégia também suporta RBAC, permitindo um controlo de acesso granular sobre os locatários. Além disso, pode carregar ou libertar dados de forma flexível para inquilinos específicos para gerir eficazmente dados quentes e frios.

Multitenancy em nível de partição

No multilocatário ao nível da partição, cada locatário é atribuído a uma partição criada manualmente dentro de uma coleção partilhada.

Partition Level Multi Tenancy Multiluguer ao nível da partição

  • Escalabilidade: Uma coleção pode conter até 1024 partições por coleção, permitindo o mesmo número de inquilinos dentro da mesma.

  • Isolamento de dados: Os dados de cada locatário são fisicamente separados por partições.

  • Flexibilidade: Esta estratégia requer que todos os locatários partilhem o mesmo esquema de dados. E as partições precisam de ser criadas manualmente.

  • Outros: O RBAC não é suportado no nível da partição. Os locatários podem ser consultados individualmente ou em várias partições, o que torna essa abordagem adequada para cenários que envolvem consultas agregadas ou análises em segmentos de locatários. Além disso, é possível carregar ou liberar dados de forma flexível para locatários específicos para gerenciar dados quentes e frios com eficiência.

Multilocação em nível de chave de partição

Com esta estratégia, todos os locatários partilham uma única coleção e esquema, mas os dados de cada locatário são automaticamente encaminhados para 16 partições fisicamente isoladas com base no valor da chave de partição. Embora cada partição física possa conter vários locatários, os dados de diferentes locatários permanecem logicamente separados.

Partition Key Level Multi Tenancy Nível da chave de partição Multi-inquilino

  • Escalabilidade: A estratégia de nível de chave de partição oferece a abordagem mais escalável, suportando milhões de locatários.

  • Isolamento de dados: Esta estratégia oferece um isolamento de dados relativamente fraco porque vários locatários podem partilhar uma partição física.

  • Flexibilidade: Como todos os locatários devem compartilhar o mesmo esquema de dados, essa estratégia oferece flexibilidade limitada de dados.

  • Outros: O RBAC não é suportado no nível da chave de partição. Os locatários podem ser consultados individualmente ou em várias partições, o que torna esta abordagem adequada para cenários que envolvem consultas agregadas ou análises em segmentos de locatários.

Escolher a estratégia multi-tenancy correta

A tabela abaixo oferece uma comparação abrangente entre os quatro níveis de estratégias de multilocação.

Nível da base de dados

Nível de coleção

Nível de partição

Nível de chave de partição

Isolamento de dados

Físico

Físico

Físico

Físico + Lógico

Número máximo de locatários

Por defeito, 64. Pode aumentá-lo modificando o parâmetro maxDatabaseNum no ficheiro de configuração Milvus.yaml.

Por predefinição, 65.536. Pode ser aumentado modificando o parâmetro maxCollectionNum no ficheiro de configuração Milvus.yaml.

Até 1 024 por coleção.

Milhões de euros

Flexibilidade do esquema de dados

Alta

Média

Baixa

Baixa

Suporte RBAC

Sim

Sim

Não

Não

Desempenho da pesquisa

Forte

Forte

Médio

Médio

Suporte de pesquisa entre inquilinos

Não

Não

Sim

Sim

Suporte para o tratamento eficaz de dados quentes e frios

Sim

Sim

Sim

Não Atualmente, não há suporte para a estratégia de nível de chave de partição.

Há vários factores a considerar quando se escolhe a estratégia multi-tenancy em Milvus.

  1. Escalabilidade: Chave de partição > Partição > Coleção > Base de dados

    Se espera suportar um número muito grande de locatários (milhões ou mais), utilize a estratégia de nível de chave de partição.

  2. Fortes requisitos de isolamento de dados: Base de dados = Coleção > Partição > Chave de partição

    Escolha estratégias de nível de banco de dados, coleção ou partição se tiver requisitos rígidos de isolamento de dados físicos.

  3. Esquema de dados flexível para os dados de cada locatário: Base de dados > Coleção > Partição = Chave de partição

    As estratégias ao nível da base de dados e ao nível da coleção proporcionam total flexibilidade nos esquemas de dados. Se as estruturas de dados dos seus inquilinos forem diferentes, escolha multilocação ao nível da base de dados ou ao nível da coleção.

  4. Outros

    1. Desempenho: O desempenho da pesquisa é determinado por vários factores, incluindo índices, parâmetros de pesquisa e configurações de máquina. O Milvus também suporta o ajuste de desempenho. Recomenda-se testar o desempenho real antes de selecionar uma estratégia de multi-tenancy.

    2. Tratamento eficaz de dados quentes e frios: Atualmente, as estratégias ao nível da base de dados, ao nível da coleção e ao nível da partição suportam o tratamento de dados quentes e frios.

    3. Pesquisas entre locatários: Somente as estratégias em nível de partição e em nível de chave de partição suportam consultas entre locatários.

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?