Menu Docs
Página inicial do Docs
/
MongoDB Ops Manager

Gerenciar coleções fragmentadas

Nesta página

  • Visão geral
  • Habilitar gerenciamento de collection fragmentado
  • Alterar quando o balanceador de cluster fragmentado é executado
  • Crie uma nova coleção fragmentada
  • Configurar fragmentação por zonas
  • Desativar gerenciamento de collection fragmentado

Importante

A interface de usuário de coleções fragmentadas gerenciadas está obsoleta. MongoDB Ops Manager 7.0.0 não incluirá esse recurso.

a fragmentação distribui dados por várias máquinas. O MongoDB usa fragmentação para oferecer suporte a implantações com conjuntos de dados muito grandes e operações de alto rendimento. O MongoDB Ops Manager pode criar clusters fragmentados e collections fragmentadas nesses clusters.

Esta página explica como o MongoDB Ops Manager pode gerenciar coleções fragmentadas, incluindo determinar como os documentos são distribuídos dentro de coleções fragmentadas.

A fragmentação envolve a definição de uma chave de shard que é então usada para dividir documentos dentro de uma collection. Consulte o manual do MongoDB para obter uma explicação mais detalhada sobre fragmentação.

Uma chave de shard consiste em um ou mais campos indexados que existem em todos os documentos de uma collection. Uma chave de fragmento em um índice composto é conhecida como uma chave de fragmento composta. Cada collection só pode ter uma chave de shard. Você não pode alterar a chave de shard depois de fragmentar uma coleção. Um cluster fragmentado pode oferecer suporte a collections fragmentadas e não fragmentadas. Consulte o manual do MongoDB para obter as melhores práticas de escolha de uma chave de shard.

O cluster fragmentado tenta distribuir os documentos em uma coleção fragmentada uniformemente entre os fragmentos no cluster. Você pode usar zonas de fragmentação para gerenciar a distribuição de documentos dentro da collection.

A fragmentação por zona associa intervalos dos valores de chave de shard de uma collection a um ou mais shards no cluster chamado de zona. O MongoDB eventualmente roteia documentos dentro de um determinado intervalo para a zona associada . Isso permite a distribuição direcionada de dados. O MongoDB Ops Manager oferece suporte à fragmentação por zonas e padrão. Consulte o manual do MongoDB para obter uma explicação mais detalhada da fragmentação da zona .

Observação

A Fragmentação com reconhecimento de tags e a Fragmentação de zonas são intercambiáveis. Transições de fragmentação com reconhecimento de tags para o zone sharding com o lançamento do MongoDB 3.4.

Os procedimentos a seguir explicam como o MongoDB Ops Manager pode:

  • Gerencie suas coleções compartilhadas

  • Alterar quando o cluster fragmentado é executado

  • Criar novas coleções fragmentadas

  • Importar suas coleções fragmentadas para o MongoDB Ops Manager

  • Definir zonas para clusters fragmentados

  • Definir intervalos para collections fragmentadas

Cada procedimento pressupõe que você clicou no botão Deployment para exibir a página Deployment primeiro.

Você pode usar o MongoDB Ops Manager para gerenciar collections fragmentadas. Se quiser que o MongoDB Ops Manager gerencie as collections fragmentadas, execute o processo de importação no MongoDB Ops Manager primeiro. Isso garante que nenhuma collection tenha suas configurações substituídas acidentalmente.

1
2

A aba Fragmentação é exibida.

3
4

Importa quaisquer coleções e zonas fragmentadas existentes.

5
6

Existem alguns erros possíveis que podem ocorrer ao importar coleções fragmentadas.

Intervalos sobrepostos

MongoDB Ops Manager não permite faixas definidas sobrepostas.

Exemplo

Uma chave de shard composta pode parecer ter faixas sobrepostas quando não tem. Este exemplo explica a diferença.

Uma chave de shard composta simples compreende dois números inteiros com valores entre 1 e 10. Os intervalos de chunk para uma collection onde cada chunk tem aproximadamente 64 MB são:

min
max

[$min, $min]

[1, 8]

[1,8]

[3,1]

[3,1]

[5,2]

[5,2]

[5,10]

[5,10]

[7,3]

[7,3]

[$max,$max]

Os intervalos são baseados nos dois valores combinados (ou compostos) e não em cada valor individualmente. O segundo valor aumenta e diminui em cada bloco, mas a combinação sempre aumenta do mínimo para o máximo.

Você pode usar mongosh para resolver esse problema diretamente no banco de dados de dados.

  1. Verifique o status dos intervalos de fragmentos.

  2. Revise os intervalos para possível sobreposição.

  3. Remova uma tag do intervalo da chave de shard.

  4. Adicione uma nova tag a um intervalo de chaves de fragmento.

Incompatibilidade de tipo de dados

Para cada faixa, o MongoDB Ops Manager exige que os valores mínimo e máximo de cada campo em uma chave de shard sejam do mesmo tipo de dados BSON . Uma chave de shard composta em um intervalo pode usar um tipo BSON diferente para cada campo na chave. O MongoDB Ops Manager verifica isso quando as collections fragmentadas são importadas e quando os intervalos são criados.

Observação

A chave Min e a chave Max são tipos de dados diferentes e são a única exceção a não misturar tipos de dados BSON no intervalo.

Você pode usar mongosh para resolver esse problema diretamente no banco de dados de dados.

  1. Verifique o status dos intervalos de fragmentos.

  2. Tipo Verificação dos valores mínimos e máximos.

  3. Remova uma tag do intervalo da chave de shard.

  4. Adicione uma nova tag a um intervalo de chaves de fragmento.

Data type invalid

Os valores mínimo e máximo para uma faixa só podem usar oito tipos de dados BSON:

  • String

  • Inteiro

  • Double

  • Long

  • Data

  • Timestamp

  • ObjectId

  • MinKey / MaxKey

Dica

Veja também:

Você pode usar mongosh para resolver esse problema diretamente no banco de dados de dados.

  1. Verifique o status dos intervalos de fragmentos.

  2. Tipo Verificação dos valores mínimos e máximos.

  3. Remova uma tag do intervalo da chave de shard.

  4. Adicione uma nova tag a um intervalo de chaves de fragmento.

7
  • Se as alterações forem aceitáveis, clique em Confirm and Deploy.

  • Se as alterações precisarem ser revisadas, clique em Cancel e retorne à etapa 1.

Você pode usar o MongoDB Ops Manager para definir quando seu cluster fragmentado equilibra os dados entre os fragmentos.

Cada cluster fragmentado tem um processo chamado balanceador que trabalha para garantir uma distribuição uniforme de blocos em cada fragmento. A migração de chunks pelo cluster fragmentado pode impacto o desempenho. A eficiência do balancer depende da seleção da chave de shard. Use a interface do gerenciador do Balancer do MongoDB Ops Manager para definir Windows específico durante o qual o Balancer pode ser executado, como o agendamento de rodadas de balanceamento durante os horários de pico.

Se você quiser alterar a janela de balanceamento do cluster fragmentado:

1
2

A aba Balancer é exibida.

3

Alterne Manage Balancer para Yes.

Observação

Se o gerenciamento do Balanceador estiver ativado e você quiser desativá-lo, alterne Manage Balancer para No.

4

Para alterar quando o Balanceador for executado:

  1. Clique em à direita de Schedule the Balancer.

  2. Na Start caixa , digite a hora em que a janela deve começar a usar 24-horas.

  3. Na Stop caixa , digite a hora em que a janela deve terminar usando 24-horas.

  4. Clique em Save.

Observação

Os valores para Start e Stop podem estar entre 00:00 e 23:59, mas Stop pode ser um valor anterior a Start. Se Stop for anterior a Start, então Stop será tratado como sendo no dia seguinte.

Exemplo

Se quiser que a janela de migração esteja entre 11:00 pm e 2:00 hs, defina Start como 23:00 e Stop como 02:00 no dia seguinte.

5
  1. Alterne Enable Balancer para Yes..

  2. Clique em Save.

6

O Ops Manager exibe as alterações propostas.

  1. Se estiver satisfeito, clique em Confirm & Deploy.

  2. Para fazer mais alterações de configuração, clique em Cancel. Clique em Modify para o cluster fazer alterações adicionais.

Você pode criar uma nova collection fragmentada usando o MongoDB Ops Manager.

Importante

1
2
3

Existem duas opções mutuamente exclusivas para chaves de shard:

  • Marque hashed se quiser usar uma hashed shard key. Você pode expandir o Advanced Settings para otimizar opcionalmente a distribuição de documentos em sua coleção. Para otimizar, você pode fazer o seguinte:

    • Marque a caixa de seleção presplitHashedZones para executar a criação e a distribuição inicial de chunks para uma collection vazia ou inexistente com base nas zona e faixas de zonas definidas para a collection.

    • Especifique o número mínimo de chunks a serem criados inicialmente ao fragmentar uma coleção vazia com uma chave fragmentada com hash. Recomendamos 2 blocos, mas você pode especificar até 8192 por fragmento. Esta configuração corresponde à configuração MongoDB numInitialChunks para collections fragmentadas.

    Para saber mais sobre essas opções, consulte sh.shardCollection().

  • Marque Enforce Unique Key se você deseja ter nomes de chave exclusivos.

Uma chave de fragmento não pode ser única e com hash.

4
  • Você pode fazer hash de até uma chave em uma chave de shard composta.

  • Marque Enforce Unique Key se você deseja ter nomes de chave exclusivos.

Uma chave de shard composta não pode incluir mais de três chaves.

Importante

O hash de uma chave de shard composta é compatível a partir da versão 4.4 do MongoDB . Se você fizer hash de uma chave de shard composta e quiser fazer o downgrade para FCV 4.2, primeiro descartará a collection fragmentada com uma chave de hash.

5

Se quiser usar a fragmentação de zonas nessa collection, siga as etapas em Definir como as collections são fragmentadas usando faixas.

6
7
  • Se as alterações forem aceitáveis, clique em Confirm and Deploy.

  • Se as alterações precisarem ser revisadas, clique em Cancel e retorne à etapa 1.

Observação

Siga os próximos dois procedimentos nesta seção se pretende usar a fragmentação por zonas para suas collections fragmentadas. Caso contrário, você pode pular esta seção.

As zonas são um projeto nomeado de um ou mais shards. Após criar uma ou mais zonas, você pode atribuir uma faixa de valores de chave de shard e seus documentos correspondentes a uma zona. O MongoDB eventualmente roteia documentos dentro de um determinado intervalo para a zona associada . Cada zona pode incluir várias faixas e vários shards. Cada fragmento pode pertencer a mais de uma zona. Cada shard exibe sua(s) zona(s) à direita de seu nome em Deployment.

1
2
3
4
5

Se você tentar excluir uma zona de fragmento que tenha um intervalo marcado associado a ela, ela falhará. Se você tentar remover o último fragmento de uma zona que tenha faixas marcadas para ela, isso também falhará. Você deve mover todos os intervalos marcados para outra zona antes de remover o último fragmento dessa zona.

6
  • Se as alterações forem aceitáveis, clique em Confirm and Deploy.

  • Se as alterações precisarem ser revisadas, clique em Cancel e retorne à etapa 1.

Os intervalos especificam valores mínimos e máximos para cada campo em uma chave de shard. Cada faixa definida está associada a uma única zona. O MongoDB eventualmente roteia documentos dentro de um determinado intervalo para a zona associada. O valor mínimo é um limite inferior inclusivo dos valores da chave de shard. O valor máximo é o limite superior exclusivo dos valores da chave de shard. Uma faixa pode pertencer a somente uma zona, mas uma zona pode ter várias faixas.

Os documentos são roteados com base nas zonas e faixas configuradas quando o balancer move o intervalo para a zona desejada. Quando isso ocorre, os documentos dentro de um intervalo são roteados para a zona associada e aqueles fora de um intervalo podem ser roteados para qualquer fragmento no cluster.

1

Importante

Depois de automatizar a fragmentação, a automação reverte todas as alterações de configuração não feitas por meio da interface do MongoDB Ops Manager .

A automação não muda nada em collections fragmentadas que não sejam gerenciadas pelo MongoDB Ops Manager.

2

As chaves de shard compostas têm um intervalo por chave de shard componente , mas juntas estão associadas a apenas uma zona.

Observação

Se sua chave de shard for uma chave de shard composta com um campo com hash, os tipos de valor de faixa válidos para o campo com hash serão:

  • NumberLong

  • minKey

  • maxKey

O valor mínimo de uma faixa é inclusivo e o valor máximo é exclusivo.

Exemplo

Os dois intervalos a seguir não se sobrepõem:

min
max
zona

1

10

uma

10

20

B

Observação

Min e Max são valores absolutos: o valor mínimo absoluto e máximo de qualquer faixa sem listar explicitamente um valor específico.

Cada faixa pode ser associada somente a uma única zona. Você não pode atribuir o mesmo intervalo a mais de uma zona.

3

Você pode adicionar intervalos de chaves de shard adicionais à collection fornecida.

Você não pode atribuir o mesmo intervalo a outra zona dessa maneira.

4
5
  • Se as alterações forem aceitáveis, clique em Confirm and Deploy.

  • Se as alterações precisarem ser revisadas, clique em Cancel e retorne à etapa 1.

Clique em Unmanage.

Importante

Quando uma collection fragmentada não é gerenciada, suas collections fragmentadas e zonas não são excluídas. Essas collections e zonas não podem mais ser gerenciadas a partir da interface do MongoDB Ops Manager .

Próximo

MongoDB Ops Manager