Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

db.colección.getShardDistribution() (método mongosh)

Importante

Método mongosh

Esta página documenta a mongosh método. Esta no es la documentación para un driver específico de lenguaje, como nodo.js.

Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.

db.collection.getShardDistribution()

Imprime estadísticas sobre la distribución de datos para una sharded colección.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Importante

Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulta Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El método getShardDistribution() tiene la siguiente forma:

db.collection.getShardDistribution()

Nota

El comportamiento de getShardDistribution() cambió en la versión 2.3.3 de MongoDB Shell:

  • A partir de la versión 2.3.3 de MongoDB Shell, getShardDistribution() solo contiene datos particionados regulares y no tiene en cuenta los documentos huérfanos.

  • Antes de la versión de MongoDB Shell 2.3.3, getShardDistribution() tiene en cuenta tanto los datos particionados regulares como los documentos huérfanos pendientes de eliminación. Si la colección contiene documentos huérfanos, getShardDistribution() podría indicar que la colección está desequilibrada incluso si la colección está equilibrada en términos de datos regulares. La partición que contiene datos huérfanos tiene más documentos y mayor tamaño de datos, pero el mismo número de fragmentos en comparación con otras particiones.

Lo siguiente es una muestra de salida para la distribución de una colección particionada:

Shard shard01 at shard01/localhost:27018
{
data: '38.14MB',
docs: 1000003,
chunks: 2,
'estimated data per chunk': '19.07B',
'estimated docs per chunk': 500001
}
---
Shard shard02 at shard02/localhost:27019
{
data: '38.14B',
docs: 999999,
chunks: 3,
'estimated data per chunk': '12.71B',
'estimated docs per chunk': 333333
}
---
Totals
{
data: '76.29B',
docs: 2000002,
chunks: 5,
'Shard shard01': [ '50 % data', '50 % docs in cluster', '40B avg obj size on shard' ],
'Shard shard02': [ '49.99 % data', '49.99 % docs in cluster', '40B avg obj size on shard' ]
}
Shard shard01 at <host-a> {
data: <size-a>,
docs: <count-a>,
chunks: <number of chunks-a>,
'estimated data per chunk': <size-a>/<number of chunks-a>,
'estimated docs per chunk': <count-a>/<number of chunks-a>
}
---
Shard shard02 at <host-b>
{
data: <size-b>,
docs: <count-b>,
chunks: <number of chunks-b>,
'estimated data per chunk': <size-b>/<number of chunks-b>,
'estimated docs per chunk': <count-b>/<number of chunks-b>
}
---
Totals
{
data: <stats.size>,
docs: <stats.count>,
chunks: <calc total chunks>,
Shard shard01: [ <estDataPercent-a> % data, <estDocPercent-a> % docs in cluster, stats.shards[ <shard-a> ].avgObjSize avg obj size on shard ],
Shard shard02: [ <estDataPercent-b> % data, <estDocPercent-b> % docs in cluster, stats.shards[ <shard-b> ].avgObjSize avg obj size on shard ]
}

La información de salida muestra:

Salida
Descripción

<shard-x>

Una cadena que contiene el nombre de la partición.

<host-x>

Una string que contiene el(los) nombre(s) del host.

<size-x>

Un número que incluye el tamaño de los datos, incluida la unidad de medida (por ejemplo, b, Mb).

<count-x>

Un número que informa la cantidad de documentos en la partición.

<number of chunks-x>

Un número que informa el número de fragmentos en la partición.

<size-x>/<number of chunks-x>

Un valor calculado que refleja el tamaño estimado de los datos por fragmento para la partición, incluida la unidad de medida (p. ej. b, Mb).

<count-x>/<number of chunks-x>

Un valor calculado que refleja el número estimado de documentos por fragmento para la partición.

<stats.size>

Un valor que informa el tamaño total de los datos en la colección particionada, incluida la unidad de medida.

<stats.count>

Un valor que informa el total de documentos en la colección particionada.

<calc total chunks>

Un número calculado que informa la cantidad de fragmentos de todas las particiones. Por ejemplo:

<calc total chunks> = <number of chunks-a> + <number of chunks-b>

<estDataPercent-x>

Un valor calculado que refleja, para cada partición, el tamaño de los datos como el porcentaje del tamaño total de los datos de la colección. Por ejemplo:

<estDataPercent-x> = <size-x>/<stats.size>

<estDocPercent-x>

Un valor calculado que refleja, para cada partición, el número de documentos como porcentaje del número total de documentos de la colección. Por ejemplo:

<estDocPercent-x> = <count-x>/<stats.count>

stats.shards[ <shard-x> ].avgObjSize

Un número que refleja el tamaño promedio del objeto, incluida la unidad de medida, para la partición.

Después de un apagado incorrecto de un mongod usando el motor de almacenamiento Wired Tiger, las estadísticas de recuento y tamaño reportadas por db.collection.getShardDistribution() pueden ser inexactas.

La cantidad de deriva depende del número de operaciones de inserción, actualización o eliminación realizadas entre el último punto de control y el apagado no limpio. Los puntos de control suelen ocurrir cada 60 segundos. Sin embargo, las instancias mongod que se ejecutan con configuraciones --syncdelay no por defecto pueden tener puntos de control más o menos frecuentes.

Ejecuta validate en cada colección en el mongod para restaurar las estadísticas después de un apagado no limpio.

Después de un apagado no limpio:

Volver

db.collection.getIndexes

En esta página