sql >> Base de Datos >  >> NoSQL >> MongoDB

Factores a considerar al elegir MongoDB para aplicaciones de Big Data

Los avances tecnológicos han generado ventajas que las organizaciones comerciales deben aprovechar para obtener el máximo valor de ganancias y costos operativos reducidos. Los datos han sido la columna vertebral de estos avances tecnológicos de los que se derivan procedimientos sofisticados para lograr objetivos específicos. A medida que avanza la tecnología, se introducen más datos en los sistemas. Además, a medida que crece un negocio, hay más datos involucrados y la configuración del sistema de servicio debe ser un procesamiento de datos rápido, un almacenamiento confiable y ofrecer una seguridad óptima para estos datos. MongoDB es uno de los sistemas en los que se puede confiar para lograr estos factores.

Big Data se refiere a datos masivos que cambian rápidamente, se puede acceder rápidamente y están altamente disponibles para abordar las necesidades de manera eficiente. Las organizaciones comerciales tienden a examinar las configuraciones de bases de datos disponibles que brindarían el mejor rendimiento a medida que pasa el tiempo y, en consecuencia, obtienen algún valor de Big Data.

Por ejemplo, los mercados en línea observan los clics en la web del cliente, el poder adquisitivo y luego usan los datos derivados para sugerir otros productos como una forma de publicidad o usan los datos en la fijación de precios. Los robots aprenden a través del aprendizaje automático y el proceso obviamente implica la recopilación de una gran cantidad de datos porque el robot tendría que mantener lo que ha aprendido en la memoria para su uso posterior. Mantener este tipo de datos complejos con el software de base de datos tradicional se considera poco práctico.

Características de los grandes datos

En los sistemas de software, consideramos Big Data en términos de tamaño, velocidad de acceso y tipos de datos involucrados. Esto se puede reducir relativamente a 3 parámetros: 

  1. Volumen
  2. Velocidad
  3. Variedad

Volumen

El volumen es el tamaño de Big Data involucrado y varía de gigabytes a terabytes o más. Diariamente, las grandes empresas ingieren terabytes de datos de sus operaciones diarias. Por ejemplo, a una empresa de telecomunicaciones le gustaría mantener un registro de las llamadas realizadas desde el inicio de su operación, los mensajes enviados y cuánto tiempo duró cada llamada. A diario, se llevan a cabo muchas de estas actividades, lo que da como resultado una gran cantidad de datos. Los datos se pueden utilizar en análisis estadístico, toma de decisiones y planificación tarifaria.

Velocidad

Considere plataformas como el comercio de divisas que necesitan actualizaciones en tiempo real para todas las máquinas cliente conectadas y mostrar nuevas actualizaciones de la bolsa de valores en tiempo real. Esto dicta que la base de datos de servicio debe ser bastante rápida en el procesamiento de dichos datos con poca latencia en mente. Algunos juegos en línea que involucran a jugadores de diferentes lugares del mundo recopilan una gran cantidad de datos de los clics, arrastres y otros gestos de los usuarios y luego los transmiten entre millones de dispositivos en microsegundos. El sistema de base de datos involucrado debe ser lo suficientemente rápido para hacer todo esto en tiempo real.

Variedad

Los datos se pueden clasificar en diferentes tipos, desde números, cadenas, fechas, objetos, matrices, datos binarios, código, datos geoespaciales y expresiones regulares, solo por mencionar algunos. Un sistema de base de datos óptimo debe proporcionar funciones para mejorar la manipulación de estos datos sin incurrir en procedimientos adicionales del lado del cliente. Por ejemplo, MongoDB proporciona las operaciones de geolocalización para su uso al buscar ubicaciones cercanas a las coordenadas proporcionadas en la consulta. Esta capacidad no se puede lograr con las bases de datos tradicionales, ya que solo se diseñaron para abordar estructuras de volumen de datos pequeños, menos actualizaciones y algunas estructuras de datos consistentes. Además, se necesitarán operaciones adicionales para lograr algún objetivo específico, en el caso de las bases de datos tradicionales.

MongoDB también se puede ejecutar desde varios servidores, lo que lo hace económico e infinito, a diferencia de las bases de datos tradicionales que solo están diseñadas para ejecutarse en un único servidor.

Factores a considerar al elegir MongoDB para Big Data

Big Data genera una ventaja empresarial cuando se gestiona de forma exhaustiva a través de una potencia de procesamiento mejorada. Al seleccionar un sistema de base de datos, se deben considerar algunos factores relacionados con el tipo de datos con los que trabajará y si el sistema que está seleccionando proporciona esa capacidad. En este blog, vamos a discutir las ventajas que ofrece MongoDB para Big Data en comparación con Hadoop en algunos casos.

  • Un lenguaje de consulta enriquecido para consultas dinámicas
  • Incrustación de datos
  • Alta disponibilidad
  • Indización y escalabilidad
  • Motor de almacenamiento eficiente y manejo de memoria
  • Coherencia e integridad de los datos

Lenguaje de consulta enriquecido para consultas dinámicas

MongoDB es más adecuado para Big Data donde los datos resultantes necesitan manipulaciones adicionales para obtener el resultado deseado. Algunos de los recursos poderosos son las operaciones CRUD, el marco de agregación, la búsqueda de texto y la función Map-Reduce. Dentro del marco de agregación, MongoDB tiene una funcionalidad adicional de geolocalización que puede permitirle hacer muchas cosas con los datos geoespaciales. Por ejemplo, al crear un índice de esfera 2D, puede buscar ubicaciones dentro de un radio definido simplemente proporcionando las coordenadas de latitud y longitud. Con referencia al ejemplo de telecomunicaciones anterior, la empresa puede usar la función Map-reduce o el marco de agregación para agrupar llamadas desde una ubicación determinada, calculando el tiempo promedio de llamada diariamente para sus usuarios u otras operaciones más. Consulte el ejemplo a continuación.

Hagamos una recopilación de ubicación con los datos

{ name: "KE",loc: { type: "Point", coordinates: [ -73.97, 40.77 ] }, category: "Parks"}

{ name: "UG",loc: { type: "Point", coordinates: [ -45.97, 40.57 ] }, category: "Parks"}

{ name: "TZ",loc: { type: "Point", coordinates: [ -73.27, 34.43 ] }, category: "Parks"}

{ name: "SA",loc: { type: "Point", coordinates: [ -67.97, 40.77 ] }, category: "Parks"}

Luego podemos encontrar datos para ubicaciones que están cerca de [-73.00, 40.00] usando el marco de agregación y dentro de una distancia de 1 KM con la siguiente consulta:

db.places.aggregate( [

   {

      $geoNear: {

         near: { type: "Point", coordinates: [ -73.00, 40.00 ] },

         spherical: true,

         query: { category: "Parks" },

         distanceField: "calcDistance",

   maxDistance: 10000

      }

   }

]

La operación Map-Reduce también está disponible en Hadoop, pero es adecuada para solicitudes simples. El proceso iterativo para Big Data usando Map-Reduce en Hadoop es bastante lento que en MongoDB. La razón detrás es que las tareas iterativas requieren muchos procesos de mapeo y reducción antes de completarse. En el proceso, se generan varios archivos entre el mapa y se reducen las tareas, lo que lo hace bastante inutilizable en análisis avanzados. MongoDb introdujo el marco de canalización de agregación para mitigar este revés y es el más utilizado en el pasado reciente.

Incrustación de datos

MongoDB se basa en documentos con la capacidad de colocar más campos dentro de un solo campo, lo que se denomina incrustación. La incrustación tiene la ventaja de que se emiten consultas mínimas para un solo documento, ya que el documento en sí puede contener una gran cantidad de datos. Para las bases de datos relacionales en las que se pueden tener muchas tablas, debe realizar varias consultas a la base de datos con el mismo propósito.

Alta disponibilidad

La replicación de datos en múltiples hosts y servidores ahora es posible con MongoDB, a diferencia de DBMS relacional donde la replicación está restringida a un solo servidor. Esto es ventajoso porque los datos están altamente disponibles en diferentes ubicaciones y los usuarios pueden ser atendidos de manera eficiente por el servidor más cercano. Además, el proceso de restauración o avería se logra fácilmente teniendo en cuenta la función de registro en diario en MongoDB que crea puntos de control desde los que se puede hacer referencia al proceso de restauración.

Indización y escalabilidad

La indexación primaria y secundaria en MongoDB viene con muchos méritos. La indexación hace que las consultas se ejecuten primero, lo cual es una consideración necesaria para Big Data, como hemos discutido en la característica de velocidad para Big Data. La indexación también se puede utilizar para crear fragmentos. Los fragmentos se pueden definir como subcolecciones que contienen datos que se han distribuido en grupos mediante una clave de fragmento. Cuando se emite una consulta, la clave de fragmento se utiliza para determinar dónde buscar entre los fragmentos disponibles. Si no hubiera fragmentos, el proceso de Big Data llevaría bastante tiempo, ya que se deben revisar todos los documentos y el proceso puede incluso agotarse antes de que los usuarios obtengan lo que querían. Pero con la fragmentación, se reduce la cantidad de datos que se van a recuperar y, en consecuencia, se reduce la latencia de esperar a que se devuelva una consulta.

Motor de almacenamiento eficiente y manejo de memoria

Las versiones recientes de MongoDB establecen WiredTiger como el motor de almacenamiento predeterminado que tiene una capacidad ejecutiva para manejar múltiples cargas de trabajo. Este motor de almacenamiento tiene muchas ventajas para Big Data como se describe en este artículo. El motor tiene características como compresión, puntos de control y promueve múltiples operaciones de escritura a través de la concurrencia de documentos. Big Data significa muchos usuarios y la función de concurrencia a nivel de documento permitirá que muchos usuarios editen en la base de datos simultáneamente sin incurrir en ningún retroceso en el rendimiento. MongoDB se ha desarrollado usando C++, por lo que es bueno para el manejo de la memoria.

Coherencia e integridad de los datos

 La herramienta de validación JSON es otra función disponible en MongoDB para garantizar la integridad y la coherencia de los datos. Se utiliza para garantizar que los datos no válidos no entren en la base de datos. Por ejemplo, si hay un campo llamado edad, siempre esperará un valor entero. El validador JSON siempre verificará que una cadena o cualquier otro tipo de datos no se envíe para almacenamiento a la base de datos para este campo. Esto también es para garantizar que todos los documentos tengan valores para este campo en el mismo tipo de datos, por lo tanto, la coherencia de los datos. MongoDB también ofrece funciones de copia de seguridad y restauración para que, en caso de falla, se pueda volver al estado deseado.

Conclusión

MongoDB maneja el análisis de datos en tiempo real de la manera más eficiente, por lo tanto, es adecuado para Big Data. Por ejemplo, la indexación geoespacial permite un análisis de datos GPS en tiempo real.

Además de la configuración de seguridad básica, MongoDB tiene una herramienta adicional de validación de datos JSON para garantizar que solo ingresen datos válidos a la base de datos. Dado que la base de datos se basa en documentos y los campos se han incrustado, se pueden realizar muy pocas consultas a la base de datos para obtener una gran cantidad de datos. Esto lo hace ideal para su uso cuando se trata de Big Data.