sh.addTagRange()
Nesta página
Definição
sh.addTagRange(namespace, minimum, maximum, tag)
Observação
Este método faz aliases para
sh.updateZoneKeyRange()
. O MongoDB fornece fragmentação de zona como sucessora da fragmentação com reconhecimento de tags.Attaches a range of shard key values to a shard tag created using the
sh.addShardTag()
method.You can run
updateZoneKeyRange
database command and its helperssh.updateZoneKeyRange()
andsh.addTagRange()
on an unsharded collection or a non-existing collection.sh.addTagRange()
takes the following arguments:ParâmetroTipoDescriçãonamespace
string
The namespace of the sharded collection to tag.
minimum
documento
The minimum value of the chave de fragmento range to include in the tag. The minimum is an inclusive match. Specify the minimum value in the form of
<fieldname>:<value>
. This value must be of the same BSON type or types as the shard key.maximum
documento
The maximum value of the shard key range to include in the tag. The maximum is an exclusive match. Specify the maximum value in the form of
<fieldname>:<value>
. This value must be of the same BSON type or types as the shard key.tag
string
The name of the tag to attach the range specified by the
minimum
andmaximum
arguments to.Usar
sh.addShardTag()
to ensure that the balancer migrates documents that exist within the specified range to a specific shard or set of shards.Emita
sh.addTagRange()
somente quando conectado a uma instânciamongos
.
Compatibilidade
Esse método está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Esse comando não é suportado em clusters M,0 M,2 M5 e Flex. Para obter mais informações, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Comportamento
Limites
As faixas de zona estão sempre inclusas no limite inferior e exclusivas do limite superior.
Distribuição inicial de chunks para collections vazias ou inexistentes
If you are considering performing zone sharding
on an empty or non-existent collection, use sh.addTagRange()
to create the zones and zone ranges before sharding the collection.
Creating zones and zone ranges on empty or non-existing collections allows
MongoDB to optimize the initial chunk creation and distribution process when
sharding the collection. This optimized process supports faster setup of zoned
sharding with less balancer overhead than creating zones after sharding. The
balancer performs all chunk management after the
optimized initial chunk creation and distribution.
Para obter um exemplo de definição de zona e zona para distribuição inicial de parte, consulte Predefinir zona e zona para uma Collection vazia ou não existente.
Distribuição inicial de chunks com chaves de shard com hash compostas
O MongoDB oferece suporte a collections de fragmentação em índices com hash compostos. O MongoDB pode executar a criação e a distribuição otimizadas do chunk inicial ao fragmentar a collection vazia ou inexistente em uma chave shard com hash composto.
Se o campo com hash for o prefixo da chave de fragmento (ou seja, o primeiro campo na chave de fragmento), todos os itens a seguir deverão ser verdadeiros para que o MongoDB execute a criação e a distribuição inicial do chunk:
A collection tem um único intervalo de zona com
MinKey
para todos os campos de limite inferior eMaxKey
para todos os campos de limite superior.sh.shardCollection()
especifica a opção presplitHashedZones: true .
Se o campo hashed não for o prefixo da chave de shard (ou seja, a chave de shard tem um ou mais campos principais não hasheados), todos os itens a seguir deverão ser verdadeiros para que o MongoDB execute a criação e a distribuição inicial do chunk:
A coleção tem uma faixa de zona para cada combinação de valores de campo de prefixo distintos (ou seja, todos os campos que precedem o campo hashed).
Para o limite inferior de cada faixa de zona , especifique
MinKey
para o campo hashed e todos os campos subsequentes.Para cada faixa de zona, pelo menos um campo de prefixo de limite superior deve diferir de sua contraparte de limite inferior.
sh.shardCollection()
especifica a opção presplitHashedZones: true .
Para obter um exemplo mais completo da definição de zona e zona para a distribuição inicial de parte em uma chave de fragmento com hash, consulte Pre-definir zona e zona para uma Collection vazia ou não existente.
Coleções descartadas
A eliminação de uma coleção exclui seus intervalos de zonas/tags associados.
Nas versões anteriores, o MongoDB não remove as associações de tags para uma collection descartada e, se posteriormente você criar uma nova collection com o mesmo nome, as associações de tags antigas serão aplicadas à nova collection.
Exemplo
Given a shard key of {state: 1, zip: 1}
, the following operation
creates a tag range covering zip codes in New York State:
sh.addTagRange( "exampledb.collection", { state: "NY", zip: MinKey }, { state: "NY", zip: MaxKey }, "NY" )