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.
- ¿Por qué se le da tanta importancia al aprendizaje automático?
- ¿Cuál es el principio de localidad en informática?
- ¿Cuál es la forma más fácil de crear un motor de búsqueda eficiente?
- ¿Cuál es la diferencia entre los sistemas de archivos NTFS y FAT32?
- ¿Cuál es la diferencia entre la cultura de programación en IIITH e IIT Bomabay / Delhi?