BigData Parte 1 - Es realmente nuevo BigData?
Cuando inicié mi preparación en BigData encontré que buena parte de la información de consulta disponible en internet no pasaba de describir las posibilidades y beneficios de aplicar técnicas y tecnologías de BigData en las organizaciones, por otra parte es común encontrar la idea que el presente y futuro en tecnología inevitablemente nos conducirá por este camino. De este enfoque más comercial que técnico me incomodan al menos dos cosas; la primera es que se pasa por completamente por alto el origen del problema; la segunda es que no se analiza críticamente el contexto de aplicación real donde las tecnologías y técnicas de BigData son aplicables, por alguna razón también se asume que quien busca información sobre este campo ya tiene definido de antemano que esa es la solución adecuada para su caso particular. En resumen encuentro que esta aproximación al tema es contraria a la lógica que indica que en primer lugar es necesario que se entienda la naturaleza del problema y seguidamente se proceda a la búsqueda de herramientas que permitan implementar soluciones apropiadas.
He tomado como punto de partida y motivación la situación que he descrito anteriormente para desarrollar el presente contenido. Con este contexto en mente los puntos que plantearé en este artículo corresponden en principio a presentar una visión crítica de lo que se ha llamado BigData para posteriormente proceder a describir y explicar los principales elementos técnicos de Apache Hadoop que es considerada la principal plataforma tecnológica de referencia en el mercado actualmente. De esta manera en última instancia espero poder ayudar a quienes tratan de abordar este tema esperando contribuir a que puedan desarrollar algunos elementos de juicio como punto de partida conceptual frente a este campo.
En este orden de ideas es necesario que usted cómo programador, analista, director de proyecto o cualquiera que sea su ejercicio profesional que lo haya llevado a buscar información sobre este tema, sepa discernir adecuadamente el sentido del téermino BigData y me refiero a que en el contexto estríctamente técnico BigData hace referencia únicamente al insumo de un proceso; irónicamente esta "definición" deja por fuera del panorama todas las tecnologías y técnicas que han sido desarrolladas precisamente para procesar los datos digitales de gran volumen, lo cual de hecho corresponde a la segunda etapa de proceso. Si es así entonces qué sentido tiene o a que se refiere BigData precisamente?, tiendo a pensar que en el mejor de los casos la expresión BigData se utiliza como un intento de nombrar a un campo de la computación que abarca una diversidad de técnicas y tecnologías, un campo que hace parte de algo mayor conocido como la ciencia de datos; en otros casos y de forma mucho más frecuente el uso del término es una versión destinada al marketing, esto ocurre porque al parecer se sustituye el concepto de campo de estudio por el concepto de BigData como marca comercial implícitamente en esta sola palabra se quiere abarcar desde software hasta técnicas pasando por tecnologías e incluso proveedores de soluciones, esta caso tiene antecedentes en tecnología tan solo recuerde por ejemplo que algo equivalente ocurrió con el hoy desdibujado término Cloud Computing.
En el contexto de TI actual se encuentran presentes múltiples factores que resultan en la existencia de grandes volúmenes de datos digitales que representan una creciente dificultad para procesarlos y analizarlos, las estimaciones de la cantidad de información digital almacenada digitalmente se estima en el orden de Zettabytes a 2016 y su crecimiento para los próximos años será exponencial. Estos son hechos suficientemente conocidos por el público general así que no me detendré para hablar de esto, en cambio si quiera aportar como punto de reflexión que los grandes volumenes de datos y el problema que implica su manejo son mucho más antiguos de lo que la mayoría imagina, su origen se remite posiblemente al problema del análisis de imágenes satelitales en los años 70. El problema que representa la captura, almacenamiento y procesamientos de imágenes satelitales de alta resolución es todavía un reto técnico de grandes proporciones, este y otros temas de índole científico han dado origen a diferentes desarrollos y avances tecnológicos como los sistemas distribuidos, los supercomputadores, la computación en grilla, la programación paralela y aún la super estrella de todos los paradigmas revolucionarios en computación y me refiriero a la computación cuántica se le deben a necesidades creadas al interior de la comunidad científica, pero que tienen en común con nuestro tema de discusión? bien todos ellos generan, almacenan, analizan y procesan enormes volumenes de datos, por lo tanto están muy relacionados muy de cerca con el enfoque conceptual tecnológico de soluciones aplicables a problemas de BigData, en particular la base conceptual de Apache Hadoop fué construida sobre varios de sus conceptos tal como lo veremos más adelante.
Para concluir mi introducción y presentación del panorama general, diré que posiblemente estará de acuerdo conmigo si afirmo que los datos digitales de gran volumen suponen un alto grado de subjetividad o cuando menos de relativismo temporal en términos de magnitud, en todo caso independiente de la época es claro que el objetivo de las organizaciones no es principalmente el almacenamiento de datos en si mismo, sino más bien la construcción de valor por medio de información, este objetivo parece tomar más sentido cuando escuchamos que se habla de organizaciones data driven que se encuentran apoyadas fuertemente sobre elementos de business analitycs y data mining así que es saludable que advierta que para el area de TI por innovador que suene el término BigData no representa más que otro enfoque y conjunto de herramientas disponible al alcance para lograr objetivos mayores como la generación de valor y continuidad de negocio.
Ahora retomemos el proceso global, aunque pueda sonar simplista piense que las plataformas de BigData disponibles actualmente en el mercado en última instancia no pueden ofrecer nada diferente de lo que hace un computador convencional, esto es, almacenar y procesar por medio de flujo de entradas y salidas, claro en la práctica técnicamente lograr esto es mucho más complejo de lo que suena, pero probablemente si no pierde de vista este sencillo concepto se le facilitará entender los elementos técnicos fundamentales presentes en Apache Hadoop como son HDFS y Map Reduce que también explicaré más adelante.