Skip to content

Latest commit

 

History

History
153 lines (93 loc) · 8.47 KB

README.md

File metadata and controls

153 lines (93 loc) · 8.47 KB

Trabalho_D2TEC

Segundo trabalho da disciplina D2TEC - Tecnologias de Big Data do curso de Especialização em Ciência de Dados do IFSP Campinas.

Aluno:

  • Hugo Martinelli Watanuki

ETL de dados usando infraestrutura AWS

O objetivo deste repositório é fornecer um conjunto de instruções, arquivos de configuração e códigos para a criação de uma infraestutrura de processamento e análise de Big Data usando recursos da AWS. A demonstração do passo a passo completo para a construção dessa infraestrutura está disponível aqui: https://youtu.be/vlRkAsbyuNI

a) Visão geral da solução

A solução criada foi baseada em um paradigma de microserviços em nuvem. Para isso, foram utilizados os seguintes componentes principais:

O diagrama de arquitetura AWS implementada é apresentado abaixo:

image

b) Infraestrutura utilizada

A infrastrutura foi criada na região us-east-1 e envolveu os seguintes recursos:

c) Metadados

A base de dados utilizada no trabalho foi a da Comissão de Taxi e Limousine da cidade de Nova York (https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page).

Essa base contém registros de viagens de passageiros de taxi da cidade de Nova York com os seguintes atributos:

  • Local, data e hora da partida e chegada de cada viagem
  • Distância, custo, tarifa e número de passageiros de cada viagem

Para as análises foram selecionados 2 datasets:

  • 1 dataset contendo as viagens realizadas no mês de Janeiro de 2017 (escolha aleatoria apenas para exemplificar a analise): 9.710.124 registros
  • 1 dataset contendo os códigos e descrições das áreas da cidade de Nova York: 265 registros

Os datasets utilizados estão disponíveis aqui: https://github.com/HWatanuki/Trabalho_D2TEC/tree/main/Datasets

O schema do dataset de viagens possui a seguinte estrutura:

STRING VendorID; // codigo indicando a companhia associada a viagem
STRING tpep_pickup_datetime; // data e hora do embarque
STRING tpep_dropoff_datetime; // data e hora do desembarque
STRING passenger_count; // numero de passageiros
STRING trip_distance; // distancia da viagem
STRING RatecodeID; // codigo final de cobranca da viagem
STRING store_and_fwd_flag; // codigo que indica se os dados da viagem foram gravados no veiculo por falta de conexao
STRING PULocationID; // codigo do local de embarque
STRING DOLocationID; // codigo do local de desembarque
STRING payment_type; // tipo do pagamento (dinheiro,cartao,etc)
STRING fare_amount; // valor da corrida no taximetro
STRING extra;  // tarifas extras nos horarios de pico
STRING mta_tax; // imposto extra em funcao da taxa do taximetro
STRING tip_amount; // valor da gorjeta
STRING tolls_amount; // valor dos pedagios
STRING improvement_surcharge; // taxa compensatoria para viagens curtas
STRING total_amount; // valor total recebido do passageiro

Visualizacao do dataset de viagens bruto

image

O schema do dataset de bairros de NY possui a seguinte estrutura:

STRING LocationID;  // Codigo identificador das zonas de taxi
STRING Borough; // Bairro da zona
STRING Zone; // Nome da zona
STRING service_zone; // Categoria de servico da zona

Visualizacao do dataset de bairros de NY bruto

image

d) Scripts de consulta dos dados

O tratamento e análise dos dados objetivou proporcionar a um motorista de taxi da cidade de NY insumos para uma estratégia de trabalho. Para isso, uma vez tratados os dados, os mesmos serviram para um entendimento sobre o padrao das viagens ao longo dos dias e horas do mes, bem como as regioes com as viagens e gorjetas mais elevadas. Por fim, uma funcao foi elaborada com base nos dados historicos medios para permitir ao motorista estimar o valor, duracao e distancia de uma viagem com base no local de embarque/desembarque, dia e hora de inicio da viagem.

Os códigos utilizados para tratament e consultas dos dados estão disponíveis aqui: https://github.com/HWatanuki/Trabalho_D2TEC/tree/main/Codigos

A demonstração das analises está disponível aqui: https://youtu.be/Kx29WY3P9MY

  1. Limpeza e padronização dos dados com o objetivo de tratar os campos de data e hora, bem como alterar os tipos dos campos da tabela:

image

  1. JOIN com a tabela de bairros de NY com o intuito de substituir os codigos de embarque e desembarque pelos nomes das regioes:

image

  1. Analise da porcentagem de viagens cobertas pelo dataset em relacao a todos os itinerarios possiveis na cidade de NY:

image (menos de 0.01%)

  1. Analise da concentracao de viagens por companhia com o intuito de orientar o motorista sobre eventual dominio de mercado:

image

  1. Analise dos trajetos mais frequentes ao longo do mes como um indicativo de regiao com alta demanda de servico de taxi:

image

  1. Distribuicao das viagens ao longo dos dias do mes como um indicativo dos dias com maior demanda de servico de taxi:

image

  1. Distribuicao das viagens ao longo das horas do dia como um indicativo das horas com maior demanda de servico de taxi:

image

  1. Analise dos trajetos com viagens com valor medio mais elevado:

image

  1. Analise dos valores das gorjetas por regiao de embarque:

image

  1. Analise da correlacao do valor da gorjeta com o valor da distancia e do custo da viagem

image

  1. Funcao para estimativa dos valores medios de cada viagem com base nos locais de embarque/desembarque, dia da semana e hora do dia do embarque:

image

Resultado de simulacao de uma corrida entre dois aeroportos de NY num domingo às 5 am:

image

e) Visualizações

Os resultados das consultas cujas visualizaçoes parecem ser mais relevantes estão listadas abaixo:

-Distribuicao temporal das viagens ao longo dos dias do mes (picos no meio da semana e vales nos finais de semana e feriados):

image

  • Distribuicao temporal das viagens ao longo das horas do dia (pico nos horarios ao final do dia e vale na madrugada):

image

  • Concentracao dos locais de embarque com valor médio de gorjeta por viagem mais elevado (aeroportos de JFK e LaGuardia):

image