Carga y procesamiento de datos en HDInsight | SolidQ Summit 2014
1. Carga y procesamiento de datos en
HDInsight
@erincon Eladio Rincón
Director Área Relacional
erincon@solidq.com
@yolrod Yolanda Olmedo
DPS
yolmedo@solidq.com
@Daniel_Seara Daniel Seara
Mentor
dseara@solidq.com
2. Agenda
• Almacenamiento en HDInsight
• Carga de datos
• Herramientas para la carga de datos
• Estructurados
• No estructurados
• Especiales
• Transformaciones
• Hive
• Pig
• Map Reduce
• Obteniendo resultados
2
5. • Bibliotecas .Net que facilitan la tarea
• Serialización
• JSON
• AVRO
– Interacción con HDInsight y Azure
Carga de Datos
Herramientas para la carga de Datos
5
7. Escenario
Datos de clima y consumo de cerveza
Analizar grandes
volúmenes de
información
respecto del clima y
su correlación de
consumo,
relacionado con
períodos
estacionales
7
8. • Sqoop
• Importación/exportación RDMS Hadoop
• Azure PowerShell
• Extensión de PowerShell para interactuar con
Azure
• AzureHDInsightSqoopJobDefinition
• …
Carga de Datos
Estructurados
8
10. • ¡Serialización!
• AVRO
• JSON
• CSV
• ORC (Optimized Row Columnar)
• Transformar y almacenar
• Herramientas de serialización
• Herramientas de almacenamiento en la nube
Carga de Datos
No Estructurados
10
12. • Definir la estructura de datos necesarios
• “Copiar” entre el origen e instancias de la
estructura
• Serializar
Carga de Datos
Casos especiales
12
16. • Sistema Data Warehouse para Hadoop
• Consultas Ad-hoc
• Lenguaje de consulta como SQL: HiveQL
• Por detrás ejecuta MapReduce
Transformaciones
Hive
16
17. • Lenguaje de scripting de alto nivel
• Fácil programación extensible
• Ejecuta trabajos MapReduce
Transformaciones
Pig
17
19. Si quieres disfrutar de las mejores sesiones de
nuestros mentores de España y Latino América,
ésta es tu oportunidad.
http://summit.solidq.com
Síguenos:
22
Notas del editor
Rojo: core Hadoop
Azul: procesamiento de datos
Naranja: transferencia de datos
Lila: integración con Microsoft y valor añadido
Apache HBase: la base de datos
Apache Hive: el data warehouse
Apache Mahout: la plataforma de data mining
Apache Flume: el agregador de logs
Pegasus es un sistema de minería de gráfico
Rhadoop: predecir visitas paginas web
Oozie: orquestador de trabajos
Hcatalog : es un servicio de gestión de tablas y almacenamiento para usar con Hadoop, que provee un esquema compartido y una abstracción de tablas para que los usuarios no deban saber como se almacenan sus datos.
Pig: es un conjunto de herramientas para el análisis programático de análisis de ficheros planos. Ofrece un lenguaje de programación, transformación de datos y procesamiento en paralelo.
Demo SQOOP
Demo Obtener datos de Twitter
Demo Obtener datos de clima
Map Reduce es el núcleo, el motor de ejecución de Hadoop, es un framework que permite la computación paralela sobre grandes cantidades de datos.
MapReduce divide cada trabajo en diferentes tareas, y dichas tareas se ejecutan de forma paralela y distribuida soportando la tolerancia a fallos.
Map reduce trata siempre de ejecutar las tareas en los nodos donde están los datos almacenados o en su defecto en el nodo más cercano con el fin de aumentar la velocidad en el procesamiento.
El término mapreduce se refiere a dos tareas separadas y distintas que realizan los programas hadoop.
Los datos de entrada se dividen en partes o bloques que su tamaño depende del tamaño de datos a procesar y se le asigna una par clave/valor a cada bloque. A cada entrada se le aplica la función map y procesa los datos produciendo una lista de pares por cada llamada.
Después se ordenan todos los pares con la misma clave, obteniendo para una misma clave varios valores asociados.
Y finalmente la función reduce, reducirá ese conjunto de valores a uno único, obteniendo para cada clave un úncio valor.
Hive consiste en un sistema datawarehose para Hadoop, permite el almacenamiento de los datos en tablas, podemos crear tablas, borrar tablas, realizar join, where, group by, etc.
Permite realizar consultas ad-hoc y utiliza un lenguaje muy parecido a SQL llamado HiveQL.
Hive utiliza MapReduce para su ejecución de consultas, es decir, cada vez que lancemos una consulta sobre una tabla Hive por debajo se ejecutará un trabajo MapReduce.
Pig forma parte del ecosistema de Hadoop, y Pig es un lenguaje de scripting de alto nivel que nos permite analizar grandes volúmenes de datos semiestructurados.
Pig consiste en un lenguaje textual llamado Pig Latin, Pig Latin abstrae la programación de java a una notación fácil para el usuario y además un usuario puede crear sus propias funciones para un determinado propósito.
EL motor de ejecución se basa también MapReduce