Docs Menu
Docs Home
/
MongoDB Ops Manager

Gestione colecciones particionadas

Importante

La interfaz de usuario de colecciones fragmentadas administradas está obsoleta. Ops Manager 7.0.0 no incluirá esta función.

Lafragmentación distribuye los datos entre varias máquinas. MongoDB utiliza la fragmentación para soportar implementaciones con conjuntos de datos muy grandes y operaciones de alto rendimiento. Ops Manager puede crear clústeres y colecciones fragmentadas en esos clústeres.

Esta página explica cómo Ops Manager puede administrar colecciones fragmentadas, incluida la determinación de cómo se distribuyen los documentos dentro de ellas.

La fragmentación implica definir una clave de fragmentación que se utiliza para particionar documentos dentro de una colección. Consulte el manual de MongoDB para obtener una explicación más detallada sobre la fragmentación.

Una clave de partición consiste en uno o más campos indexados presentes en cada documento de una colección. Una clave de partición en un índice compuesto se conoce como clave de partición compuesta. Cada colección solo puede tener una clave de partición. No se puede cambiar la clave de partición una vez fragmentada. Un clúster fragmentado admite colecciones tanto fragmentadas como no fragmentadas.Consulte el manual de MongoDB para conocer las prácticas recomendadas para elegir una clave de partición.

El clúster fragmentado intenta distribuir los documentos de una colección fragmentada de forma uniforme entre los fragmentos del clúster. Puede usar zonas de fragmentación para gestionar la distribución de documentos dentro de la colección.

La fragmentación por zonas asocia rangos de valores de clave de fragmento de una colección a uno o más fragmentos del clúster, denominado zona. MongoDB enruta los documentos dentro de un rango determinado a la zona asociada. Esto permite una distribución de datos dirigida. Ops Manager admite la fragmentación por zonas y la predeterminada. Consulte el manual de MongoDB para obtener una explicación más detallada de la fragmentación por zonas.

Nota

La fragmentación basada en etiquetas y la fragmentación por zonas son intercambiables. La fragmentación basada en etiquetas se transforma en fragmentación por zonas con el lanzamiento de MongoDB.3.4

Los siguientes procedimientos explican cómo Ops Manager puede:

  • Administra tus colecciones fragmentadas

  • Cambiar cuándo se ejecuta el balanceador del clúster fragmentado

  • Crear nuevas colecciones fragmentadas

  • Importe sus colecciones particionadas en Ops Manager

  • Definir zonas para clústeres fragmentados

  • Definir rangos para colecciones fragmentadas

Cada procedimiento supone que ha hecho clic en el Deployment Botón para mostrar primero la página Deployment.

Puede usar Ops Manager para administrar colecciones fragmentadas. Si desea que Ops Manager administre colecciones fragmentadas, primero debe ejecutar el proceso de importación en Ops Manager. Esto garantiza que ninguna colección tenga su configuración anulada accidentalmente.

1
2

Se muestra la pestaña Fragmentación.

3
4

Importa cualquier colección y zona fragmentada existente.

5
6

Hay algunos errores posibles que podrían ocurrir al importar colecciones fragmentadas.

Rangos superpuestos

Ops Manager no admite rangos definidos superpuestos.

Ejemplo

Una clave de fragmento compuesta puede parecer tener rangos superpuestos cuando no es así. Este ejemplo explica la diferencia.

Una clave de fragmento compuesta simple consta de dos enteros con valores entre 1 y 10. Los rangos de fragmentos para una colección donde cada fragmento tiene aproximadamente 64 MB son:

min
máximo

[$min, $min]

[1, 8]

[1,8]

[3,1]

[3,1]

[5,2]

[5,2]

[5,10]

[5,10]

[7,3]

[7,3]

[$max,$max]

Los rangos se basan en la combinación de dos valores (o compuestos),no en cada valor individualmente. El segundo valor sube y baja en cada fragmento, pero la combinación siempre aumenta del mínimo al máximo.

Puedes utilizar mongosh para resolver este problema directamente en la base de datos.

  1. Verifique el estado de los rangos de fragmentos.

  2. Revise los rangos para detectar posibles superposiciones.

  3. Eliminar una etiqueta del rango de claves de fragmento.

  4. Añada una nueva Etiqueta a un Rango de claves de partición.

Desajuste de tipos de datos

Para cada rango, Ops Manager requiere que los valores mínimo y máximo de cada campo de una clave de fragmentación sean del mismo tipo de datos BSON. Una clave de fragmentación compuesta en un rango puede usar un tipo de datos BSON diferente para cada campo de la clave. Ops Manager verifica esto al importar las colecciones fragmentadas y al crear los rangos.

Nota

La clave Min y la clave Max son de diferentes tipos de datos y son la única excepción para no mezclar tipos de datos BSON en el rango.

Puede utilizar para resolver este problema directamente en la base de mongosh datos.

  1. Verifique el estado de los rangos de fragmentos.

  2. Comprobación de tipos para valores mínimos y máximos.

  3. Eliminar una etiqueta del rango de claves de fragmento.

  4. Añada una nueva Etiqueta a un Rango de claves de partición.

Data type invalid

Los valores mínimo y máximo de un rango solo pueden usar ocho tipos de datos BSON:

  • String

  • entero

  • Double

  • Long

  • fecha

  • Marca de tiempo

  • ObjectId

  • Tecla mínima / Tecla máxima

Tip

Puede utilizar para resolver este problema directamente en la base de mongosh datos.

  1. Verifique el estado de los rangos de fragmentos.

  2. Comprobación de tipos para valores mínimos y máximos.

  3. Eliminar una etiqueta del rango de claves de fragmento.

  4. Añada una nueva Etiqueta a un Rango de claves de partición.

7
  • Si los cambios son aceptables, haga clic en Confirm and Deploy.

  • Si es necesario revisar los cambios, haga clic en Cancel y vuelva al paso 1.

Puede usar Ops Manager para establecer cuándo su clúster fragmentado equilibra los datos entre los fragmentos.

Cada clúster fragmentado cuenta con un proceso llamado balanceador que garantiza una distribución uniforme de fragmentos en cada fragmento. Migrar fragmentos entre el clúster fragmentado puede afectar el rendimiento. La eficiencia del balanceador depende de la selección de la clave del fragmento. Utilice la interfaz del administrador de balanceadores de Ops Manager para establecer períodos específicos de ejecución del balanceador, como programar rondas de balanceo durante las horas de menor actividad.

Si desea cambiar la ventana de equilibrio para su clúster fragmentado:

1
2

Se muestra la pestaña Balancer.

3

Establece Manage Balancer en Yes.

Nota

Si la administración de Balancer está habilitada y desea deshabilitarla, alterne Manage Balancer a No.

4

Para cambiar cuándo se ejecuta el Balancer:

  1. Haga clic a la derecha Schedule the Balancer de.

  2. En el Start cuadro, escriba la hora en la que debe comenzar la ventana utilizando el 24formato de horas.

  3. En el Stop cuadro, escriba la hora en la que debe finalizar la ventana, utilizando el 24formato de horas.

  4. Haga clic en Save.

Nota

Los valores de Start y Stop pueden estar entre 00:00 y 23:59, pero Stop puede ser anterior a Start. Si Stop es anterior a Start, se considera que Stop corresponde al día siguiente.

Ejemplo

Si desea que su ventana de migración sea entre las 11:00 p. m. y las 2:00 a. m., deberá configurar Start en 23:00 y Stop en 02:00 del día siguiente.

5
  1. Alternar Enable Balancer a Yes.

  2. Haga clic en Save.

6

Ops Manager muestra los cambios propuestos.

  1. Si estás satisfecho, haz clic en Confirm & Deploy.

  2. Si desea realizar más cambios de configuración, haga clic en Cancel. Haga clic en Modify para que el clúster realice cambios adicionales.

Puede crear una nueva colección fragmentada mediante Ops Manager.

Importante

1
2
3

Hay dos opciones mutuamente excluyentes para las claves de fragmento:

  • Marque hashed si desea usar una clave de fragmento con hash. Puede expandir Advanced Settings para optimizar opcionalmente la distribución de documentos en su colección. Para optimizar, puede hacer lo siguiente:

    • Seleccione la casilla de verificación presplitHashedZones para realizar la creación y distribución de fragmentos iniciales para una colección vacía o inexistente en función de las zonas y los rangos de zonas definidos para la colección.

    • Especifique el número mínimo de fragmentos que se crearán inicialmente al fragmentar una colección vacía con una clave de fragmento con hash. Recomendamos 2 fragmentos, pero puede especificar hasta 8192 por fragmento. Esta configuración corresponde a la configuración numInitialChunks de MongoDB para colecciones fragmentadas.

    Para obtener más información sobre estas opciones, consulte sh.shardCollection().

  • Marque Enforce Unique Key si desea tener nombres de clave únicos.

Una clave de fragmento no puede ser única ni estar cifrada.

4
  • Puedes codificar hasta una clave en una clave de fragmento compuesta.

  • Marque Enforce Unique Key si desea tener nombres de clave únicos.

Una clave compuesta de partición no puede incluir más de tres llaves.

Importante

A partir de la versión de MongoDB, se admite el hash de una clave de fragmento 4.4 compuesta. Si se aplica el hash a una clave de fragmento compuesta y se desea cambiar a la versión FCV, 4.2 primero se debe eliminar la colección fragmentada con una clave hash.

5

Si desea utilizar la fragmentación de zonas en esta colección, siga los pasos que se indican en Definir cómo se fragmentan las colecciones mediante rangos.

6
7
  • Si los cambios son aceptables, haga clic en Confirm and Deploy.

  • Si es necesario revisar los cambios, haga clic en Cancel y vuelva al paso 1.

Nota

Siga los dos procedimientos siguientes de esta sección si planea usar la fragmentación por zonas para sus colecciones fragmentadas. De lo contrario, puede omitir esta sección.

Las zonas son proyectos con nombre que contienen uno o más fragmentos. Tras crear una o más zonas, se puede asignar un rango de valores de clave de fragmento y sus documentos correspondientes a cada zona. MongoDB enruta los documentos dentro de un rango determinado a la zona asociada. Cada zona puede incluir varios rangos y fragmentos. Cada fragmento puede pertenecer a más de una zona. Cada fragmento muestra su(s) zona(s) a la derecha de su nombre, bajo Deployment.

1
2
3
4
5

Si intenta eliminar una zona de fragmentos con un rango etiquetado asociado, fallará. Si intenta eliminar el último fragmento de una zona con rangos etiquetados, también fallará. Debe mover todos los rangos etiquetados a otra zona antes de poder eliminar el último fragmento de esa zona.

6
  • Si los cambios son aceptables, haga clic en Confirm and Deploy.

  • Si es necesario revisar los cambios, haga clic en Cancel y vuelva al paso 1.

Los rangos especifican los valores mínimo y máximo de cada campo en una clave de fragmento. Cada rango definido está asociado a una única zona. MongoDB enruta los documentos dentro de un rango determinado a la zona asociada. El valor mínimo es un límite inferior inclusivo de los valores de la clave de fragmento. El valor máximo es un límite superior exclusivo de los valores de la clave de fragmento. Un rango puede pertenecer a una sola zona, pero una zona puede tener varios rangos.

Los documentos se enrutan según las zonas y rangos configurados una vez que el balanceador mueve el rango a la zona deseada. Una vez que esto ocurre, los documentos dentro de un rango se enrutan a la zona asociada y los que están fuera de un rango pueden enrutarse a cualquier fragmento del clúster.

1

Importante

Una vez que se automatiza la fragmentación, la automatización revierte cualquier cambio de configuración que no se haya realizado a través de la interfaz de Ops Manager.

La automatización no cambia nada en las colecciones fragmentadas que no se administran a través de Ops Manager.

2

Las claves compuestas de partición tienen un rango por cada clave de componente, pero en conjunto están asociadas con solo una zona.

Nota

Si su clave de fragmento es una clave de fragmento compuesta con un campo hash, los tipos de valores de rango válidos para el campo hash son:

  • NumberLong

  • minKey

  • maxKey

El valor mínimo de un rango es inclusivo y el valor máximo es exclusivo.

Ejemplo

Los siguientes dos rangos no se solapan:

min
máximo
zona

1

10

A

10

20

B

Nota

Min y Max son valores absolutos: el valor mínimo y máximo absoluto de cualquier rango sin enumerar explícitamente un valor específico.

Cada rango solo puede asociarse a una zona. No se puede asignar el mismo rango a más de una zona.

3

Puede agregar rangos de claves de fragmentos adicionales para la colección dada.

No es posible asignar el mismo rango a otra zona de esta manera.

4
5
  • Si los cambios son aceptables, haga clic en Confirm and Deploy.

  • Si es necesario revisar los cambios, haga clic en Cancel y vuelva al paso 1.

Haga clic en Unmanage.

Importante

Cuando una colección fragmentada deja de estar administrada, sus colecciones y zonas no se eliminan. Estas colecciones y zonas ya no se pueden administrar desde la interfaz de Ops Manager.

Next

MongoDB Ops Manager

En esta página