teoria / nyc_taxi_spark_streaming

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Taxi NYC - Data Project

O objetivo do exercício não é avaliar a melhor performance, mas entender como você estrutura, organiza e apresenta a solução de um problema. Neste case, você precisa implementar uma solução que:

  • Tenha como base o dataset: https://www.kaggle.com/competitions/new-york-city-taxi-fare-prediction/data (arquivo train.csv)

  • Tenha uma aplicação streaming que produza eventos baseados no dataset citado acima (podendo usar por exemplo: flask-sse)

  • Tenha uma aplicação que consuma os eventos com a possibilidade de filtros por data e local da corrida

  • Armazene os resultados em formato Parquet

  • Estruture um datalake para que seja possível consolidar dados analíticos por data/horário da corrida (ou local) e posteriormente consultar informações coletadas de forma batch

Como sugestão, você poderia usar:

  • Kafka, RabbitMQ, Server Side Events para criar o canal de streaming que irá fomentar a aplicação.

  • Spark com Scala - Para extração, escrita e consolidação

  • Airflow – Orquestração do processamento

  • Docker / Compose – Para deploy da aplicação

Tópicos que consideramos relevantes:

  • Testes unitários

  • Desenho de solução

  • Estrutura de código / Boas práticas de Software Engineering e Data Engineering

  • Aplicação up and running

Neste projeto foi utilizado as seguintes tecnologias open source:

geojson da cidade de Nova york - https://data.cityofnewyork.us/Transportation/NYC-Taxi-Zones/d3c5-ddgc

Arquitetura

ingestão Streaming

Arquitetura

Transformação em batch

Arquitetura

About


Languages

Language:Python 97.4%Language:Dockerfile 2.6%