Criar parte em um cluster fragmentado
Na maioria das situações, umcluster fragmentado criará/ divisão 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 ingestão de um grande volume de dados em um cluster desequilibrado, ou onde a ingestão de dados levará ao desequilíbrio de dados, como com chaves de shard que aumentam ou diminuem monotonicamente. A pré-divisão dos blocos de uma coleção fragmentada vazia pode ajudar com o rendimento nesses casos.
Como alternativa, ao definir as zonas e as zona de zonas antes de fragmentar uma collection vazia ou inexistente, a operação de collection de fragmentação cria chunks para as faixas de zona definidas, bem como quaisquer chunks adicionais para cobrir toda a faixa dos valores da chave de shard e executa um distribuição inicial de chunks com base nas faixas de zona . Para obter mais informações, consulte Coleção 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 os chunks iniciais criados e distribuídos pelo comando de fragmentação, consulte Coleção vazia.
Para obter informações sobre o balanceador e a distribuição automática de chunks entre shards, consulte Balanceador de cluster e migração de chunks.
Para obter informações sobre como migrar chunks manualmente, consulte Migrar chunks em um cluster fragmentado.