Trabajo Big Data
Trabajo Big Data
Trabajo Big Data
Qu es Big Data?
Todos formamos parte de ese gran crecimiento de datos.
Debido al gran avance que existe da con da en las tecnologas de informacin, las
organizaciones se han tenido que enfrentar a nuevos desafos que les permitan
analizar, descubrir y entender ms all de lo que sus herramientas tradicionales
reportan sobre su informacin, al mismo tiempo que durante los ltimos aos el gran
crecimiento de las aplicaciones disponibles en internet (geo-referenciamiento, redes
sociales, etc.) han sido parte importante en las decisiones de negocio de las empresas.
Tiene tres caracteristicas: volumen, variedad y velocidad
La velocidad se refiere a la vida til de los datos, ya que no tiene mucho sentido tener
almacenados datos desactualizados. Por ejemplo, en EE.UU. las empresas de atencin
sanitaria descartan hasta el 90% de los datos que generan, gran parte de los cuales
procede de las emisiones de vdeo en tiempo real durante las intervenciones
quirrgicas. Del mismo modo, las tiendas a menudo borran las grabaciones de sus
cmaras de seguridad cuando ha transcurrido cierto tiempo.
1.- Web and Social Media: Incluye contenido web e informacin que es obtenida de las
redes sociales como Facebook, Twitter, LinkedIn, etc, blogs.
2.- Machine-to-Machine (M2M): M2M se refiere a las tecnologas que permiten
conectarse a otros dispositivos. M2M utiliza dispositivos como sensores o medidores
que capturan algn evento en particular (velocidad, temperatura, presin, variables
meteorolgicas, variables qumicas como la salinidad, etc.) los cuales transmiten a
travs de redes almbricas, inalmbricas o hbridas a otras aplicaciones que traducen
estos eventos en informacin significativa.
3.- Big Transaction Data: Incluye registros de facturacin, en telecomunicaciones
registros detallados de las llamadas (CDR), etc. Estos datos transaccionales estn
disponibles en formatos tanto semiestructurados como no estructurados.
4.- Biometrics: Informacin biomtrica en la que se incluye huellas digitales, escaneo
de la retina, reconocimiento facial, gentica, etc. En el rea de seguridad e inteligencia,
los datos biomtricos han sido informacin importante para las agencias de
investigacin.
5.- Human Generated: Las personas generamos diversas cantidades de datos como la
informacin que guarda un call center al establecer una llamada telefnica, notas de
voz, correos electrnicos, documentos electrnicos, estudios mdicos, etc.
3. Qu tipos de datos debo explorar?
1.- Web and Social Media: Incluye contenido web e informacin que es obtenida de las
redes sociales como Facebook, Twitter, LinkedIn, etc, blogs.
2.- Machine-to-Machine (M2M): M2M se refiere a las tecnologas que permiten
conectarse a otros dispositivos. M2M utiliza dispositivos como sensores o medidores
que capturan algn evento en particular (velocidad, temperatura, presin, variables
meteorolgicas, variables qumicas como la salinidad, etc.) los cuales transmiten a
travs de redes almbricas, inalmbricas o hbridas a otras aplicaciones que traducen
estos eventos en informacin significativa.
3.- Big Transaction Data: Incluye registros de facturacin, en telecomunicaciones
registros detallados de las llamadas (CDR), etc. Estos datos transaccionales estn
disponibles en formatos tanto semiestructurados como no estructurados.
4.- Biometrics: Informacin biomtrica en la que se incluye huellas digitales, escaneo
de la retina, reconocimiento facial, gentica, etc. En el rea de seguridad e inteligencia,
los datos biomtricos han sido informacin importante para las agencias de
investigacin.
5.- Human Generated: Las personas generamos diversas cantidades de datos como la
informacin que guarda un call center al establecer una llamada telefnica, notas de
voz, correos electrnicos, documentos electrnicos, estudios mdicos, etc.
Componentes de una plataforma Big Data
Las organizaciones han atacado esta problemtica desde diferentes ngulos. Todas
esas montaas de informacin han generado un costo potencial al no descubrir el gran
valor asociado. Desde luego, el ngulo correcto que actualmente tiene el liderazgo en
trminos de popularidad para analizar enormes cantidades de informacin es la
plataforma de cdigo abierto Hadoop.
Hadoop est inspirado en el proyecto de Google File System(GFS) y en el paradigma de
programacin MapReduce, el cual consiste en dividir en dos tareas (mapper reducer)
para manipular los datos distribuidos a nodos de un clster logrando un alto
paralelismo en el procesamiento.Hadoop est compuesto de tres piezas:
HadoopDistributed File System (HDFS), HadoopMapReduce y HadoopCommon.
HadoopDistributed File System(HDFS)
Los datos en el clster de Hadoop son divididos en pequeas piezas llamadas bloques y
distribuidas a travs del clster; de esta manera, las funciones map y reduce pueden
ser ejecutadas en pequeos subconjuntos y esto provee de la escalabilidad necesaria
para el procesamiento de grandes volmenes.
La siguiente figura ejemplifica como los bloques de datos son escritos hacia HDFS.
Observe que cada bloque es almacenado tres veces y al menos un bloque se almacena
en un diferente rack para lograr redundancia.
HadoopMapReduce
MapReduce es el ncleo de Hadoop. El trmino MapReduce en realidad se refiere a
dos procesos separados que Hadoop ejecuta. El primer proceso map, el cual toma un
conjunto de datos y lo convierte en otro conjunto, donde los elementos individuales
son separados en tuplas (pares de llave/valor). El proceso reduce obtiene la salida de
map como datos de entrada y combina las tuplas en un conjunto ms pequeo de las
mismas. Una fase intermedia es la denominada Shuffle la cual obtiene las tuplas del
proceso map y determina que nodo procesar estos datos dirigiendo la salida a una
tarea reduce en especfico.
La siguiente figura ejemplifica un flujo de datos en un proceso sencillo de MapReduce.
Figura 3. Ejemplo de MapReduce
HadoopCommon
HadoopCommonComponents son un conjunto de libreras que soportan varios
subproyectos de Hadoop.
Adems de estos tres componentes principales de Hadoop, existen otros proyectos
relacionados los cuales son definidos a continuacin:
Avro
Es un proyecto de Apache que provee servicios de serializacin. Cuando se guardan
datos en un archivo, el esquema que define ese archivo es guardado dentro del
mismo; de este modo es ms sencillo para cualquier aplicacin leerlo posteriormente
puesto que el esquema esta definido dentro del archivo.
Cassandra
Cassandra es una base de datos no relacional distribuida y basada en un modelo de
almacenamiento de <clave-valor>, desarrollada en Java. Permite grandes volmenes
de datos en forma distribuida. Twitter es una de las empresas que utiliza
Cassandradentro de su plataforma.
Chukwa
Diseado para la coleccin y anlisis a gran escala de "logs". Incluye un toolkit para
desplegar los resultados del anlisis y monitoreo.
Flume
Tal como su nombre lo indica, su tarea principal es dirigir los datos de una fuente hacia
alguna otra localidad, en este caso hacia el ambiente de Hadoop. Existen tres
entidades principales: sources, decorators y sinks. Un source es bsicamente cualquier
fuente de datos, sink es el destino de una operacin en especfico y un decorator es
una operacin dentro del flujo de datos que transforma esa informacin de alguna
manera, como por ejemplo comprimir o descomprimir los datos o alguna otra
operacin en particular sobre los mismos.
HBase
Es una base de datos columnar (column-orienteddatabase) que se ejecuta en HDFS.
HBase no soporta SQL, de hecho, HBase no es una base de datos relacional. Cada tabla
contiene filas y columnas como una base de datos relacional. HBase permite que
muchos atributos sean agrupados llamndolos familias de columnas, de tal manera
que los elementos de una familia de columnas son almacenados en un solo conjunto.
Eso es distinto a las bases de datos relacionales orientadas a filas, donde todas las
columnas de una fila dada son almacenadas en conjunto. Facebook utiliza HBase en su
plataforma desde Noviembre del 2010.
Hive
Es una infraestructura de data warehouse que facilita administrar grandes conjuntos
de datos que se encuentran almacenados en un ambiente distribuido. Hive tiene
definido un lenguaje similar a SQL llamado HiveQueryLanguage(HQL), estas sentencias
HQL son separadas por un servicio de Hive y son enviadas a procesos MapReduce
ejecutados en el cluster de Hadoop.
El siguiente es un ejemplo en HQL para crear una tabla, cargar datos y obtener
informacin de la tabla utilizando Hive:
CREATE TABLE Tweets (from_user STRING, userid BIGINT, tweettext STRING, retweets
INT)
COMMENT 'ThisistheTwitterfeedtable'
STORED AS SEQUENCEFILE;
LOAD DATA INPATH 'hdfs://node/tweetdata' INTO TABLE TWEETS;
SELECT from_user, SUM(retweets)
FROM TWEETS
GROUP BY from_user;
Jaql
Fue donado por IBM a la comunidad de software libre.
QueryLanguageforJavascriptObjectNotation (JSON) es un lenguaje funcional y
declarativo que permite la explotacin de datos en formato JSON diseado para
procesar grandes volmenes de informacin. Para explotar el paralelismo, Jaql
reescribe los queries de alto nivel (cuando es necesario) en queries de "bajo nivel" para
distribuirlos como procesos MapReduce.
Internamente el motor de Jaql transforma el query en procesos map y reduce para
reducir el tiempo de desarrollo asociado en analizar los datos en Hadoop. Jaql posee
de una infraestructura flexible para administrar y analizar datos semiestructurados
como XML, archivos CSV, archivos planos, datos relacionales, etc.
Lucene
Es un proyecto de Apache bastante popular para realizar bsquedas sobre textos.
Lucene provee de libreras para indexacin y bsqueda de texto. Ha sido
principalmente utilizado en la implementacin de motores de bsqueda (aunque hay
que considerar que no tiene funciones de "crawling" ni anlisis de documentos HTML
ya incorporadas). El concepto a nivel de arquitectura de Lucene es simple, bsicamente
los documentos (document) son dividos en campos de texto (fields) y se genera un
ndice sobre estos campos de texto. La indexacin es el componente clave de Lucene,
lo que le permite realizar bsquedas rpidamente independientemente del formato
del archivo, ya sean PDFs, documentos HTML, etc.
Oozie
Como pudo haber notado, existen varios procesos que son ejecutados en distintos
momentos los cuales necesitan ser orquestados para satisfacer las necesidades de tan
complejo anlisis de informacin.
Oozie es un proyecto de cdigo abierto que simplifica los flujos de trabajo y la
coordinacin entre cada uno de los procesos. Permite que el usuario pueda definir
acciones y las dependencias entre dichas acciones.
Un flujo de trabajo en Oozie es definido mediante un grafo acclico
llamado DirectedAcyclicalGraph (DAG), y es acclico puesto que no permite ciclos en el
grafo; es decir, solo hay un punto de entrada y de salida y todas las tareas y
dependencias parten del punto inicial al punto final sin puntos de retorno. Un ejemplo
de un flujo de trabajo en Oozie se representa de la siguiente manera:
Figura 4. Flujo de trabajo en Oozie
Pig
Inicialmente desarrollado por Yahoo para permitir a los usuarios de Hadoop enfocarse
ms en analizar todos los conjuntos de datos y dedicar menos tiempo en construir los
programas MapReduce. Tal como su nombre lo indica al igual que cualquier cerdo que
come cualquier cosa, el lenguaje PigLatin fue diseado para manejar cualquier tipo de
dato y Pig es el ambiente de ejecucin donde estos programas son ejecutados, de
manera muy similar a la relacin entre la mquina virtual de Java (JVM) y una
aplicacin Java.
ZooKeeper
ZooKeeper es otro proyecto de cdigo abierto de Apache que provee de una
infraestructura centralizada y de servicios que pueden ser utilizados por aplicaciones
para asegurarse de que los procesos a travs de un cluster sean serializados o
sincronizados.
Internamente en ZooKeeper una aplicacin puede crear un archivo que se persiste en
memoria en los servidores ZooKeeper llamado znode.Este archivo znode puede ser
actualizado por cualquier nodo en el cluster, y cualquier nodo puede registrar que sea
informado de los cambios ocurridos en ese znode; es decir, un servidor puede ser
configurado para "vigilar" un znode en particular. De este modo, las aplicaciones
pueden sincronizar sus procesos a travs de un cluster distribuido actualizando su
estatus en cada znode, el cual informar al resto del cluster sobre el estatus
correspondiente de algn nodo en especfico.
Como podr observar, ms all de Hadoop, una plataforma de Big Data consiste de
todo un ecosistema de proyectos que en conjunto permiten simplificar, administrar,
coordinar y analizar grandes volmenes de informacin.
Las grandes V de BIG DATA
Volumen, variedad y velocidad son los trminos que definen el concepto de big
data, las grandes v como se suele decir en la industria. El volumen se refiere a la
ingente cantidad de datos que circulan en la actualidad en las organizaciones; la
variedad a su diverso carcter, estructurado o no, multimedia o textual; y la
velocidad a la rapidez con la que se accede a estos datos. No obstante, segn una
infografa de Pros, falta una v ms: la viabilidad.
La viabilidad de la infraestructura y las herramientas de almacenamiento es un
aspecto clave para que las empresas aborden BIG DATA definitivamente. Con el fin
de evitar incurrir en costes desproporcionados para analizar los datos,
deben escoger con precisin las herramientas que implantarn para ello y el
procedimiento a seguir. Solo as podrn trasladar el valor de BIG DATA a la
organizacin e incrementar las ventas.
Por otro lado, con la ingente produccin de datos que existe en la sociedad
actual, las organizaciones almacenan entre 11 y 15 terabytes de datos de
seguridad a la semana. El problema es que el 58% de las empresas admite que solo
los guarda durante menos de tres meses.
Desde Mcafee sealan que para conseguir inteligencia de amenazas en tiempo real
en una poca en la que el volumen, la velocidad y la variedad de la informacin han
llevado a sus lmites a los sistemas tradicionales, las empresas tienen que analizar,
almacenar y gestionar los big data de seguridad. Las organizaciones deberan ir ms
all de patrones para obtener un verdadero anlisis basado en los riesgos.
Idealmente, este enfoque debera estar respaldado por un sistema de gestin de
datos que permita crear anlisis complejos en tiempo real. Adems de la capacidad
de detectar amenazas en tiempo real, las organizaciones deben ser capaces de
identificar tendencias y patrones potencialmente siniestros a largo plazo.
Uno de los dilemas a los que se enfrentan las empresas es que no pueden costearse la
infraestructura fsica para interpretar grandes volmenes de datos desestructurados.
Muchos proveedores de almacenamiento de datos ofrecen ahora soluciones en la
nube como parte de su gama de productos y las comercializan entre los clientes como
soluciones asequibles y accesibles.
En esencia, las empresas alquilan espacio en potentes servidores a los que pueden
acceder en lnea. Estos servidores estn equipados con sofisticadas aplicaciones que
han sido diseadas especialmente para manejar grandes volmenes de datos. La
ventaja para los clientes es que pueden conseguir resultados rpidos, a menudo en
tiempo real, y que es una solucin muy accesible (algunas empresas, como SAP,
ofrecen acceso a travs del telfono mvil).
A/B Testing: Las pruebas A / B. Una tcnica en la que un grupo de control se compara
con una variedad de grupos de prueba con el fin de determinar qu tratamientos (es
decir, cambios) mejorar una variable objetivo dado, por ejemplo, la tasa de respuesta
de marketing. Esta tcnica tambin se conoce como pruebas de divisin o pruebas de
cubo. Un ejemplo de aplicacin es la determinacin de lo que copia de texto, diseos,
imgenes o colores sern mejorar las tasas de conversin en un sitio Web de comercio
electrnico. Grandes datos permite un gran nmero de pruebas que se ejecutarn y
analizado, asegurando que los grupos son de un tamao suficiente para detectar
significativos (es decir, estadsticamente significativas) diferencias entre el controly los
grupos de tratamiento (ver informacin ) . Cuando ms de una variable es manipulada
de manera simultnea en el tratamiento, la generalizacin multivariante de esta
tcnica, que se aplica modelos estadsticos, a menudo se llama " / B / N A" de prueba.
Clasificacin . Un conjunto de tcnicas para identificar las categoras en las que los
nuevos puntos de datos pertenecen, con base en un conjunto de entrenamiento que
contiene puntos de datos que ya han sido categorizados. Una aplicacin es la
prediccin del comportamiento de los clientes del segmento especfico (por ejemplo,
las decisiones de compra, tasa de rotacin, tasa de consumo) , donde hay una
hiptesis clara o resultado objetivo . Estas tcnicas se describen a menudo como
aprendizaje supervisado debido a la existencia de un conjunto de entrenamiento, sino
que estn en contraste con anlisis de conglomerados, un tipo de aprendizaje no
supervisado. Se utiliza para la extraccin de datos.
Crowdsourcing. Una tcnica de recogida de los datos presentados por un gran grupo
de personas o comunidad (es decir , la " multitud") a travs de una convocatoria
abierta , por lo general a travs de los medios de comunicacin en red, tales como el
Web.28 Este es un tipo de colaboracin masiva y un ejemplo de la utilizacin de la
Web 2.0.29
Los algoritmos genticos. Una tcnica que se utiliza para la optimizacin que se inspira
en el proceso de evolucin natural o "supervivencia del ms apto. " En esta tcnica, las
posibles soluciones se codifican como "cromosomas " que pueden combinar y mutar.
Estos cromosomas individuales se seleccionan para la supervivencia dentro de un "
entorno " modelado que determina la idoneidad o el rendimiento de cada individuo de
la poblacin. A menudo descrito como un tipo de " algoritmo evolutivo ", estos
algoritmos son muy adecuados para la resolucin de problemas no lineales. Ejemplos
de aplicaciones incluyen la mejora de la planificacin de tareas en la fabricacin y
optimizar el rendimiento de una cartera de inversiones.
Optimizacin. Una cartera de tcnicas numricas utilizadas para redisear los sistemas
y procesos complejos para mejorar su rendimiento de acuerdo con una o ms medidas
objetivas ( por ejemplo , el costo, la velocidad o fiabilidad) . Ejemplos de aplicaciones
incluyen la mejora de los procesos operativos, tales como la programacin , el
enrutamiento y distribucin de la planta , y la toma de decisiones estratgicas, como
estrategia gama de productos , anlisis de inversiones vinculadas , y la estrategia de la
cartera de I + D . Los algoritmos genticos son un ejemplo de una tcnica de
optimizacin.
Hay un nmero cada vez mayor de las tecnologas utilizadas para agregar, manipular,
manejar y analizar grandes volmenes de datos . Hemos detallado algunas de las
tecnologas ms importantes, pero la lista no es exhaustiva , especialmente a medida
que ms tecnologas continan siendo desarrollados para apoyar las tcnicas de
grandes volmenes de datos , algunos de los cuales hemos enumerado .
Big Table. Sistema de base de datos distribuida patentada incorporada en el sistema
de archivos de Google. Inspiracin para HBase .
Sistema distribuido. Varios equipos, la comunicacin a travs de una red, utilizan para
resolver un problema de clculo comn. El problema se divide en mltiples tareas,
cada una de las cuales se resuelve mediante uno o ms ordenadores que trabajan en
paralelo. Ventajas de los sistemas distribuidos incluyen un mayor rendimiento a menor
coste (es decir, debido a que un grupo de equipos de gama baja puede ser menos
costoso que un solo ordenador de gama alta), una confiabilidad ms alta (es decir,
debido a la falta de un punto nico de fallo), y ms escalabilidad (es decir , porque el
aumento de la potencia de un sistema distribuido se puede lograr por la simple adicin
de ms nodos en lugar de sustituir completamente un ordenador central) .
HBase. Una fuente abierta (gratis), distribuido, bases de datos no relacionales como
modelo Big Table de Google. Fue desarrollado originalmente por Powerset y ahora se
gestiona como un proyecto de la fundacin Apache Software como parte de la
Hadoop.
Base de datos no relacionales. Una base de datos que no almacena los datos en tablas
(filas y columnas). (En contraste con bases de datos relacionales).
Base de datos relacional. Una base de datos formado por una coleccin de tablas
(relaciones), es decir, los datos se almacenan en filas y columnas. Sistemas de gestin
de bases de datos relacionales (RDBMS) almacenan un tipo de datos estructurados.
SQL es el lenguaje ms utilizado para la gestin de bases de datos relacionales (ver
punto siguiente).
Datos semi -estructurados. Los datos que no se ajustan a los campos fijos pero
contienen etiquetas y otros marcadores para elementos de datos separadas Ejemplos
de datos semi-estructurados incluyen XML o de texto HTML con etiquetas. Contraste
con los datos estructurados y datos no estructurados.
Estructurado de datos. Los datos que residen en campos fijos. Algunos ejemplos de
datos estructurados incluyen bases de datos relacionales o datos en hojas de clculo.
Contraste con los datos semi-estructurados y datos no estructurados.
Los datos no estructurados. Datos que no residen en campos fijos. Los ejemplos
incluyen el texto de forma libre (por ejemplo, los libros, los artculos, el cuerpo de los
mensajes de correo electrnico), audio sin etiqueta, imagen y datos de vdeo.
Contraste con los datos estructurados y datos semi - estructurados.
Recomendaciones