Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AVANZADO
SESIÓN N° 6: Data Analytics – Parte 2
1
AVANZADO
Data analytics
2
Data Analysis?
AVANZADO
3
Data Analysis?
AVANZADO El análisis de datos es vital para las empresas grandes y
pequeñas. Los procesos de análisis de datos se combinan para
crear soluciones de análisis de datos, que ayudan a las
empresas a decidir dónde y cuándo lanzar nuevos productos,
cuándo ofrecer descuentos y cuándo comercializar en nuevas
áreas. Sin los datos proporcionados por el análisis de datos,
muchos tomadores de decisiones basarían sus decisiones en la
intuición y la pura suerte. A medida que las empresas
comienzan a implementar soluciones de análisis de datos,
surgen desafíos. Estos desafíos se basan en las características
de los datos y análisis necesarios para su caso de uso. En el
pasado, estos desafíos se han definido como desafíos de "big
data". Sin embargo, en el entorno actual basado en la nube,
estos desafíos pueden aplicarse a conjuntos de datos pequeños
o lentos casi con la misma frecuencia que a conjuntos de datos
muy grandes y rápidos.
4
AVANZADO
Big data is an industry term that has changed in recent years. Big data
solutions are often part of data analysis solutions.
5
AVANZADO
6
AVANZADO
7
AVANZADO
8
Big Data?
AVANZADO
9
Big Data?
AVANZADO Los datos se generan de muchas maneras. La gran
pregunta es dónde ponerlo todo y cómo usarlo para crear
valor o generar ventajas competitivas. Los desafíos
identificados en muchas soluciones de análisis de datos
se pueden resumir en cinco desafíos clave: volumen,
velocidad, variedad, veracidad y valor. No todas las
organizaciones experimentan desafíos en todas las áreas.
Algunas organizaciones luchan con la ingestión de
grandes volúmenes de datos rápidamente. Otros luchan
con el procesamiento de volúmenes masivos de datos
para producir nuevos conocimientos predictivos. Otros
tienen usuarios que necesitan realizar análisis de datos
detallados sobre la marcha sobre enormes conjuntos de
datos.
10
Componentes de una solucion de Data Analytics
AVANZADO
Una solución de análisis de datos tiene muchos
componentes. Los análisis realizados en cada uno de
estos componentes pueden requerir diferentes servicios y
diferentes enfoques. Una solución de análisis de datos
incluye los siguientes componentes.
11
Challenges de una solucion de Data Analytics
AVANZADO
Debido al aumento del volumen, la
velocidad, la variedad, la veracidad y el
valor de los datos, algunos desafíos de
administración de datos no se pueden
resolver con soluciones tradicionales de
procesamiento y bases de datos. Ahí es
donde entran en juego las soluciones de
análisis de datos. Una breve definición
de los cinco desafíos te ayudará a
entender cada uno antes de seguir
adelante.
12
Planificacion de una solucion de Data Analytics
AVANZADO
13
Data Analytics: De donde viene la data?
La mayoría de los datos ingeridos por las soluciones de análisis de datos provienen de bases de
datos locales y almacenes de archivos existentes. Estos datos a menudo se encuentran en un
estado en el que el procesamiento requerido dentro de la solución será mínimo.
AVANZADO
La transmisión de datos es una fuente de datos empresariales que está ganando popularidad.
Este origen de datos está menos estructurado. Puede requerir un software especial para recopilar
los datos y aplicaciones de procesamiento específicas para agregarlos y analizarlos
correctamente casi en tiempo real.
Los conjuntos de datos públicos son otra fuente de datos para las empresas. Estos incluyen
datos del censo, datos de salud, datos de población y muchos otros conjuntos de datos que
ayudan a las empresas a comprender los datos que están recopilando sobre sus clientes. Es
posible que estos datos deban transformarse para que contengan solo lo que el negocio necesita.
14
Data Analytics: Como procesamos la data?
15
Data Analytics: Como aprendemos de la data?
16
AVANZADO
17
AVANZADO
18
Volume: Crecimiento exponencial de la data
19
Pero, ¿qué son los datos no estructurados? Está en cada
AVANZADO
archivo que almacenamos, cada foto que tomamos y el
correo electrónico que enviamos.
20
Las plataformas modernas de gestión de datos deben
capturar datos de diversas fuentes a velocidad y escala.
Los datos deben reunirse en repositorios centrales y
manejables, rompiendo los silos tradicionales. Los
AVANZADO beneficios de la recopilación y el análisis de todos los
datos empresariales deben superar los costos.
21
AVANZADO
22
AVANZADO
23
AVANZADO
24
AVANZADO
25
S3: Ventajas
AVANZADO
26
Un lago de datos es un repositorio centralizado que le
permite almacenar datos estructurados,
semiestructurados y no estructurados a cualquier escala.
AVANZADO
27
Los lagos de datos prometen la capacidad de almacenar todos los datos de
una empresa en un único repositorio. Puede aprovechar los lagos de datos
para almacenar grandes volúmenes de datos en lugar de conservar esos
datos en almacenes de datos. Los lagos de datos, como los integrados en
Amazon S3, suelen ser menos costosos que las soluciones especializadas
de almacenamiento de big data. De esa manera, solo paga por las
AVANZADO
soluciones especializadas cuando las usa para procesamiento y análisis y
no para almacenamiento a largo plazo. Su proceso de extracción,
transformación y carga (ETL) y análisis aún puede acceder a estos datos
para su análisis.
28
•Son una solución de almacenamiento de datos rentable. Puede
almacenar de forma duradera una cantidad casi ilimitada de datos con
Amazon S3. Implemente seguridad y cumplimiento líderes en la
industria. AWS utiliza estrictos mecanismos de seguridad, conformidad,
privacidad y protección de datos.
AVANZADO
•Le permite aprovechar muchas herramientas diferentes de
recopilación e ingesta de datos para ingerir datos en su lago de datos.
Estos servicios incluyen Amazon Kinesis para la transmisión de datos y
dispositivos AWS Snowball para grandes volúmenes de datos locales.
Ayudarle a categorizar y gestionar sus datos de forma sencilla y
eficiente.
La programación MapReduce no es una opción adecuada para todos los problemas. stepEs
adecuada para simples solicitudes de información y problemas que se pueden dividir en unidades
independientes, pero no es eficiente para realizar tareas analíticas iterativas e interactivas.
MapReduce trabaja con muchos archivos. Como los nodos no se intercomunican salvo a través de
procesos de clasificación y mezcla, los algoritmos iterativos requieren múltiples fases de mapeo-
mezcla/clasificación-reducción para completarse. Esto da origen a múltiples archivos entre fases
de MapReduce y no es eficiente para el cómputo analítico avanzado.
30
Apache Spark es un framework de computación (entorno
AVANZADO de trabajo) en clúster open-source. Fue desarrollada
originariamente en la Universidad de California, en el
AMPLab de Berkeley. El código base del proyecto Spark
fue donado más tarde a la Apache Software
Foundation que se encarga de su mantenimiento desde
entonces. Spark proporciona una interfaz para la
programación de clusters completos con Paralelismo de
Datos implícito y tolerancia a fallos.
Apache Spark se puede considerar un sistema de
computación en clúster de propósito general y orientado a
la velocidad. Proporciona APIs en Java, Scala, Python y
R. También proporciona un motor optimizado que soporta
la ejecución de graficos en general. También soporta un
conjunto extenso y rico de herramientas de alto nivel
entre las que se incluyen Spark SQL (para el
procesamiento de datos estructurados basada en SQL),
MLlib para implementar machine learning, GraphX para el
procesamiento de graficos y Spark Streaming.
31
Apache Spark es un motor de computación distribuida de código abierto y propósito general
utilizado para procesar y analizar una gran cantidad de datos. Al igual que Hadoop MapReduce,
también trabaja con el sistema para distribuir datos a través del clúster y procesar los datos en
paralelo. Spark utiliza la arquitectura maestro/esclavo, es decir, un coordinador central y
muchos trabajadores distribuidos. Aquí, el coordinador central se llama el conductor.
Spark Shell es una aplicación de Spark escrita en Scala. Ofrece un entorno de línea de
comandos con autocompletado. Nos ayuda a familiarizarnos con las características de
Spark, que ayudan a desarrollar nuestra propia aplicación Spark independiente. Por lo
tanto, esta herramienta ayuda a explorar Spark y también es la razón por la que Spark es
tan útil en el procesamiento de conjuntos de datos de todos los tamaños.
AVANZADO
33
Preparacion de Data Lakes
34
Preparacion de Data Lakes
35
DataWareHouse
Un almacén de datos es un repositorio central de datos
estructurados de muchas fuentes de datos. Estos datos
AVANZADO se transforman, agregan y preparan para informes y
análisis comerciales.
36
DataWareHouse
AVANZADO Un almacén de datos es un repositorio central de información procedente de una o más fuentes de
datos. Los datos fluyen a un almacén de datos desde sistemas transaccionales, bases de datos
relacionales y otras fuentes. Estas fuentes de datos pueden incluir datos estructurados,
semiestructurados y no estructurados. Estas fuentes de datos se transforman en datos
estructurados antes de almacenarse en el almacén de datos.
Los datos se almacenan dentro del almacén de datos mediante un esquema. Un esquema define
cómo se almacenan los datos en tablas, columnas y filas. El esquema impone restricciones en los
datos para garantizar la integridad de los datos. El proceso de transformación a menudo implica los
pasos necesarios para que los datos de origen se ajusten al esquema. Después de la primera
ingesta exitosa de datos en el almacén de datos, el proceso de ingestión y transformación de los
datos puede continuar a una cadencia regular.
Los analistas de negocios, científicos de datos y tomadores de decisiones acceden a los datos a
través de herramientas de inteligencia de negocios (BI), clientes SQL y otros análisis ...
37
DataMarts
Los almacenes de datos pueden ser masivos. Analizar estos enormes almacenes de datos puede
ser confuso. Muchas organizaciones necesitan una forma de limitar las tablas a aquellas que son
AVANZADO más relevantes para el análisis que los usuarios realizarán.
Un subconjunto de datos de un almacén de datos se denomina data mart. Los data marts solo se
centran en un tema o área funcional. Un almacén puede contener todas las fuentes relevantes
para una empresa, pero un data mart puede almacenar solo las fuentes de un solo departamento.
Debido a que los data marts son generalmente una copia de los datos ya contenidos en un
almacén de datos, a menudo son rápidos y fáciles de implementar.
38
Traditional Datawarehouse & RedShift
AVANZADO
39
Desde el DW al DL: Analizando un DataWareHouse
Para que el análisis sea más efectivo, debe realizarse
sobre los datos que se han procesado y limpiado. Esto a
menudo significa implementar una operación ETL para
AVANZADO recopilar, limpiar y transformar los datos. Estos datos se
colocan en un almacén de datos. Es muy común que los
datos de muchas partes diferentes de la organización se
combinen en un solo almacén de datos. Amazon
Redshift es una solución de almacenamiento de datos
especialmente diseñada para cargas de trabajo de todos
los tamaños. Amazon Redshift Spectrum incluso
proporciona la capacidad de consultar datos alojados en
un lago de datos de Amazon S3.
40
Desde el DW al DL: Analizando un DataWareHouse
Los lagos de datos proporcionan a los clientes un medio para incluir datos no
estructurados y semiestructurados en sus análisis. Las consultas analíticas se
pueden ejecutar sobre datos catalogados dentro de un lago de datos. Esto amplía
el alcance de la analítica más allá de los confines de un único almacén de datos.
AVANZADO
Las empresas pueden almacenar de forma segura los datos procedentes de
aplicaciones y dispositivos en su formato nativo, con alta disponibilidad, durabilidad,
a bajo costo y a cualquier escala.
Las empresas pueden acceder y analizar fácilmente los datos de diversas maneras
utilizando las herramientas y marcos de su elección de una manera rentable y de
alto rendimiento sin tener que mover grandes cantidades de datos entre los
sistemas de almacenamiento y análisis.
41
Desde el DW al DL: DL & Analytics
AWS proporciona una cartera completa de servicios que
permiten a los clientes crear sus lagos de datos en la
nube y analizar todos sus datos con el conjunto más
AVANZADO
amplio de enfoques analíticos, incluido el aprendizaje
automático.
42
AVANZADO
45
Beneficios de utilizar Apache Hadoop (2/4)
A diferencia de los sistemas de bases de datos tradicionales, Hadoop puede
procesar datos estructurados, semiestructurados o no estructurados. Esto
incluye prácticamente cualquier formato de datos disponible actualmente.
AVANZADO
Además de manejar de forma nativa muchos tipos de datos (como XML,
CSV, texto, archivos de registro, objetos, SQL, JSON y binarios), puede usar
Haddop para transformar datos en formatos que permitan una mejor
integración en sus conjuntos de datos existentes. Además, puede almacenar
datos con o sin un esquema y realizar operaciones ETL a gran escala para
transformar sus datos.
46
Beneficios de utilizar Apache Hadoop (3/4)
Debido a que Hadoop es de código abierto, hay varios proyectos de
ecosistema disponibles para ayudarlo a analizar los múltiples tipos de
datos que Hadoop puede procesar y analizar.
AVANZADO
Estos proyectos le brindan una gran flexibilidad cuando desarrolla
soluciones de análisis de datos. Los marcos de programación de
Hadoop (como Hive y Pig) pueden admitir casi cualquier caso de uso
de análisis de datos para sus aplicaciones.
47
Beneficios de utilizar Apache Hadoop (4/4)
Debido a que Hadoop es de código abierto, hay varios
proyectos de ecosistema disponibles para ayudarlo a
AVANZADO analizar los múltiples tipos de datos que Hadoop puede
procesar y analizar. Estos proyectos le brindan una gran
flexibilidad cuando desarrolla soluciones de análisis de
datos. Los marcos de programación de Hadoop (como
Hive y Pig) pueden admitir casi cualquier caso de uso de
análisis de datos para sus aplicaciones.
48
Implementación de Hadoop con Amazon EMR
AVANZADO
Amazon EMR es el servicio de AWS que implementa los marcos de Hadoop. ¡El servicio ingerirá
datos de casi cualquier tipo de fuente de datos a casi cualquier velocidad! Amazon EMR tiene la
capacidad de implementar dos sistemas de archivos diferentes: HDFS o Elastic MapReduce File
System (EMRFS). Un sistema de archivos es un conjunto de reglas organizativas que rigen cómo
se almacenan los archivos.
HDFS
Para manejar volúmenes masivos de datos rápidamente, el sistema de procesamiento requería una
forma de distribuir la carga de archivos de lectura y escritura en decenas o incluso cientos de
servidores de alta potencia. HDFS es un almacenamiento distribuido que permite leer y escribir
archivos en clústeres de servidores en paralelo. Esto reduce drásticamente la duración total de
todas y cada una de las operaciones. Es útil comprender el funcionamiento interno de un clúster
HDFS. Un clúster de HDFS consta principalmente de un NameNode, que administra los metadatos
del sistema de archivos, y DataNodes, que almacena los datos reales.
49
Componentes estructurales de HDFS (1/6)
AVANZADO
50
Componentes estructurales de HDFS (2/6)
AVANZADO
51
Componentes estructurales de HDFS (3/6)
AVANZADO
52
Componentes estructurales de HDFS (4/6)
AVANZADO
53
Componentes estructurales de HDFS (5/6)
AVANZADO
54
Componentes estructurales de HDFS (6/6)
AVANZADO
55
AVANZADO
Lab
Consumer Cluster for Kinesis
56
Vision General
AVANZADO
57
Vision General – Linea consume y almacenamiento
AVANZADO
58
Creacion de Cluster en AWS EMR
AVANZADO
59
import sys
from pyspark import SparkContext
from pyspark.streaming import StreamingContext
from pyspark.streaming.kinesis import KinesisUtils,
InitialPositionInStream
Ejecutar trabajo en Cluster de Spark
AVANZADO Demo-spark1.py if __name__ == "__main__":
if len(sys.argv) != 5:
print("Usage: demo-spark.py <app-name>
<stream-name> <endpoint-url> <region-name>",
file=sys.stderr)
sys.exit(-1)
sc = SparkContext(appName="Demo-Spark")
ssc = StreamingContext(sc, 1) appName,
streamName, endpointUrl, regionName = sys.argv[1:]
lines = KinesisUtils.createStream( ssc,
appName, streamName, endpointUrl, regionName,
InitialPositionInStream.LATEST, 2) counts =
lines.flatMap(lambda line: line.split(" ")) \
.map(lambda word: (word, 1)) \
.reduceByKey(lambda a, b: a+b)
counts.pprint()
ssc.start()
ssc.awaitTermination()
60
Ejecutar JOB en SPARK
AVANZADO
• <app-name> is the name of the consumer app, used to track the read data in DynamoDB
• <stream-name> name of the Kinesis stream (i.e. mySparkStream)
• <endpoint-url> endpoint of the Kinesis service (e.g. https://kinesis.us-east-
1.amazonaws.com)
• <region-name> region name of the Kinesis endpoint (e.g. us-east-1)
61
AVANZADO
AVANZADO
GRACIAS
SESIÓN N° 6: Data Analytics – Parte 2
62