Big Data: Piensa rápido
Por: Colin White
Fundador y Presidente de BI Research
El desarrollo de las tecnologías para el análisis de Big Data está evolucionando rápidamente. Este crecimiento ha despertado el interés en nuevos enfoques como el Hadoop MapReduce y Hive, además de las extensiones de MapReduce para relacionar los sistemas de gestión con las bases de datos (DBMSs).
MapReduce permite a las organizaciones procesar y analizar rápidamente grandes volúmenes de datos multi-estructurados, de esta manera las empresas podrán tomar mejores decisiones de forma más rápida. Para esto, necesitan una plataforma que ofrezca a sus usuarios la capacidad de ingerir, estructurar y analizar la información.
¿Cuándo y dónde usar MapReduce?
Por lo general, los programadores prefieren los enfoques de procedimiento para acceder y manipular datos ofrecidos por Hadoop MapReduce, mientras que los no-programadores prefieren los lenguajes declarativos en la manipulación vinculada a DBMS y SQL.
Sin embargo, la disponibilidad de un lenguaje similar a SQL en Hadoop Hive y la adición de funciones de MapReduce en DBMS hace las preferencias más complicadas. Los programas de MapReduce pueden procesar los datos almacenados en el archivo de base de diferentes sistemas. Cada uno tiene sus ventajas y desventajas específicas:
Hive para mejorar el desarrollo de MapReduce
Para el procesamiento secuencial de grandes archivos de datos multi-estructurados, como registros web se recomienda usar Hadoop Hive o Hadoop MapReduce. El principal beneficio de Hive es su capacidad de mejorar la simplicidad y la rapidez del desarrollo de MapReduce. El optimizador Hive también hace más sencillo el procesamiento de archivos relacionados entre sí, además su sCintaxis SQL lo hace fácil de usar para los no programadores que se sienten cómodos con SQL.
La desventaja es que el optimizador Hive no está completamente aislado del sistema de archivos subyacente, lo que implica que, con frecuencia, el usuario requiera ayuda del optimizador con construcciones de lenguaje para procesar consultas más complejas. El manejo tradicional de SQL extiende el uso de Hive a los datos estructurados. Sin embargo, Hive no puede sustituir a la funcionalidad, facilidad de uso, el rendimiento y la madurez de un DBMS relacional.
DBMS para datos aislados
Si los usuarios de SQL desean conservar los datos físicamente independientes, deben utilizar un DBMS relacional que mantiene a los puntos de vista físicos y lógicos de datos completamente aislados unos de otros, proporcionando independencia física. Esto tiene la ventaja de permitir a los proveedores extender o añadir motores de tiempo de ejecución y de almacenamiento de datos sin afectar a las aplicaciones existentes. La base de datos Teradata Aster, por ejemplo, incluye un motor de tiempo de ejecución para el procesamiento MapReduce y un mecanismo que permite el almacenamiento de datos tanto de filas como de columnas.
Agregar MapReduce para un DBMS relacional extiende su uso a datos multi-estructurados. Algunos fabricantes ahora son compatibles con las funciones de MapReduce dentro del DBMS. Esto ofrece el beneficio de implementar funciones definidas por el usuario y también añade las ventajas de MapReduce para el entorno relacional DBMS, tales como la capacidad de procesar múltiples datos estructurados utilizando SQL.
Aunque la independencia de los datos hace la vida más fácil para quienes no son programadores, la desventaja es que los desarrolladores experimentados tienen poco o ningún control sobre cómo se accede a los datos y procesos. En su lugar, tienen que confiar en el optimizador relacional para tomar las decisiones correctas acerca de cómo se accede a los datos.
Hadoop para el procesamiento rápido
Hadoop es una buena opción para las organizaciones con grandes cantidades de datos multi-estructurados, lo que les permite procesar petabytes de datos en forma oportuna. Los sistemas no relacionales como Hadoop no son nuevos, pero ahora están diseñados para aprovechar el hardware de productos básicos en un entorno de computación distribuida a gran escala y se han hecho disponibles con código abierto.
Hadoop tiene varios componentes:
• Sistema de archivos (HDFS) que almacena y replica archivos grandes a través de los nodos de máquinas múltiples. Puede ser una fuente o sistema de archivo de destino para los programas de MapReduce.
• MapReduce es el modelo de programación para distribuir el procesamiento de archivos de datos de gran tamaño (normalmente archivos HDFS), a través de un grupo de máquinas grande.
• Hive ofrece el lenguaje SQL-like (HiveQL) y opitimiza la creación de puestos de trabajo MapReduce para el análisis de los archivos de datos de gran tamaño.
Hadoop tiene sus inconvenientes: HDFS soporta varios sistemas de lectura y sólo un escritor. Dado que no se prevé un mecanismo de índice, es el más adecuado para aplicaciones de sólo lectura. La ubicación real de los datos dentro de un archivo de HDFS es transparente a aplicaciones y software externo, lo que significa que el software construido en la parte superior de HDFS tiene poco control sobre la colocación de datos o el conocimiento de la ubicación de los mismos, lo cual puede hacer que sea difícil optimizar el rendimiento.
Aunque Hadoop MapReduce puede procesar grandes cantidades de datos, la codificación del mapa y la reducción de los programas que utilizan las interfaces de bajo nivel de procedimiento consumen mucho tiempo.
DBMS relacional MapReduce para inmersiones profundas
Si una organización necesita realizar análisis sofisticados en un conjunto diverso de datos estructurados y multi-estructurados, una buena opción es un DBMS relacional que soporta MapReduce, así como también la plataforma de Teradata Aster MapReduce. La fusión con SQL (SQL-MapReduce) preserva los beneficios de independencia declarativa y de almacenamiento de SQL, mientras que la explotación de la fuerza del enfoque procesal MapReduce permite ampliar las capacidades analíticas de SQL.
SQL-MapReduce crea una biblioteca de funciones analíticas preconstruidas para acelerar el desarrollo de aplicaciones analíticas. Las funciones que proporciona son: camino, patrón, estadística, gráfico, textos y análisis de conglomerados y transformación de datos.
Las funciones personalizadas se pueden escribir en varios idiomas, incluyendo Java, para su uso en proceso por lotes y entornos interactivos. Uno de los objetivos clave de la base de datos Teradata Aster es hacer que sea más fácil para los usuarios menos experimentados explotar las capacidades analíticas de las funciones existentes MapReduce y envasado.
Aprovechar al máximo
El análisis en Big Data y las tecnologías asociadas, ofrecen beneficios importantes para las empresas.
Para los datos que se mantienen fuera de capacidad de almacenamiento, los desarrolladores deben evaluar cuidadosamente si desean utilizar un DBMS relacional (como Teradata Aster) o un sistema no-relacional (como Hadoop con Hive).
Debido a los múltiples enfoques y componentes disponibles en la actualidad, las organizaciones deben pensar en esta nueva infraestructura de almacenamiento de datos ampliados como algo esencial si se quiere sacar el máximo provecho de su información.