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 la UOC para 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 primer semestre del curso 2024-2025. 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 4 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)  Módulo 2: Arquitecturas para los sistemas en streaming y su implementación

El objetivo 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, describiendo posteriormente las dos las arquitecturas más comunes de implementación: Lambda y Kappa y también alguna de más específica. Finalizaremos, revisando 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.

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 la tecnología Lambda, que permite estructurar flujos de datos y transformaciones en un solo pipeline definido por un grafo acíclico.

4) 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

En la UOC, la evaluación generalmente es virtual. Se estructura en torno a la evaluación continua, que incluye diferentes actividades o retos; la evaluación final, que se lleva a cabo mediante pruebas o exámenes, y el trabajo final de la titulación.

Las actividades o pruebas de evaluación pueden ser escritas y/o audiovisuales, con preguntas aleatorias, pruebas orales síncronas o asíncronas, etc., de acuerdo con lo que decida cada equipo docente. Los trabajos finales representan el cierre de un proceso formativo que implica la realización de un trabajo original y tutorizado que tiene como objetivo demostrar la adquisición competencial hecha a lo largo del programa.

Para verificar la identidad del estudiante y la autoría de las pruebas de evaluación, la UOC se reserva la potestad de aplicar diferentes sistemas de reconocimiento de la identidad y de detección del plagio. Con este objetivo, la UOC puede llevar a cabo grabación audiovisual o usar métodos o técnicas de supervisión durante la ejecución de cualquier actividad académica.

Asimismo, la UOC puede exigir al estudiante el uso de dispositivos electrónicos (micrófonos, cámaras u otras herramientas) o software específico durante la evaluación. Es responsabilidad del estudiante asegurar que estos dispositivos funcionan correctamente.

El proceso de evaluación se fundamenta en el trabajo personal del estudiante y presupone la autenticidad de la autoría y la originalidad de las actividades académicas. La web sobre integridad académica y plagio de la UOC contiene información al respecto.

La falta de autenticidad en la autoría o de originalidad de las pruebas de evaluación; la copia o el plagio; la suplantación de identidad; la aceptación o la obtención de cualquier actividad académica a cambio o no de una contraprestación; la colaboración, el encubrimiento o el favorecimiento de la copia, o el uso de material, software o dispositivos no autorizados en el plan docente o el enunciado de la actividad académica, incluida la inteligencia artificial y la traducción automática, entre otras, son conductas irregulares en la evaluación que pueden tener consecuencias académicas y disciplinarias graves.

Estas conductas irregulares pueden conllevar el suspenso (D/0) en las actividades evaluables definidas en el plan docente -incluidas las pruebas finales- o en la calificación final de la asignatura, ya sea porque se han utilizado materiales, software o dispositivos no autorizados durante las pruebas (como el uso de inteligencia artificial no permitida, 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 de otros estudiantes, etc.) sin la citación correspondiente, por la compraventa de actividades académicas, o porque se ha llevado a cabo cualquier otra conducta irregular.

Asimismo, y de acuerdo con la normativa académica, las conductas irregulares en la evaluación también pueden dar lugar a la incoación de un procedimiento disciplinario y a la aplicación, si procede, de la sanción que corresponda, de conformidad con lo establecido en la normativa de convivencia de la UOC.

En el marco del proceso de evaluación, la UOC se reserva la potestad de:

  • Solicitar al estudiante que acredite su identidad según lo establecido en la normativa académica.
  • Solicitar al estudiante que acredite la autoría de su trabajo a lo largo de todo el proceso de evaluación, tanto en la evaluación continua como en la evaluación final, a través de una entrevista oral síncrona, que puede ser objeto de grabación audiovisual, o por los medios establecidos por la UOC. Estos medios tienen el objetivo de verificar los conocimientos y las competencias que garanticen la identidad del estudiante. Si no es posible garantizar que el estudiante es el autor de la prueba, esta puede ser calificada con una D, en el caso de la evaluación continua, o con un suspenso, en el caso de la evaluación final.

Inteligencia artificial en el marco de la evaluación

La UOC reconoce el valor y el potencial de la inteligencia artificial (IA) en el ámbito educativo y, a su vez, pone de manifiesto los riesgos que supone si no se utiliza de forma ética, crítica y responsable. En este sentido, en cada actividad de evaluación se informará al estudiantado sobre las herramientas y los recursos de IA que se pueden utilizar y en qué condiciones. Por su parte, el estudiantado se compromete a seguir las indicaciones de la UOC a la hora de realizar las actividades de evaluación y de citar las herramientas utilizadas y, concretamente, a identificar los textos o imágenes generados por sistemas de IA, los cuales no podrá presentar como si fueran propios.

Respecto a usar o no la IA para resolver una actividad, el enunciado de las actividades de evaluación indica las limitaciones en el uso de estas herramientas. Debe tenerse en cuenta que usarlas de manera inadecuada, como por ejemplo en actividades en las que no están permitidas o no citarlas en las actividades en las que sí lo están, puede considerarse una conducta irregular en la evaluación. En caso de duda, se recomienda que, antes entregar la actividad, se haga llegar una consulta al profesorado colaborador del aula.

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