5.53. CS370. Big Data (Obligatorio)
- Semestre: 9no Sem. Créditos: 3
- Horas del curso: Teoría: 1 horas; Práctica: 2 horas; Laboratorio: 2 horas;
-
Prerrequisitos:
- CS3P1. Computación Paralela y Distribuída (8vo Sem)
5.53.1. Justificación
En la era actual, el volumen, velocidad y variedad de los datos superan las capacidades de los sistemas tradicionales de almacenamiento y procesamiento. Este curso introduce los conceptos y tecnologías fundamentales del Big Data. Cubre sistemas de archivos distribuidos, frameworks de procesamiento paralelo, bases de datos NoSQL y flujo de datos en tiempo real. Los estudiantes aprenderán a diseñar arquitecturas escalables para extraer valor de conjuntos de datos masivos.
5.53.2. Objetivos Generales
- 1.
- Comprender las 5 V’s del Big Data y su impacto en el diseño de sistemas.
- 2.
- Diseñar e implementar soluciones escalables usando el paradigma MapReduce.
- 3.
- Dominar el uso de sistemas de archivos distribuidos como HDFS.
- 4.
- Analizar diferentes patrones arquitectónicos para Big Data (Lambda y Kappa).
- 5.
- Aplicar técnicas de procesamiento de flujos para análisis de datos en tiempo real.
5.53.3. Contribución a los resultados (Outcomes)
-
AG-C11) Uso de Herramientas: Aplica herramientas modernas de computación en la resolución de problemas. (Usage)
-
AG-C09) Diseño y Desarrollo de Soluciones: Diseña, implementa y evalúa soluciones para problemas complejos de computación. (Usage)
5.53.4. Contenido
5.53.4.1. Conceptos Fundamentales de Sistemas de Bases de Datos (12 horas) [Habilidades AG-C09,AG-C11]
Referencias Bibliográficas: [White, 2015, Karau et al., 2017]
Temas
- 1.
- Propósito y ventajas de los sistemas de bases de datos
- 2.
- Componentes de los sistemas de bases de datos
- 3.
- Diseño de funciones fundamentales de DBMS (por ejemplo, mecanismos de consulta, gestión de transacciones, gestión de búfer, métodos de acceso)
- 4.
- Arquitectura de base de datos, independencia de datos y abstracción de datos
- 5.
- Gestión de transacciones
- 6.
- Normalización
- 7.
- Enfoques para gestionar grandes volúmenes de datos (por ejemplo, sistemas de bases de datos NoSQL, uso de MapReduce)
- 8.
- Cómo soportar aplicaciones solo de CRUD
- 9.
- Bases de datos distribuidas/sistemas basados en la nube
- 10.
- Datos estructurados, semiestructurados y no estructurados
- 11.
- Uso de un lenguaje de consulta declarativo
- 12.
- Sistemas que soportan contenido estructurado y/o de flujo
Aprendizaje esperado (Learning Outcomes)
- 1.
- Identificar al menos cuatro ventajas que proporciona el uso de un sistema de base de datos [Analizar]
- 2.
- Enumerar los componentes de un sistema de base de datos (relacional) [Enumerar]
- 3.
- Seguir una consulta a medida que es procesada por los componentes de un sistema de base de datos (relacional) [Analizar]
- 4.
- Defender el valor de la independencia de datos [Defender]
- 5.
- Componer una consulta simple de selección-proyección-unión en SQL [Componer]
- 6.
- Enumerar las cuatro propiedades de un gestor de transacciones correcto [Enumerar]
- 7.
- Describir las ventajas de eliminar datos duplicados repetidos [Describir]
- 8.
- Esbozar cómo MapReduce usa paralelismo para procesar datos eficientemente [Esquematizar/Esbozar]
- 9.
- Evaluar las diferencias entre bases de datos estructuradas y semiestructuradas/no estructuradas [Evaluar]
5.53.4.2. Bases de Datos Distribuidas/Computación en la Nube (12 horas) [Habilidades AG-C09,AG-C11]
Referencias Bibliográficas: [White, 2015, Lin and Dyer, 2010]
Temas
- 1.
- DBMS Distribuido:
- a)
- Almacenamiento de datos distribuido
- b)
- Procesamiento de consultas distribuido
- c)
- Modelo de transacción distribuida
- d)
- Soluciones homogéneas y heterogéneas
- e)
- Bases de datos distribuidas cliente-servidor
- 2.
- DBMS Paralelo:
- a)
- Arquitecturas de DBMS paralelo: memoria compartida, disco compartido, nada compartido
- b)
- Aceleración y escalamiento, por ejemplo, uso del modelo de procesamiento MapReduce
- c)
- Replicación de datos y modelos de consistencia débil
Aprendizaje esperado (Learning Outcomes)
- 1.
- Describir los componentes clave de un DBMS distribuido, incluyendo almacenamiento de datos distribuido, procesamiento de consultas y gestión de transacciones [Describir]
- 2.
- Analizar las ventajas y desventajas entre arquitecturas de DBMS paralelo: memoria compartida, disco compartido y nada compartido [Analizar]
- 3.
- Describir estrategias de replicación de datos y modelos de consistencia débil en sistemas de bases de datos distribuidas [Describir]
5.53.4.3. Sistemas NoSQL (12 horas) [Habilidades AG-C09,AG-C11]
Referencias Bibliográficas: [Sadalage and Fowler, 2012, Kleppmann, 2017b]
Temas
- 1.
- ¿Por qué NoSQL? (por ejemplo, Desajuste de impedancia entre Aplicación [CRUD] y RDBMS)
- 2.
- Modelo de datos Clave-Valor y Documento
- 3.
- Sistemas de almacenamiento (por ejemplo, sistemas Clave-Valor, Lagos de Datos (Data Lakes))
- 4.
- Modelos de Distribución (Fragmentación y Replicación)
- 5.
- Bases de Datos de Grafos
- 6.
- Modelos de Consistencia (Actualización y Lectura, consistencia de quórum, teorema CAP)
- 7.
- Modelo de procesamiento (por ejemplo, Map-Reduce, map-reduce multi-etapa, map-reduce incremental)
- 8.
- Estudios de Caso: Sistema de almacenamiento en la nube (por ejemplo, S3); Bases de datos de
grafos; Çuándo no usar NoSQL"
Aprendizaje esperado (Learning Outcomes)
- 1.
- Desarrollar un caso de uso para el uso de NoSQL sobre RDBMS [Crear]
- 2.
- Describir las características definitorias detrás de los modelos de datos basados en Clave-Valor y Documentos [Describir]
5.53.4.4. Análisis de Datos (12 horas) [Habilidades AG-C09,AG-C11]
Referencias Bibliográficas: [Matei et al., 2012, Bill and Matei, 2018, Kleppmann, 2017b, Psaltis,
2017]
Temas
- 1.
- Técnicas exploratorias de datos (motivación, representación, estadísticas descriptivas, visualizaciones)
- 2.
- Ciclo de vida de ciencia de datos: comprensión del negocio, comprensión de datos, preparación de datos, modelado, evaluación, despliegue y aceptación del usuario
- 3.
- Algoritmos de minería de datos y aprendizaje automático: por ejemplo, clasificación, agrupamiento, asociación, regresión
- 4.
- Adquisición y gobernanza de datos
- 5.
- Consideraciones de seguridad y privacidad de datos
- 6.
- Equidad y sesgo de datos
- 7.
- Técnicas de visualización de datos y su uso en análisis de datos
- 8.
- Resolución de Entidades
Aprendizaje esperado (Learning Outcomes)
- 1.
- Describir varios enfoques de exploración de datos, incluyendo visualización, para comprender conjuntos de datos no familiares [Describir]
- 2.
- Aplicar varios enfoques de exploración de datos para comprender conjuntos de datos no familiares [Aplicar]
- 3.
- Describir algoritmos básicos de aprendizaje automático/minería de datos y cuándo son apropiados para su uso [Describir]
- 4.
- Aplicar varios algoritmos de aprendizaje automático/minería de datos [Aplicar]
- 5.
- Describir consideraciones legales y éticas en la adquisición, uso y modificación de conjuntos de datos [Describir]
- 6.
- Describir problemas de equidad y sesgo en la recolección y uso de datos [Describir]
5.53.5. Referencias Bibliográficas