Criar parte em um cluster fragmentado
Na maioria das situações, umcluster fragmentado criará/dividirá e distribuirá chunks automaticamente sem intervenção do usuário. No entanto, em um número limitado de casos, o MongoDB não consegue criar chunks suficientes ou distribuir dados com rapidez suficiente para suportar a taxa de transferência necessária.
Por exemplo, se você quiser consumir um grande volume de dados em um cluster desequilibrado ou em que a ingestão de dados leve ao desequilíbrio de dados, como com chaves de fragmento que aumentam ou diminuem monotonicamente. A pré-divisão dos parte de uma collection fragmentada vazia pode ajudar com o rendimento nestes casos.
Como alternativa, ao definir as zona e zona de zonas antes de shard uma collection vazia ou inexistente, a operação de collection de shard cria parte para as zonas de zonas definidas, bem como quaisquer parte adicionais para cobrir toda a faixa dos valores da chave de shard e executa uma distribuição inicial de parte com base nas zonas de zonas. Para obter mais informações, consulte collection vazia.
Aviso
Apenas chunks pré-divididos para uma collection vazia. A divisão manual de chunks para uma coleção preenchida pode levar a intervalos e tamanhos de chunks imprevisíveis, bem como a um comportamento de balanceamento ineficiente ou ineficaz.
Para dividir chunks vazios manualmente, você pode executar o comando split
:
Exemplo
Para criar chunks para documentos na collection myapp.users
usando o campo email
como a chave de shard, use a seguinte operação em mongosh
:
for ( var x=97; x<97+26; x++ ){ for ( var y=97; y<97+26; y+=6 ) { var prefix = String.fromCharCode(x) + String.fromCharCode(y); db.adminCommand( { split: "myapp.users", middle: { email : prefix } } ); } }
Isso pressupõe um tamanho de coleção de 100 milhões de documentos.
Para obter informações sobre as partes iniciais criados e distribuídos pelo comando de fragmentação, consulte collection Vazia.
Para obter informações sobre o balanceador e a distribuição automática de parte entre shards, consulte balanceador de cluster e migração de parte.
Para obter informações sobre como migrar parte manualmente, consulte Migrar parte em um cluster fragmentado.