$shardedDataDistribution (agregação)
Nesta página
Definição
$shardedDataDistribution
Novidades na versão 6.0.3.
Retorna informações sobre a distribuição de dados em coleções fragmentadas.
Observação
Este estágio de agregação está disponível apenas em
mongos
.Este estágio de agregação deve ser executado no banco de dados do
admin
. O usuário deve ter a ação de privilégioshardedDataDistribution
.
Sintaxe
O estágio shardedDataDistribution
tem a seguinte sintaxe:
db.aggregate( [ { $shardedDataDistribution: { } } ] )
Campos de Saída
O estágio $shardedDataDistribution
gera uma array de documento para cada collection fragmentada no reconhecimento de data center. Esses documentos contêm os seguintes campos:
Nome do campo | Tipo de Dados | Descrição |
---|---|---|
ns | string | Namespace da coleção fragmentada. |
shards | array | Fragmentos na coleção com as informações de distribuição de dados para cada fragmento. |
shards.numOrphanedDocs | inteiro | Número de documentos órfãos no fragmento. |
shards.numOwnedDocuments | inteiro | Número de documentos pertencentes ao fragmento. |
shards.ownedSizeBytes | inteiro | Tamanho em bytes de documentos de propriedade do shard quando descompactados. |
shards.orphanedSizeBytes | inteiro | Tamanho em bytes de documentos órfãos no fragmento quando descompactados. |
Exemplos
Retornar todas as métricas de distribuição de dados fragmentados
Para retornar todas as métricas de distribuição de dados fragmentados, execute o seguinte:
db.aggregate([ { $shardedDataDistribution: { } } ])
Saída de exemplo:
[ { "ns": "test.names", "shards": [ { "shardName": "shard-1", "numOrphanedDocs": 0, "numOwnedDocuments": 6, "ownedSizeBytes": 366, "orphanedSizeBytes": 0 }, { "shardName": "shard-2", "numOrphanedDocs": 0, "numOwnedDocuments": 6, "ownedSizeBytes": 366, "orphanedSizeBytes": 0 } ] } ]
Métricas de retorno para um fragmento específico
Para retornar métricas de distribuição de dados fragmentados para um fragmento específico, execute o seguinte:
db.aggregate([ { $shardedDataDistribution: { } }, { $match: { "shards.shardName": "<name of the shard>" } } ])
Retornar métricas para um namespace
Para retornar dados de distribuição de dados fragmentados para um namespace, execute o seguinte:
db.aggregate([ { $shardedDataDistribution: { } }, { $match: { "ns": "<database>.<collection>" } } ])
Confirme que não há mais documentos órfãos.
A partir do MongoDB 6.0.3, você pode executar uma agregação usando o estágio $shardedDataDistribution
para confirmar que não resta nenhum documento órfão:
db.aggregate([ { $shardedDataDistribution: { } }, { $match: { "ns": "<database>.<collection>" } } ])
$shardedDataDistribution
tem saída semelhante à seguinte:
[ { "ns": "test.names", "shards": [ { "shardName": "shard-1", "numOrphanedDocs": 0, "numOwnedDocuments": 6, "ownedSizeBytes": 366, "orphanedSizeBytes": 0 }, { "shardName": "shard-2", "numOrphanedDocs": 0, "numOwnedDocuments": 6, "ownedSizeBytes": 366, "orphanedSizeBytes": 0 } ] } ]
Certifique-se de que "numOrphanedDocs"
seja 0
para cada shard no cluster.