Segundo trabalho da disciplina D2TEC - Tecnologias de Big Data do curso de Especialização em Ciência de Dados do IFSP Campinas.
- Hugo Martinelli Watanuki
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 solução criada foi baseada em um paradigma de microserviços em nuvem. Para isso, foram utilizados os seguintes componentes principais:
- 1 Elastic File System (EFS): https://aws.amazon.com/efs/
- 1 Elastic Kubernetes Services (EKS): https://aws.amazon.com/eks/
- 1 High Performance Computing Cluster (HPCC Systems): https://hpccsystems.com/
O diagrama de arquitetura AWS implementada é apresentado abaixo:
A infrastrutura foi criada na região us-east-1 e envolveu os seguintes recursos:
- 1 usuário Identity and Access Management (IAM) com permissões para administrar clusters EKS (https://docs.aws.amazon.com/eks/latest/userguide/security-iam.html)
- 1 Virtual Private Cloud (VPC) padrão da AWS com subnets públicas em cada zona de disponibilidade (https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html)
- 4 nós t3.medium com 2 vCPUs e 4 GiB de memória (https://aws.amazon.com/ec2/instance-types/t3/)
- 5 volumes de 1 GB cada para armazenamento de dados no EFS
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
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
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
- 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:
- JOIN com a tabela de bairros de NY com o intuito de substituir os codigos de embarque e desembarque pelos nomes das regioes:
- Analise da porcentagem de viagens cobertas pelo dataset em relacao a todos os itinerarios possiveis na cidade de NY:
- Analise da concentracao de viagens por companhia com o intuito de orientar o motorista sobre eventual dominio de mercado:
- Analise dos trajetos mais frequentes ao longo do mes como um indicativo de regiao com alta demanda de servico de taxi:
- Distribuicao das viagens ao longo dos dias do mes como um indicativo dos dias com maior demanda de servico de taxi:
- Distribuicao das viagens ao longo das horas do dia como um indicativo das horas com maior demanda de servico de taxi:
- Analise dos trajetos com viagens com valor medio mais elevado:
- Analise dos valores das gorjetas por regiao de embarque:
- Analise da correlacao do valor da gorjeta com o valor da distancia e do custo da viagem
- 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:
Resultado de simulacao de uma corrida entre dois aeroportos de NY num domingo às 5 am:
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):
- Distribuicao temporal das viagens ao longo das horas do dia (pico nos horarios ao final do dia e vale na madrugada):
- Concentracao dos locais de embarque com valor médio de gorjeta por viagem mais elevado (aeroportos de JFK e LaGuardia):