Coder Social home page Coder Social logo

pi01-data-engineering's Introduction

PROYECTO INDIVIDUAL Nº1

Data Engineering

¡Bienvenidos al primer proyecto individual de la etapa de labs! En esta ocasión, deberán hacer un trabajo situándose en el rol de un Data Engineer.


Descripción del problema (Contexto y rol a desarrollar)

Contexto

Application Programming Interface es una interfaz que permite que dos aplicaciones se comuniquen entre sí, independientemente de la infraestructura subyacente. Son herramientas muy versátiles que permiten por ejemplo, crear pipelines facilitando mover y brindar acceso simple a los datos que se quieran disponibilizar a través de los diferentes endpoints, o puntos de salida de la API.

Hoy en día contamos con FastAPI, un web framework moderno y de alto rendimiento para construir APIs con Python.

Rol a desarrollar

Como parte del equipo de data de una empresa, el área de análisis de datos le solicita al área de Data Engineering (usted) ciertos requerimientos para el óptimo desarrollo de sus actividades. Usted deberá elaborar las transformaciones requeridas y disponibilizar los datos mediante la elaboración y ejecución de una API.

Propuesta de trabajo (requerimientos de aprobación)

Transformaciones: El analista de datos requiere estas, y solo estas, transformaciones para sus datos:

  • Generar campo id: Cada id se compondrá de la primera letra del nombre de la plataforma, seguido del show_id ya presente en los datasets (ejemplo para títulos de Amazon = as123)

  • Los valores nulos del campo rating deberán reemplazarse por el string “G” (corresponde al maturity rating: “general for all audiences”

  • De haber fechas, deberán tener el formato AAAA-mm-dd

  • Los campos de texto deberán estar en minúsculas, sin excepciones

  • El campo duration debe convertirse en dos campos: duration_int y duration_type. El primero será un integer y el segundo un string indicando la unidad de medición de duración: min (minutos) o season (temporadas)


Desarrollo API: Para disponibilizar los datos la empresa usa el framework FastAPI. El analista de datos requiere consultar:

  • Cantidad de veces que aparece una keyword en el título de peliculas/series, por plataforma

  • Cantidad de películas por plataforma con un puntaje mayor a XX en determinado año

  • La segunda película con mayor score para una plataforma determinada, según el orden alfabético de los títulos.

  • Película que más duró según año, plataforma y tipo de duración

  • Cantidad de series y películas por rating


Deployment: La empresa suele usar Deta (no necesita dockerizacion) para realizar el deploy de sus aplicaciones. Sin embargo, también puede usar Railway y Render (necesitan dockerizacion).


Video: El Tech Lead que le delegó esta tarea quiere darle un feedback sobre el trabajo realizado. Para esto, le pide que sintetice en un video de 5 minutos su trabajo resaltando cómo ayuda el mismo a los analistas de datos.

Spoiler: Para lograr esto DEBE mostrarle al TL las consultas requeridas en funcionamiento desde la API.


Criterios de evaluación

Código: Prolijidad de código, uso de clases y/o funciones, en caso de ser necesario, código comentado.

Repositorio: Nombres de archivo adecuados, uso de carpetas para ordenar los archivos, README.md presentando el proyecto y el trabajo realizado

Cumplimiento de los requerimientos de aprobación indicados en el apartado Propuesta de trabajo

NOTA: Recuerde entregar el link de acceso al video. Puede alojarse en YouTube, Drive o cualquier plataforma de almacenamiento. Verificar que sea de acceso público.


Fuente de datos

  • Podrán encontrar los archivos con datos en la carpeta Datasets, en este mismo repositorio.*

Material de apoyo

Imagen Docker con Uvicorn/Guinicorn para aplicaciones web de alta performance:

FAST API Documentation:

"Prolijidad" del codigo:


Deadlines importantes

  • Apertura de formularios de entrega de proyectos: Miercoles 18, 15:00hs gmt -3

  • Cierre de formularios de entrega de proyectos: Viernes 20, 12:00hs gmt-3

  • Demo por parte del estudiante: Viernes 20, 16:00hs gmt-3

(Se escogera entre l@s estudiantes aquel que represente de forma global todos los criterios de evaluacion esperados, para que sirva de inspiracion a sus compañer@s)

Disclaimer

De parte del equipo de Henry se aclara y remarca que el fin de los proyectos propuestos es exclusivamente pedagógico, con el objetivo de realizar simular un entorno laboral, en el cual se trabajan diversas temáticas ajustadas a la realidad. No reflejan necesariamente la filosofía y valores de la organización. Además, Henry no alienta ni tampoco recomienda a los alumnos y/o cualquier persona leyendo los repositorios (y entregas de proyectos) que tomen acciones con base a los datos que pudieran o no haber recabado. Toda la información expuesta y resultados obtenidos en los proyectos nunca deben ser tomados en cuenta para la toma real de decisiones (especialmente en la temática de finanzas, salud, política, etc.).

pi01-data-engineering's People

Contributors

hx-fnegrete avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.