Menu Docs

Página inicial do DocsMongoDB Ops Manager

Managed collection fragmentadas

Nesta página

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

Importante

A interface de usuário de collection fragmentadas managed está obsoleta. Ops Manager 7.0.0 não incluirá esta funcionalidade.

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 Ops Manager pode criar clusters fragmentados e collections fragmentadas nesses clusters.

Esta página explica como o Ops Manager pode gerenciar coleções fragmentadas, incluindo a determinar como os documentos são distribuídos dentro das 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 documento em uma collection fragmentada uniformemente entre os fragmentos no cluster. Você pode usar zona de fragmentação para managed a distribuição de documento 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 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 zonas.

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 sharding de zona com o lançamento do MongoDB 3.4.

Os procedimentos a seguir explicam como o Ops Manager pode:

  • managed suas collection fragmentadas

  • Alterar quando o balanceador de cluster fragmentado é executado

  • Criar novas collection fragmentadas

  • Importar suas collection fragmentadas para o Ops Manager

  • Definir zonas para clusters fragmentados

  • Definir faixas para collection fragmentadas

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

Você pode usar o Ops Manager para managed collection fragmentadas. Se você quiser que o Ops Manager managed collection fragmentadas, você precisará executar primeiro o processo de importação no Ops Manager. Isso garante que nenhuma collection tenha suas configurações substituídas acidentalmente.

1
2

A aba Fragmentação é exibida.

3
4

Importa quaisquer collection e zona fragmentadas existentes.

5
6

Existem alguns possíveis erros que podem acontecer ao importar collection fragmentadas.

Intervalos sobrepostos

O Ops Manager não suporta intervalos definidos sobrepostos.

Exemplo

Uma chave de shard composta pode parecer ter intervalos sobrepostos 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 parte para uma collection onde cada parte 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 parte, 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.

  1. Verifique o status dos intervalos de fragmentos.

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

  3. Remova uma tag do intervalo de chaves de shard.

  4. Adicione uma nova tag a um intervalo de chave de shard.

Incompatibilidade de tipo de dados

Para cada faixa, o 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 de BSON diferente para cada campo na chave. O Ops Manager verifica isso quando as collection fragmentadas são importadas e quando os intervalos são criados.

Observação

As chaves Min e 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.

  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 de chaves de shard.

  4. Adicione uma nova tag a um intervalo de chave de shard.

Tipo de dados inválido

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

  • String

  • Inteiro

  • Duplo

  • Longo

  • Data

  • Timestamp

  • ObjectId

  • MinKey / MaxKey

Dica

Veja também:

Você pode usar mongosh para resolver esse problema diretamente no banco 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 de chaves de shard.

  4. Adicione uma nova tag a um intervalo de chave de shard.

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 Ops Manager para definir quando seu cluster fragmentado equilibra os dados entre os shards.

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 afetar o desempenho. A eficiência do balancer depende da seleção da chave de shard. Use a interface do gerente de balancer do Ops Manager para definir janelas específicas durante as quais o balancer pode ser executado, como 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 habilitado e você quiser desativá-lo, alterne Manage Balancer para No.

4

Para alterar quando o balanceador é 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, 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 coleção fragmentada usando o Ops Manager.

Importante

1
2
3

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

  • Marque hashed se quiser usar uma hashed shard key. Você pode expandir 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 de presplitHashedZones para executar a criação e distribuição inicial de partes para uma collection vazia ou inexistente com base na zona e faixas de zona definidas para a collection.

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

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

  • Marque Enforce Unique Key se quiser ter nomes de chave exclusivos.

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

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

  • Marque Enforce Unique Key se quiser 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 é suportado a partir da versão 4 do MongoDB.4. Se você fizer hash de uma chave de shard composta e quiser fazer o downgrade para FCV 4.2, você deve primeiro soltar a coleção fragmentada com uma chave hashed.

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 desta seção se pretende usar a fragmentação zona para suas collection fragmentadas. Caso contrário, você poderá pular esta seção.

As zonas são um projeto nomeado de um ou mais fragmentos. Após criar uma ou mais zonas, você pode atribuir um intervalo de valores de chave de fragmento 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ários intervalos e vários fragmentos. Cada shard 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 tem um intervalo marcado associado a ela, ela falhará. Se você tentar remover o último fragmento de uma zona que tem faixas marcadas com 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 fragmento. 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 fragmento. O valor máximo é o limite superior exclusivo dos valores da chave de shard. Uma faixa pode pertencer a apenas 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 quaisquer alterações de configuração não feitas por meio da interface do Ops Manager.

A automação não muda nada em collection fragmentadas que não são managed por meio do Ops Manager.

2

As chaves de fragmento compostas têm um intervalo por chave de fragmento de 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 hashed, os tipos de valor de faixa válidos para o campo hashed serão:

  • NumberLong

  • minKey

  • maxKey

O valor mínimo de um intervalo é 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 e máximo absoluto de qualquer faixa sem listar explicitamente um valor específico.

Cada faixa pode ser associada apenas 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 para a collection fornecida.

Você não pode atribuir o mesmo intervalo a outra zona desta 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 é managed, suas collections fragmentadas e zona não são excluídas. Essas collections e zona não podem mais ser managed na interface do Ops Manager.

← Adicionar um shard a um Cluster MongoDB