Importante
La interfaz de usuario de colecciones fragmentadas administradas está obsoleta. Ops Manager 7.0.0 no incluirá esta función.
Overview
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.
Habilitar la gestión de colecciones fragmentadas
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.
Solucione cualquier importación fallida. (Opcional)
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:
minmá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
mongoshpara resolver este problema directamente en la base de datos.Verifique el estado de los rangos de fragmentos.
Revise los rangos para detectar posibles superposiciones.
- 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
mongoshdatos.Verifique el estado de los rangos de fragmentos.
Comprobación de tipos para valores mínimos y máximos.
- 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
Revise la información sobre los tipos de datos en la especificación BSON.
Puede utilizar para resolver este problema directamente en la base de
mongoshdatos.Verifique el estado de los rangos de fragmentos.
Comprobación de tipos para valores mínimos y máximos.
Cambiar cuándo se ejecuta el equilibrador de clúster fragmentado
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:
Configure una ventana de tiempo cuando se ejecuta el Balancer.
Para cambiar cuándo se ejecuta el Balancer:
Haga clic a la derecha Schedule the Balancer de.
En el Start cuadro, escriba la hora en la que debe comenzar la ventana utilizando el 24formato de horas.
En el Stop cuadro, escriba la hora en la que debe finalizar la ventana, utilizando el 24formato de horas.
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.
Crear una nueva colección fragmentada
Puede crear una nueva colección fragmentada mediante Ops Manager.
Importante
Si el campo o los campos seleccionados como clave de fragmento no están indexados, la automatización crea el índice de la clave de fragmento en primer plano. Esta operación podría afectar las cargas de trabajo de producción. Para obtener más información sobre la creación de índices en primer plano, consulte Operaciones de creación de índices en una colección completa.
Ops Manager no admite índices compuestos que cubran claves de fragmento. Para obtener más información sobre un índice compuesto en la clave de fragmento, consulte índices de claves de fragmento.
Escriba el nombre de la clave Shard Key 1 de fragmento en el campo.
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
presplitHashedZonespara 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
2fragmentos, pero puede especificar hasta8192por fragmento. Esta configuración corresponde a la configuraciónnumInitialChunksde 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.
Si desea crear una clave de fragmento compuesta, haga clic + add another field en.
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.
Haz clic en Set Up Ranges para establecer zonas en las particiones. (Opcional)
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.
Configurar la fragmentación por zonas
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.
Agrupar fragmentos en zonas
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.
Escriba un nombre Zone Name en el campo.
Haga clic en Review and Deploy.
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.
Definir cómo se fragmentan las colecciones mediante rangos
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.
Seleccione el tipo de dato para la clave de partición.
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.
Para cada clave de fragmento, ingrese los valores mínimo y máximo y seleccione la zona asociada.
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:
NumberLongminKeymaxKey
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.
Deshabilitar la gestión de colecciones fragmentadas
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.