Tecnologías de Stream Processing Código:  B0.486    :  6
Consulta de los datos generales   Descripción   La asignatura en el conjunto del plan de estudios   Campos profesionales en el que se proyecta   Conocimientos previos   Objetivos y competencias   Contenidos   Consulta de los recursos de aprendizaje de los que dispone la asignatura   Informaciones sobre la evaluación en la UOC   Consulta del modelo de evaluación  
Este es el plan docente de la asignatura para el segundo semestre del curso 2023-2024. Podéis consultar si la asignatura se ofrece este semestre en el espacio del campus Más UOC / La universidad / Planes de estudios). Una vez empiece la docencia, tenéis que consultarlo en el aula. El plan docente puede estar sujeto a cambios.

Esta asignatura constituye una introducción a las tecnologías relacionadas con los sistemas de Big Data en el ámbito del análisis de datos en flujo.

Iniciaremos esta asignatura definiendo qué son los datos en Streaming y sus principales métodos de captura y análisis en sistemas clásicos. Continuaremos introduciendo el cambio de paradigma que supone su tratamiento en entornos Big Data y que arquitecturas se ofrecen a tal objetivo. Seguidamente, pasaremos al procesamiento en si de estos datos viendo las técnicas que se usan, como funcionan algunos de los principales algoritmos y que consideraciones debemos tener para diseñarlos. El siguiente bloque lo vamos a dedicar a comentar algunos de los aspectos prácticos de implementación de los sistemas incluyendo sistemas en Cloud. Finalizaremos la asignatura revisando las principales librerías Machine Learning con datos en Streaming viendo algunos de los algoritmos más clásicos y como estos varían cuando los datos llegan en flujo.

Amunt

Esta asignatura pertenece al conjunto de asignaturas del itinerario de Big Data en el Máster de Inteligencia de Negocio y Big Data Analytics.

Amunt

La asignatura proporciona conocimientos que serán de utilidad en diferentes ámbitos profesionales, como son el diseño de sistemas que requieran el uso de datos masivos en flujo, la ciencia de datos o la dirección/consultoría de proyectos basados en sistemas Big Data, entre otros.

Amunt

El curso requiere que los estudiantes tengan conocimientos de programación en lenguaje Python, así como conocimientos básicos de análisis de datos y aprendizaje automático.

Además, como la metodología incluye estudios de casos de uso y la investigación autónoma de información, es aconsejable que el estudiante esté familiarizado con la búsqueda de fuentes de información, el análisis de la información cuantitativa y cualitativa, la capacidad de sintetizar y obtener conclusiones así como de poseer ciertas habilidades de comunicación escrita.

Asimismo también es necesario que los estudiantes tengan la capacidad de leer y comprender el idioma inglés puesto que una parte de los materiales adicionales y otros recursos, están en dicho idioma.

Amunt

Los objetivos que se desea que el estudiante alcance mediante esta asignatura son los siguientes:

  • Entender los conceptos y las definiciones formales asociadas al análisis de datos en flujo en entornos Big Data.
  • Identificar los elementos tecnológicos necesarios en cualquier proyecto basado en el uso de datos en flujo en entornos Big Data.
  • Conocer las metodologías más adecuadas para la implementación de sistemas de Big Data para procesar datos en flujo.
  • Conocer las principales herramientas disponibles para la captura y análisis de datos en flujo,  especialmente de los ecosistemas de Apache.
  • Obtener suficiencia en la captura de datos mediante Apache Flume y Apache Kafka.
  • Conocer el funcionamiento básico de las principales herramientas y frameworks para el procesado de datos en flujo en entornos Big Data: Apache Spark, Spark Streaming, Apache Structured Streaming y Storm
  • Construir modelos que generen conocimiento como resultado del análisis de datos en flujo.

Amunt

La asignatura consta de 5 bloques temáticos, cada uno de los cuales apoyado por un material didáctico. El contenido asociado a cada bloque temático es el que se detalla a continuación:

1) Introducción al streaming y captura de datos en flujo

En este primer módulo primero introduciremos el concepto datos en flujo y discutiremos el cambio de paradigma que implica dicho concepto en la segunda parte del módulo trabajaremos los diferentes métodos de captura de datos en Streaming, no solo nos vamos a centrar en los métodos más tecnológicamente avanzados sino que también trabajaremos los métodos clásicos. En la parte práctica del módulo trabajaremos dos métodos de captura de datos en flujo mediante una serie de ejercicios usando la api de Twitter.

2) Arquitecturas para los sistemas en streaming

El objetivos de este módulo es tener una visión global de las diferentes tipologías y arquitecturas de un sistema Big Data para el análisis de datos en flujo. Vamos a empezar el módulo justificando la necesidad de arquitecturas específicas para el tratamiento de datos en flujo en entornos Big Data. Seguiremos describiendo qué características deben tener estas arquitecturas. Finalizaremos el módulo describiendo dos de las arquitecturas más comunes: Lambda y Kappa y también alguna de más específica.

En la parte práctica del vamos a trabajar dos ejercicios. El primer ejercicio va orientado a trabajar un caso de uso actual. En segundo, más técnico, trabajaremos implementación de diversos métodos de captura de datos en streaming.

3) Técnicas de procesado y algoritmos para sistemas en streaming

En este módulo vamos a trabajar técnicas y algoritmos básicos para procesar datos en Streaming. Vamos a empezar viendo el procesado en formato micro-batch y con qué tipo de ventanas podemos trabajar en este entorno. Continuaremos viendo técnicas más avanzadas como las ventanas por sesión, los triggers, watermarks. Finalmente, para terminar la primera parte de este módulo vamos a trabajar sobre la dualidad tabla-stream que se da en el análisis de datos estructurados.

En la segunda parte del módulo veremos el cambio de paradigma en los algoritmos para procesar datos en Streaming donde los datos se vuelven obsoletos a medida que pasa el tiempo y lo que fuerza la necesidad de actualizar las estadísticas de forma incremental. Veremos los dos tipos principales de algoritmos: exactos y aproximados.

La parte práctica de este módulo va a extenderse hasta el final del semestre y vamos a trabajar tres de las tecnologías más usadas en el procesado de datos en flujo. Vamos a iniciar con la tecnología de Spark Streaming, una de las herramientas más consolidadas para el procesado de datos en flujo en entornos Big Data. Seguiremos con Spark. Structured Streaming que nos permitirá trabajar de manera muy cómoda y sencilla con datos estructurados. Finalmente, trabajaremos la tecnología Storm, uno de los mayores exponentes de al tecnología Lambda, que permite estructurar flujos de datos y transformaciones en un solo pipeline definido por un grafo acíclico.

4) Implementación de sistemas en streaming: aspectos prácticos

En este módulo, de corta duración, revisaremos como llevar a cabo una arquitectura de análisis de datos en flujo a la implementación real. Veremos aspectos técnicos y organizativos sobre la arquitectura Lambda y Kappa en sistemas on premise y en cloud.

5) Machine Learning con datos en Flujo

Finalmente, vamos a dedicar el último módulo de la asignatura a revisar que oportunidades ofrece el campo del aprendizaje automático cuando los datos llegan en forma de flujo. Revisaremos los modelos supervisados y no supervisados, entrando en detalle, con ejemplos a dos concretos: modelo de agrupamiento K-means (no supervisado) y la regresión lineal (supervisado).  Aunque el alumno ya conozca estos modelos, ampliamente usados, se va a mostrar que cuando los datos llegan en forma de flujo su manera de trabajar cambia substancialmente. Finalmente, vamos a  revisar varios casos de uso que el alumno podrá trabajar para afianzar los conceptos vistos en este módulo final.

Amunt

Espacio de recursos de ciencia de datos Web
Apache Flume. Documentación Audiovisual
Apache Flume. Configuración Audiovisual
Apache Flume. Implementación sources Audiovisual
Apache Flume. Agente Audiovisual

Amunt

El proceso de evaluación se fundamenta en el trabajo personal de cada estudiante y presupone la autenticidad de la autoría y la originalidad de los ejercicios realizados.

La falta de autenticidad en la autoría o de originalidad de las pruebas de evaluación; la copia o el plagio; el intento fraudulento de obtener un resultado académico mejor; la colaboración, el encubrimiento o el favorecimiento de la copia, o la utilización de material o dispositivos no autorizados durante la evaluación, entre otras, son conductas irregulares que pueden tener consecuencias académicas y disciplinarias graves.

Por un lado, si se detecta alguna de estas conductas irregulares, puede comportar el suspenso (D/0) en las actividades evaluables que se definan en el plan docente –incluidas las pruebas finales– o en la calificación final de la asignatura, ya sea porque se han utilizado materiales o dispositivos no autorizados durante las pruebas, como redes sociales o buscadores de información en internet, porque se han copiado fragmentos de texto de una fuente externa (internet, apuntes, libros, artículos, trabajos o pruebas del resto de estudiantes, etc.) sin la correspondiente citación, o porque se ha practicado cualquier otra conducta irregular.

Por el otro, y de acuerdo con las normativas académicas, las conductas irregulares en la evaluación, además de comportar el suspenso de la asignatura, pueden dar lugar a la incoación de un procedimiento disciplinario y a la aplicación, si procede, de la sanción que corresponda.

Amunt

La asignatura solo puede aprobarse con el seguimiento y la superación de la evaluación continua (EC). La calificación final de la asignatura es la nota obtenida en la EC.

 

Amunt