El objetivo principal de este curso es analizar las necesidades tecnológicas y de ingeniería de a gestión de Big Data. La tecnología que permite este desafío son los servicios en la nube, que brindan la elasticidad necesaria para escalar adecuadamente la infraestructura a medida que crecen las necesidades de la empresa. Por lo tanto, los estudiantes aprenderán técnicas avanzadas de administración de datos (es decir, soluciones NOSQL) que también se adaptan a la infraestructura. Al ser la gestión de Big Data la evolución del Data Warehousing, tal conocimiento (ver la asignatura correspondiente en la especialidad Data Science para obtener más detalles sobre sus contenidos) se presupone en este curso, que se centrará específicamente en la gestión del volumen y la velocidad de los datos.
Por un lado, para lidiar con grandes volúmenes de datos, veremos cómo un sistema de archivos distribuidos puede escalar a tantas máquinas como sea necesario. Luego, estudiaremos diferentes estructuras físicas que podemos usar para almacenar nuestros datos. Dichas estructuras pueden dar lugar a un formato de archivo en el nivel del sistema operativo o un gestor más complejo a un nivel de abstracción más alto. En este último caso, toman la forma de conjuntos de pares clave-valor, colecciones de documentos semiestructurados o tablas almacenadas en columnas. Veremos que, independientemente del tipo de almacenamiento que elijamos, los actuales sistemas de procesamiento altamente paralelizables utilizan principios de programación funcional (generalmente basados ¿¿en funciones de map y reduce), cuyo marco de procesamiento puede basarse en archivos temporales (como Hadoop MapReduce) o principalmente en estructuras de memoria (como Spark).
Por otro lado, para hacer frente a la alta velocidad de los datos, necesitamos algún sistema de baja latencia que procese secuencias o micropaquetes. Sin embargo, hoy en día, la producción de datos ya está más allá de la capacidad de las tecnologías de procesamiento. Se están generando más datos de los que podemos almacenar o incluso procesar sobre la marcha. Por lo tanto, reconoceremos la necesidad de (a) algunas técnicas para seleccionar subconjuntos de datos (es decir, filtrar o muestrear), (b) resumirlos maximizando la información relevante retenida, y (c) simplificar nuestros algoritmos para reducir su complejidad computacional (es decir, haciendo una única pasada sobre los datos) y proporcionar una respuesta aproximada.
Finalmente, la complejidad de un proyecto Big Data (que combina todas las herramientas necesarias en un ecosistema colaborativo), que generalmente involucra a varias personas con diferentes antecedentes, requiere la definición de una arquitectura de alto nivel que supere las dificultades tecnológicas y se centre en las funcionalidades proporcionadas y las interacciones entre módulos. Por lo tanto, también analizaremos diferentes arquitecturas de software para Big Data.
Profesorado
Responsable
Besim Bilalli (
)
Otros
Marc Maynou Yelamos (
)
Sergi Nadal Francesch (
)
Uchechukwu Fortune Njoku (
)
Horas semanales
Teoría
1.9
Problemas
0
Laboratorio
1.9
Aprendizaje dirigido
0
Aprendizaje autónomo
6.85
Competencias
Competencias Transversales
Trabajo en equipo
CT3 - Ser capaz de trabajar como miembro de un equipo interdisciplinar ya sea como un miembro mas, o realizando tareas de direccion con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.
Lengua extranjera
CT5 - Conocer una tercera lengua, preferentemente el inglés, con un nivel adecuado oral y escrito y en consonancia con las necesidades que tendrán los titulados y tituladas.
Espíritu emprendedor e innovador
CT1 - Conocer y entender la organización de una empresa y las ciencias que rigen su actividad; tener capacidad para entender las normas laborales y las relaciones entre la planificación, las estrategias industriales y comerciales, la calidad y el beneficio. Conocer y entender los mecanismos en que se basa la investigación científica, así como los mecanismos e instrumentos de transferencia de resultados entre los diferentes agentes socioeconómicos implicados en los procesos de I+D+i.
Básicas
CB6 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
CB7 - Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
CB8 - Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
CB9 - Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.
CB10 - Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación.
Competencias Técnicas Genéricas
Genéricas
CG1 - Identificar y aplicar los métodos y procesos de gestión de datos más adecuados para gestionar el ciclo de vida de los datos, incluyendo datos estructurados y no estructurados
CG3 - Definir, diseñar e implementar sistemas complejos que cubran todas las fases en proyectos de ciencia de datos
Competencias Técnicas
Específicas
CE2 - Aplicar los fundamentos de la gestión y procesamiento de datos en un problema de ciencia de datos
CE4 - Aplicar métodos escalables de almacenamiento y procesamiento paralelo de datos, incluyendo flujos continuos de datos, una vez identificados los más apropiados para un problema de ciencia de datos
CE5 - Modelar, diseñar e implementar sistemas complejos de datos, incluyendo la visualización de datos
CE12 - Aplicar la ciencia de datos en proyectos multidisciplinares para resolver problemas en dominios nuevos o poco conocidos y que sean económicamente viables, socialmente aceptables, y de acuerdo con la legalidad vigente
CE13 - Identificar las principales amenazas en el ámbito de la ética y la privacidad de datos en un proyecto de ciencia de datos (tanto en el aspecto de gestión como de análisis de datos) y desarrollar e implantar medidas adecuadas para mitigar dichas amenazas.
Objetivos
Comprender los principales métodos avanzados de gestión de datos y diseñar e implementar gestores de bases de datos no relacionales, con especial énfasis en sistemas distribuidos.
Competencias relacionadas:
CT3,
CT5,
CG1,
CG3,
CE2,
CE4,
CE5,
CB6,
CB7,
CB8,
CB9,
CB10,
Comprender, diseñar, explicar y llevar a cabo procesamiento paralelo de la información en sistemas distribuidos masivamente.
Competencias relacionadas:
CT3,
CT5,
CG1,
CG3,
CE2,
CE4,
CE5,
CB6,
CB7,
CB8,
CB9,
CB10,
Diseñar, implementar y mantener arquitecturas de sistemas que gestionan el ciclo de vida del dato en entornos analíticos.
Competencias relacionadas:
CT3,
CT5,
CT1,
CG1,
CG3,
CE2,
CE4,
CE5,
CE12,
CE13,
CB6,
CB7,
CB8,
CB9,
CB10,
Contenidos
Introducción
Big Data, Cloud Computing, Escalabilidad
Diseño de Big Data
Polyglot systems; Schemaless databases; Key-value stores; Wide-column stores; Document-stores
Gestión de datos distribuidos
Transparency layers; Distributed file systems; File formats; Fragmentation; Replication and synchronization; Sharding; Distributed hash; LSM-Trees
Gestión de datos en memoria
NUMA architectures; Columnar storage; Late reconstruction; Light-weight compression
Procesamiento distribuido de datos
Distributed Query Processing; Sequential access; Pipelining; Parallelism; Synchronization barriers; Multitenancy; MapReduce; Resilient Distributed Datasets; Spark
Gestión y procesamiento de Streams
One-pass algorithms; Sliding window; Stream to relation operations; Micro-batching; Sampling; Filtering; Sketching
Arquitecturas de Big Data
Centralized and Distributed functional architectures of relational systems; Lambda architecture
Actividades
ActividadActo evaluativo
Clases de teoría
En estas actividades, el profesor introducirá los principales conceptos teóricos de la asignatura. Se requerirá la participación activa de los estudiantes. Objetivos:2134 Contenidos:
Theory: Classical theory lectures in conjunction with complementary explanations and problem solving.
Lab: There will be a project done in teams where students will put into practice the kinds of tools studied during the course. This will be evaluated in two deliverables and individual tests.
Método de evaluación
Final Mark = 60%E + 40%L
L = Weighted average of the marks of the lab deliverables and tests
E = Final exam
Al ser Big Data Management la evolución del Data Warehousing, dicho conocimiento se asume en este curso. Por lo tanto, se espera conocimiento general sobre: diseño de bases de datos relacionales; Arquitectura del sistema de gestión de bases de datos; ETL y OLAP
Específicamente, se espera conocimiento sobre:
- Multidimensional modeling (i.e, star schemas)
- Querying relational databases
- Physical design of relational tables (i.e., partitioning)
- Hash and B-tree indexing
- External sorting algorithms (i.e., merge-sort)
- ACID transactions