Beruflich Dokumente
Kultur Dokumente
RESUMEN.
I. INTRODUCCIN.
Actualmente estamos viviendo la Era de los datos, con el enorme crecimiento en el uso
de herramientas digitales como internet y los dispositivos mviles, estamos generando
datos constantemente, con cada movimiento que damos navegando en internet o
interactuando en las redes sociales como Facebook o Twitter, estamos dejando una
huella permanente que queda almacenada en algn Data Center. El volumen de
informacin que estamos generando a cada segundo es enorme. Este gran crecimiento
en el volumen de datos, ha obligado a resolver la forma en la que diseamos nuestros
sistemas, y es as, como el concepto de Big Data y la nueva disciplina de los cientficos
de datos est surgiendo.
En los ltimos aos se han generado datos a una escala sin precedentes, por lo que hoy
en da estamos sumergidos en un mar de informacin; esto significa que el volumen de
datos que necesitan ser extrados, transformados, almacenados y analizados se
incremente exponencialmente. De estas grandes cantidades surge el trmino big data,
que se refiere al procesamiento de enormes cantidades de datos no estructurados o
semiestructurados que los sistemas convencionales no son capaces de gestionar. El big
data tambin describe el tratamiento de informacin en el que el volumen, la velocidad,
veracidad y la variedad de los datos exceden las posibilidades de organizacin para
calcular una adecuada y oportuna toma de decisiones.
Uno de los primeros trminos clave que nos encontramos en el campo del anlisis de
datos de negocio es el de Business Intelligence (Inteligencia de negocios), cuya primera
referencia se remonta a 1958 a cargo de Hans Peter Luhn, investigador de IBM.
Business Intelligence: Anlisis descriptivo de datos, en el que se consultan y visualizan
de manera agregada datos provenientes de diferentes indicadores de negocio para
obtener una visin de lo que ha pasado y lo que est pasando. (Nio & Illarramendi,
2016)
A finales de los 80 surge la expresin Data Mining (minera de datos). El origen del
trmino proviene de la analoga con las tcnicas de minera en las que se extrae un
material valioso (en este caso, conocimiento) a partir de yacimientos (bancos de datos).
Data Mining (minera de datos): Extraccin de conocimiento (patrones, tendencias,
modelos) en bancos de datos, enfocado a un anlisis de tipo predictivo. El concepto de
Knowledge Discovery in Databases (KDD) comprende un rea similar. En muchas
ocasiones se usan indistintamente, aunque tambin se usa el trmino Data Mining para
referirse especficamente a la etapa analtica dentro del KDD. El desarrollo de proyectos
de Data Mining para la bsqueda y explotacin de patrones en bancos de datos,
empleando tcnicas de Machine Learning. (Nio & Illarramendi, 2016)
La necesidad de las tecnologas que posteriormente se han definido como Big Data tiene
su origen en el uso de Data Mining por parte de las grandes empresas tecnolgicas que
surgen (principalmente en Silicon Valley) con la eclosin y popularizacin del World
Wide Web entre finales de los 90 y principios del 2000. El problema al que se
enfrentaron dichas empresas no difiere del que hemos descrito en el caso de compaas
financieras o aseguradoras: potenciar su negocio explotando sus bancos de datos. El
elemento clave y diferencial surge al comparar la dimensin de los datos en ambos
escenarios: mientras que en los ejemplos anteriores la cantidad de datos era procesable
usando las herramientas y las capacidades de mquinas convencionales, en el caso de
las grandes empresas en torno a la Web, por el contrario, el gran volumen de datos a
analizar haca inviable en la prctica su procesamiento usando las tcnicas tradicionales.
De hecho, es tambin en esta poca cuando se comienza a apuntar al volumen,
velocidad y variedad de los datos (modelo posteriormente conocido como 4 V") como
aspectos clave dentro de una estrategia para la ptima gestin de los datos en contextos
de negocio. (Nio & Illarramendi, 2016)
La disponibilidad de una solucin de cdigo abierto como Apache Hadoop facilita la
adopcin de estas tecnologas Big Data, favoreciendo al mismo tiempo la creacin de
herramientas adicionales sobre dicha plataforma que permitan potenciar su
funcionalidad. De hecho, durante los aos siguientes a la divulgacin del modelo
MapReduce se repite el mismo patrn de innovacin, en el que los desarrollos
divulgados por Google en torno al procesamiento masivo de datos sirven de inspiracin
para crear soluciones de cdigo abierto que aborden los mismos problemas. (Nio &
Illarramendi, 2016)
As, en 2005 Google divulga Sawzall, un lenguaje para expresar y programar las tareas
ms usuales dentro de la consulta y anlisis de grandes estructuras de datos sobre un
modelo MapReduce. Esto inspira el desarrollo de la herramienta de cdigo abierto
Apache Pig y su lenguaje Pig Latin, para su uso sobre Apache Hadoop. As como
Apache Pig es inicialmente desarrollado y promovido por Yahoo (al igual que con
Hadoop), desde la empresa Facebook se desarrolla inicialmente una herramienta de
cdigo abierto para fines similares, Apache Hive, aunque en este caso con un modo de
uso ms cercano al conocido lenguaje SQL para interrogar bases de datos. Del mismo
modo, en 2006. (Nio & Illarramendi, 2016)
Segn IBM (2015), La tendencia en el avance de la tecnologa que a abierto las puertas
hacia un nuevo enfoque de entendimiento y toma de decisiones, la cual es utilizada para
describir enormes cantidades de datos (estructurados, no estructurados y semi
estructurados) que tomara demasiado tiempo y sera muy costoso cargarlos a un base
de datos relacional para su anlisis. De tal manera que, el concepto de Big Data aplica
para toda aquella informacin que no puede ser procesada o analizada utilizando
procesos o herramientas tradicionales. Sin embargo, Big Data no se refiere a alguna
cantidad en especfico, ya que es usualmente utilizado cuando se habla en trminos de
petabytes y exabytes de datos.
Taubin (2013) define a Big Data como grandes conjuntos de datos, que no se pueden
analizar con las herramientas y mtodos tradicionales de procesamiento y
administracin de base de datos. El objetivo es descubrir correlaciones que permitan
mejorar el desempeo de los sistemas de informacin al asistir en los procesos de toma
de decisiones y el control de los procesos. Segn el autor, Big Data permite el uso
intensivo de los datos a un nivel nunca antes imaginado. Explica que data sciense o la
ciencia de los datos, es la creacin de una multitud de mtodos necesarios para extraer
informacin de los datos. Al aplicar data science junto con Big Data se logra obtener
informacin valiosa de conjuntos de datos que antes eran imposibles de gestionar. Esta
mezcla entre Big Data y data science, adems la llama ciencia de los grandes datos o
Big Data Science, con el objetivo de generar soluciones integrales y xito econmico.
La Big Data es la rama de las tecnologas de la informacin que estudia las dificultades
inherentes a la manipulacin de grandes conjuntos de datos. El verdadero poder de la
Big Data reside en que se trata sobre el comportamiento de la gente, y no sobre sus
datos, consiste en encontrar los patrones de relaciones y comportamientos en el caos de
los grandes volmenes de datos que producimos. Los datos son tantos, que todos se
vuelven estadsticamente significativos, lo que significa, que los mtodos tradicionales
que utilizamos para analizarlos se han vuelto obsoletos. (Lpez Briega, 2012).
Big Data (grandes volmenes de datos) se refiere al conjunto de informacin tan grande
y complejo que se hace muy difcil su procesamiento utilizando herramientas de gestin
y anlisis de bases de datos convencionales. El Big Data engloba infraestructuras,
tecnologas y servicios que han sido creados para dar solucin al procesamiento de
enormes conjuntos de datos estructurados, no estructurados o semi-estructurados
(mensajes en redes sociales, seales de mvil, archivos de audio, sensores, imgenes
digitales, datos de formularios, e-mails, datos de encuestas, logs, etc.) que pueden
provenir de sensores, micrfonos, cmaras, escneres mdicos o imgenes. (Gil &
Colomer).
Segn Ernesto Mislej (2015), nos dice que, Big Data posee dos columnas principales
que se necesitan para poder sostener la herramienta. La primera columna es la del
Hardware y Software, esto involucra toda la infraestructura necesaria para poder
almacenar, procesar y analizar los datos para convertirlos en informacin til mediante
su visualizacin y su generacin de reportes. La otra columna de Big Data es la de Data
Science, que se encarga de utilizar la infraestructura y obtener los resultados buscados.
Es la encargada de generar el valor de la herramienta.
Ambas columnas son indispensables, se necesitan una a otra, ya que sin infraestructura
no hay lugar ni materia prima para llevar adelante el anlisis y sin Data Science se tiene
la materia prima pero no se puede utilizar.
Big Data, Big World de PowerData (2013) define tres modelos de implementacin de
Big Data. Estos modelos dependen del business intelligence de la empresa, la
infraestructura de la empresa y del nivel de conocimiento del entorno. El primer modelo
es el revolucionario, que lo define como la aplicacin en real time de Big Data. Este tipo
de implementacin tiene como ventajas la agilidad, la optimizacin de datos, tiempos y
la flexibilidad, pero como desventajas el mayor costo y tiempo de adaptacin para poder
comenzar a utilizar la herramienta.
Con el trmino Big Data se hace referencia a la tendencia del avance de las tecnologas
que han abierto las puertas hacia un nuevo enfoque de entendimiento y toma de
decisiones, la cual es utilizada para describir enormes cantidades de datos que llevara
demasiado tiempo cargarlos en una base de datos relacional para su posterior anlisis.
Por lo tanto, el Big Data se aplicar para toda aquella informacin que no pueda ser
procesada por los mtodos tradicionales.
Por lo tanto las ventajas de una base de datos relacional se podran definir en:
Estas tres desventajas nombradas anteriormente las resuelve Big Data, gracias a que su
estructura es capaz de almacenar y procesar grandes cantidades de datos y de los tres
tipos de datos posibles (estructurados, semi-estructurados y sin estructurar) adems es
una arquitectura orientada a los programas actuales
Por qu es tan revolucionario el trmino Big Data? Existen diversas razones pero tiene
cuatro caractersticas que destacan sobre todas las dems y que lo hacen ser nico:
Variedad: Diferentes tipos y fuentes de datos. La variedad tiene que ver con
gestionar la complejidad de mltiples tipos de datos, incluidos los datos
estructurados, semiestructurados y no estructurados. Las organizaciones necesitan
integrar y analizar datos de un complejo abanico de fuentes de informacin tanto
tradicional como no tradicional procedentes tanto de dentro como de fuera de la
empresa. Con la profusin de sensores, dispositivos inteligentes y tecnologas de
colaboracin social, los datos que se generan presentan innumerables formas entre
las que se incluyen texto, datos web, tuits, datos de sensores, audio, vdeo,
secuencias de clic, archivos de registro y mucho ms. (IBM, 2015).
Es evidente que Big Data se puede aplicar en todo aquello que necesite una solucin
que tenga que ver con las 4 Vs. Big Data ya se aplic como se explic anteriormente en
la seleccin Alemana de futbol, adems en la campaa de reeleccin del presidente de
estados unidos Barack Obama, tambin se aplic para dar mayor rapidez al anlisis del
Genoma Humano, y el gran acelerador de hadrones en suiza es otro de los grandes
ejemplos en donde se aplica Big Data.
Big Data es un universo en donde todo aquel que le gusten los retos tiene oportunidad.
Desde un ingeniero, un economista, un matemtico, un estadstico, un bilogo etc.
Muchas ciencias estn implicadas en este fenmeno llamado Big Data. Se puede usar
Big Data desde una pequea empresa de ventas por internet hasta una empresa que
maneje transmisiones de GPS, segn su necesidad se puede dar una solucin
informtica que use Big Data. En bases de datos de un crecimiento horizontal
desmesurado para realizar un correcto manejo del almacenamiento y anlisis de los
datos.
Las bases de datos tradicionales, orientadas a filas, son excelentes para el procesamiento
de transacciones online con gran necesidad de recarga de datos, pero superformance
disminuye drsticamente cuando el volumen de datos crece y a medida que los datos
empiezan a ser menos estructurados. Las bases de datos columnares almacenan los
datos enfocndose en columnas, a diferencia de las bases de datos orientadas a filas,
esto permite una gran posibilidad de compresin de datos y tiempos de respuesta de
queries muy rpidos. La desventaja de estas bases de datos es que generalmente solo se
permite la actualizacin de proceso por lotes, que tiene un tiempo de actualizacin
mucho ms lento que los modelos tradicionales. (Jara, 2014).
Para explicar la diferencia entre ambos enfoques, vemos como son guardados ambos
datos, supongamos se tienen los siguientes datos representados en la columna siguiente
figura.
La forma en la que las bases de datos orientadas a filas guardan esta informacin es la
figura 4, este sistema est diseado para retornar de forma eficiente datos de una
determinada fila, o conjunto de las mismas, en la menor cantidad de operaciones
posibles y es precisamente aqu donde se puede notar la deficiencia del mismo.
Supongamos que deseamos retornar todos los records que contengan salario entre 40000
y 50000, el DBMS (Database Managment System) deber buscar todo el conjunto de
datos a fin de encontrar los que satisfagan la condicin.
Por otro lado, tenemos las bases de datos columnares, las mismas guardan los datos de
manera distinta como se puede apreciar en la figura 5.
Son sistemas de gestin de bases de datos que, a diferencia de los sistemas de gestin
tradicionales, como principal diferencia tienen no utilizar SQL como lenguaje de
consultas, los datos no requieren por ello estructuras fijas como tablas.
Algunas ventajas que poseen las bases de datos NoSQL por lo cual la tendencia para el
desarrollo de Big Data va orientado con este esquema son: (Couchbase)
Modelado de datos ms flexible: Las bases de datos NoSQL tienen un modelo muy
diferente, no utilizando el esquema estructurado de tablas. Por ejemplo, un
documento orientado a la base de datos NoSQL toma los datos que desea almacenar
y los guarda en documentos en formato JSON. Cada documento JSON puede ser
pensado como un objeto para ser utilizado por la aplicacin. Un documento JSON
podra, por ejemplo, tener todos los datos almacenados en una fila que se extiende
por 20 tablas de una base de datos relacional y agregar en un solo documento /
objeto. Agregando esta informacin puede conducir a la duplicacin de la
informacin, pero ya que el almacenamiento ya no es un costo prohibitivo, la
flexibilidad del modelo de datos resultante, la facilidad de distribuir eficientemente
los documentos resultantes y leer y escribir mejoras de rendimiento lo convierten en
un fcil intercambio para las aplicaciones basadas en la Web.
Escalabilidad y ventajas de performance: A escala, tambin por lo general
termina siendo ms barato que el escalado de sistemas de bases de datos
tradicionales. Esto es una consecuencia de los servidores grandes y complejos,
tolerantes a fallos que son caros de disear, construir y mantener. Los costos de
licencias de bases de datos relacionales comerciales tambin pueden ser
prohibitivos, ya que tienen un precio con un nico servidor en mente. Bases de datos
NoSQL, por otra parte suelen ser de cdigo abierto, con un precio de funcionar en
un clster de servidores, y relativamente barato. En las figuras 4 y 5 podemos
observar la relacin de costos del sistema y performance de la aplicacin para el
escalamiento en ambos modelos, tradicional y NoSQL, apreciando as la diferencia
de costos a medida que el sistema crece, as tambin como un mantenimiento en la
performance del mismo.
Figura 6: Relacin de costo-performance en sistemas de base de datos tradicionales.
MapReduce
Concretamente son abordables solo aquellos que se pueden disgregar en las operaciones
de map() y de reduce() y esto es importante a la hora de poder elegir este framework
para resolver un problema. Las funciones Map y Reduce estn definidas ambas con
respecto a datos estructurados en tuplas del tipo (clave, valor).
Funcin Map(): Map toma uno de estos pares de datos con un tipo en un dominio de
datos, y devuelve una lista de pares en un dominio diferente.
Figura 8: Funcin Map.
La arquitectura Big Data est compuesta generalmente por cinco capas: recoleccin de
datos, almacenamiento, procesamiento de datos, visualizacin y administracin. Esta
arquitectura no es nueva, sino que ya es algo generalizado en las soluciones de Business
Intelligence que existen hoy en da. Sin embargo, debido a las nuevas necesidades cada
uno de estos pasos ha ido adaptndose y aportando nuevas tecnologas a la vez que
abriendo nuevas oportunidades.
Una vez se tienen los datos almacenados, el siguiente paso en un sistema Big Data
es explotar la informacin para llegar a los resultados deseados. Las herramientas de
anlisis y procesamiento de informacin han evolucionado considerablemente,
especialmente aquellas que trabajan sobre datos no estructurados. La necesidad de
crear nuevas aplicaciones y que stas ya estn adaptadas a los sistemas de
almacenamiento ms recientes (como los comentados en el punto anterior, los
sistemas distribuidos y las bases de datos NoSQL) ha promovido la aparicin de
nuevos paradigmas.
La potencia real de Hadoop radica en lo siguiente: Hadoop puede manejar todos los
tipos de datos de sistemas diferentes: estructurada, no estructurada, archivos log,
imgenes, archivos de audio, los registros de comunicaciones el correo electrnico casi
cualquier cosa que se pueda imaginar, con independencia de su formato nativo. Aun
cuando los diferentes tipos de datos se han almacenado en los sistemas no relacionados,
se puede volcar todo en el clster Hadoop sin necesidad previa de un esquema. En otras
palabras, usted no necesita saber cmo se va a consultar sus datos antes de guardarlo;
Hadoop permite decidir ms tarde y con el tiempo puede revelar cuestiones que ni
siquiera se le ocurri preguntar (Cloudera I. , 2013). Es por esto que esta herramienta
se ha convertido en la implementacin ms popular de utilizacin para procesamiento
de largos volmenes de datos utilizando MapReduce con el mismo. Tiene varias
aplicaciones diferentes, pero uno de los principales casos de uso es para grandes
volmenes de datos en constante cambio, como los datos basados en la localizacin de
clima o el trfico de datos de los sensores, los medios de comunicacin basados en la
web o sociales, o los datos transaccionales de mquina a mquina .
Arquitectura Principal
Reduce: los nodos worker de tipo reduce ejecutan una funcin reduce que recibe
como entrada una de las claves generadas en la etapa de map junto con una lista
de los valores correspondientes a esa clave. Como salida genera una lista
resultante de una funcin con los valores recibidos. La unin de los resultados
puede corresponder a cualquier tipo de funcin (agregacin, suma, mximo,
etc.).
Entre las fases de map y reduce hay una etapa intermedia llamada agregacin, cuyo
objetivo es el de agregar y ordenar las salidas de los distintos maps para que en la etapa
de reduce se reciba solo la estructura del tipo clave-valores comentada. Un ejemplo
sencillo de un proceso MapReduce.
De esta forma se consigue un sistema que acepta un gran volumen de datos, ya sean
estructurados o no, con una buena capacidad para su procesamiento y una alta velocidad
en la visualizacin.
Figura 13: Arquitectura mixta formada por una solucin MapReduce para procesar y
filtrar datos no estructurados y una solucin.
Herramientas Hadoop
Figura 14: Ejemplo de un esquema JSON para un tipo de datos Usuario con 3
valores.
b) ZOOKEEPER. ZooKeeper es un servicio centralizado que se encarga de
administrar y gestionar la coordinacin entre procesos en sistemas distribuidos.
El objetivo de Apache con ZooKeeper es el de librar a los desarrolladores la
tarea de implementar funciones de mantenimiento entre sus procesos, como la
sincronizacin entre estos, y ofrecer alta disponibilidad a travs de servicios
redundantes. ZooKeeper permite la coordinacin de procesos a travs de un
espacio de nombres compartido de estructura jerrquica, parecido a un sistema
de ficheros, donde cada nodo recibe el nombre de znode. Los znodes son muy
parecidos a los de un sistema de ficheros normal y corriente, cuentan con un
path o camino con los elementos separados por la barra / y cada uno tiene un
padre que es el znode anterior -salvo la raz / que es su propio padre-. Los
znodes tampoco pueden ser eliminados si tienen hijos, tal y como pasa con los
sistemas de ficheros comunes.
Figura 15: Arquitectura del servicio ZooKeeper.
c) SOLR. Apache Solr es un motor de bsqueda basado en el Apache Lucene,
escrito en Java y que facilita a los programadores el desarrollo de aplicaciones
de bsqueda. Lucene ofrece indexacin de informacin, tecnologas para la
bsqueda as como correccin ortogrfica, resaltado y anlisis de informacin,
entre otras muchas caractersticas.
Una arquitectura tpica de SOLR sera la de la Figura 16. Se cuenta con un
servidor web, para que los usuarios puedan interactuar y realizar distintos tipos
de bsquedas -pginas de tiendas en lnea, por ejemplo-, con conexin directa
con SOLR y que consulta datos mediante este en Hadoop. El servidor web
puede ser una de las mquinas con servicios de Hadoop ejecutndose en l o un
servidor exclusivamente dedicado a servir peticiones de los usuarios.
Figura 18: Arquitectura que descarga informacin de las redes twiter, Facebook y
linkedln adems de leer ficheros de log.
Modelo de datos
f) Hive: (Apache Hive, 2013)es una herramienta para data warehousing que facilita
la creacin, consulta y administracin de grandes volmenes de datos
distribuidos en forma de tablas relacionales. Cuenta con un lenguaje derivado de
SQL, llamado Hive QL, que permite realizar las consultar sobre los datos. Por
esta misma razn, se dice que Hive lleva las bases de datos relacionales a
Hadoop.
A su vez, Hive QL est construido sobre MapReduce, de manera que se
aprovecha de las caractersticas de ste para trabajar con grandes cantidades de
datos almacenados en Hadoop. Esto tambin provoca que Hive no ofrezca
respuestas en tiempo real.
Interfaz de usuario: el mtodo de entrada del usuario para realizar las consultas.
Actualmente hay una interfaz de lnea de comandos y una interfaz web.
Driver: recibe las consultas y se encarga de implementar las sesiones, adems de
recibir tambin consultas va interfaces JDBC y ODBC.
Compilador: Parsea la consulta y realiza anlisis semnticos y otras
comprobaciones de lenguaje para generar un plan de ejecucin con la ayuda del
metastore.
Metastore: almacena toda la informacin -metadatos- de la estructura que
mantienen los datos dentro de Hive -es decir, tiene el esquema de las bases de
datos, tablas, particiones, etc.-.
Motores de ejecucin: se encargan de llevar a cabo el plan de ejecucin
realizado por el compilador.
Los flujos de datos estn escritos en un lenguaje similar a XML llamado hPDL, como el
de la Figura 22. En el ejemplo se define un workflow con el estado inicial start, que
pasa a un nodo de accin de nombre wordcount. Al nodo de accin se le indica que es
un MapReduce y cul es la clase Java que realizar la tarea de Mapper y cual la de
Reducer, as como la entrada y salida del proceso. Finalmente se le indica que si el
resultado es correcto vaya al nodo de control llamado end y si se produce algn error
vaya a kill, que mandar un mensaje con el cdigo de error.
Como hemos visto, tanto la aplicacin del anlisis de datos a necesidades de negocio,
como la creacin de modelos predictivos a partir del uso de minera de datos, no son
ideas en absoluto recientes, y su prctica lleva desarrollndose desde hace dcadas. Lo
que s est claro es que la aparicin del Big Data ha supuesto un renovado impulso
durante la ltima dcada para la minera de datos y las diferentes tcnicas implicadas en
su puesta en prctica.
Debera quedar claro que no toda la minera de datos es Big Data, y deberamos
diferenciar si el problema a resolver requiere o no de esas tecnologas especficas para
procesar y analizar grandes cantidades de datos. Tambin puede resultar engaoso el
uso del adjetivo big y llevarnos a pensar que es nicamente el volumen de datos lo
que implica la necesidad de una tecnologa especial, cuando el uso o tipo de anlisis que
queramos realizar con esas cantidades masivas de datos es un factor mucho ms
determinante para descartar sistemas ms tradicionales para la gestin de los datos.