Página inicial do Docs → MongoDB Ops Manager
Managed collection fragmentadas
Nesta página
Importante
A interface de usuário de collection fragmentadas managed está obsoleta. Ops Manager 7.0.0 não incluirá esta funcionalidade.
Visão geral
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.
Habilitar o gerenciamento de collection fragmentadas
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.
Solucione quaisquer importações com falha. (Opcional)
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:
minmax[$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.Verifique o status dos intervalos de fragmentos.
Revise os intervalos para possível sobreposição.
- 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.Verifique o status dos intervalos de fragmentos.
Tipo Verificação dos valores mínimos e máximos.
- 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:
Revise as informações sobre os tipos de dados na especificação BSON.
Você pode usar
mongosh
para resolver esse problema diretamente no banco de dados.Verifique o status dos intervalos de fragmentos.
Tipo Verificação dos valores mínimos e máximos.
Alterar quando o balanceador de cluster fragmentado é executado
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:
Configure uma janela de tempo quando o balanceador for executado.
Para alterar quando o balanceador é executado:
Clique em à direita de Schedule the Balancer.
Na Start caixa , digite a hora em que a janela deve começar a usar 24-horas.
Na Stop caixa , digite a hora em que a janela deve terminar usando 24-horas.
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.
Criar uma nova collection fragmentada
Você pode criar uma nova coleção fragmentada usando o Ops Manager.
Importante
Se o campo ou campos escolhidos como a chave de fragmento não forem indexados, a automação criará o índice da chave de fragmento em primeiro plano. Essa operação pode afetar potencialmente o volume de trabalho de produção. Para obter mais informações sobre a compilação de índices em primeiro plano, consulte Operações de compilação de índices em uma coleção preenchida.
O Ops Manager não oferece suporte a índices compostos que cubram chaves de shard. Para saber mais sobre um índice composto na chave de shard, consulte Índices de chave de shard.
Digite o nome da chave de shard no campo Shard Key 1 .
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 MongoDBnumInitialChunks
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.
Se você deseja criar uma chave de shard composta, clique em + add another field.
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.
Clique em Set Up Ranges para zonear os shards. (Opcional)
Se quiser usar a fragmentação de zonas nessa collection, siga as etapas em Definir como as collections são fragmentadas usando faixas.
Configurar fragmentação por zonas
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.
Agrupar fragmentos em zonas
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.
Clique em Review and Deploy.
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.
Definir como as collection são fragmentadas usando intervalos
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.
Selecione o tipo de dados para a chave de fragmento.
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.
Para cada chave de fragmento, insira os valores mínimo e máximo e selecione a zona associada.
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.
Desativar o gerenciamento de collection fragmentadas
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.