¿Cuál es la diferencia entre base de datos paralela y mapreduce?

Estas comparando manzanas con naranjas. Para hacer que la comparación sea justa, supongo que la pregunta realmente debería ser sobre MapReduce y el álgebra relacional / SQL. Una base de datos se basa en el álgebra relacional para procesar datos y SQL resulta ser el lenguaje de programación más popular para el álgebra relacional. Una base de datos paralela es una base de datos que puede almacenar datos en múltiples discos y llevar a cabo el procesamiento de álgebra relacional en paralelo utilizando recursos de múltiples máquinas.

MapReduce es un paradigma de programación paralela que proporciona un medio para dividir un problema complejo en una serie de pequeños pasos, cada uno de los cuales puede ejecutarse en paralelo. No es un lenguaje en sí mismo y, de hecho, admite expresar este desglose de la computación en muchos lenguajes de programación de procedimientos diferentes.

Las comparaciones entre SQL y MapReduce son bien conocidas. Una empresa con la que solía trabajar tenía esto muy bien resuelto (consulte SQL / MapReduce para obtener una descripción técnica detallada). En resumen, SQL es excelente para las transformaciones de datos estándar, las agregaciones de datos y las uniones de una tabla grande con muchas tablas más pequeñas. Por “estándar”, me refiero a aquellos que son compatibles con las implementaciones de bases de datos. SQL no es bueno en transformaciones personalizadas, agregaciones personalizadas y es especialmente malo en uniones de tablas grandes con otras tablas grandes o de ellos mismos. En cada uno de estos casos, un desarrollador en una base de datos necesitaría escribir una lógica personalizada en forma de funciones definidas por el usuario (UDF) o procedimientos almacenados para efectuar la personalización requerida o repensar todo el proceso de unión de tablas grandes para lograr un mejor rendimiento , y nada de esto es fácil de hacer con la flexibilidad restringida de SQL. Para empeorar las cosas, las diferentes implementaciones de bases de datos tienen diferentes especificaciones sobre cómo escribir lógica personalizada utilizando UDF y no hay un estándar en el que todos estén de acuerdo. En ambos escenarios, el paradigma MapReduce es fácil de usar para el desarrollo de la lógica requerida (explotando completamente las capacidades de programación de procedimientos, así como las bibliotecas de código existentes disponibles en el lenguaje de programación de elección, por ejemplo, las bibliotecas de Java si se codifica en Java) como así como es muy poderoso al permitir codificar algoritmos y técnicas complejas que pueden mejorar enormemente el rendimiento en comparación con SQL y el procesamiento relacional.

Primero que nada MapReduce no es una base de datos. Es un marco de cómputo paralelo en el que el código se mueve a datos para su procesamiento en lugar de que los datos se muevan a código. Al llegar a su próximo punto por una base de datos paralela, supongo que se refiere a bases de datos distribuidas o sistemas de archivos como GFS o HDFS. HDFS junto con MapReduce hace Hadoop.

More Interesting

¿Pensamientos sobre ITU Lahore? Entiendo que es un programa relativamente nuevo, pero la facultad y las oportunidades últimamente parecen prometedoras.

¿Cuáles son las mejores herramientas de modelado de software?

¿Cómo debería aprender el aprendizaje automático este verano e implementarlo en un proyecto como menor o mayor?

Cómo solucionar el problema de internet de mi computadora portátil

¿Cuáles son los libros que deben leer para los estudiantes de Ciencias de la Computación que desean trabajar en nuevas empresas web?

¿Qué consejo le darías a un desarrollador senior que nunca escribió una prueba unitaria pero su código funciona correctamente en producción?

¿Cuál es una buena estrategia para comprar una GPU para un modelo de aprendizaje automático en casa?

Cómo memorizar tablas de multiplicar hexadecimales

En el procesamiento de Python, para compartir el estado entre procesos, ¿es más rápido usar un proceso de servidor o memoria compartida?

¿Es posible crear un simulador de sistema general? De ser así, ¿cómo?

¿Cuáles son algunas de las aplicaciones de inteligencia artificial y aprendizaje automático utilizadas en la gestión de la cartera de mercados de capital de finanzas corporativas?

¿Debo aceptar un rol de analista tecnológico de $ 85K con Accenture en SF o estudiar en un campo de entrenamiento de codificación a largo plazo?

¿Se puede aplicar el aprendizaje automático a cualquier producto? En caso afirmativo, ¿qué sectores tienen más sentido?

¿Qué es el autómata pushdown?

¿Cuánta física debería saber un experto en informática?