Fragmentación de MongoDB: tutorial paso a paso con ejemplo

Tabla de contenido:

Anonim

¿Qué es Sharding en MongoDB?

La fragmentación es un concepto en MongoDB, que divide grandes conjuntos de datos en pequeños conjuntos de datos en múltiples instancias de MongoDB.

A veces, los datos dentro de MongoDB serán tan grandes que las consultas contra conjuntos de datos tan grandes pueden causar una gran utilización de la CPU en el servidor. Para abordar esta situación, MongoDB tiene un concepto de fragmentación, que es básicamente la división de conjuntos de datos en múltiples instancias de MongoDB.

La colección que podría ser de gran tamaño en realidad se divide en varias colecciones o fragmentos, como se les llama. Lógicamente, todos los fragmentos funcionan como una sola colección.

Cómo implementar la fragmentación

Los fragmentos se implementan mediante el uso de clústeres que no son más que un grupo de instancias de MongoDB.

Los componentes de un Shard incluyen

  1. Un fragmento : esto es lo básico, y esto no es más que una instancia de MongoDB que contiene el subconjunto de los datos. En entornos de producción, todos los fragmentos deben formar parte de conjuntos de réplicas.
  2. Servidor de configuración : esta es una instancia de mongodb que contiene metadatos sobre el clúster, básicamente información sobre las diversas instancias de mongodb que contendrán los datos del fragmento.
  3. Un enrutador : esta es una instancia de mongodb que básicamente es responsable de redirigir los comandos enviados por el cliente a los servidores correctos.

Ejemplo de clúster de fragmentación paso a paso

Paso 1) Cree una base de datos separada para el servidor de configuración.

mkdir /data/configdb

Paso 2) Inicie la instancia de mongodb en modo de configuración. Supongamos que si tenemos un servidor llamado Servidor D que sería nuestro servidor de configuración, necesitaríamos ejecutar el siguiente comando para configurar el servidor como servidor de configuración.

mongod -configdb ServerD: 27019

Paso 3) Inicie la instancia de mongos especificando el servidor de configuración

mongos -configdb ServerD: 27019

Paso 4) Desde el shell de mongo conéctese a la instancia de mongo

mongo -host ServerD -port 27017

Paso 5) Si tiene el servidor A y el servidor B que deben agregarse al clúster, ejecute los siguientes comandos

sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")

Paso 6) Habilite la fragmentación para la base de datos. Entonces, si necesitamos fragmentar la base de datos de Employeedb, emita el siguiente comando

sh.enableSharding(Employeedb)

Paso 7) Habilite la fragmentación para la colección. Entonces, si necesitamos fragmentar la colección de Empleados, emita el siguiente comando

Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})

Resumen:

  • Como se explicó en el tutorial, Sharding es un concepto en MongoDB, que divide grandes conjuntos de datos en pequeños conjuntos de datos en múltiples instancias de MongoDB.