Esse projeto tem como finalidade demonstrar conhecimentos adquiridos e replicar a arquitetura/pipeline de Streaming e Batch de dados adquiridos no curso:
https://www.udemy.com/course/real-time ministrado pelo Prof. Fernado Amaral https://www.udemy.com/user/fernando-amaral-3
Consumo de API que disponibiliza dados climáticos e emite alertas por email e SMS via AWS SNS
Duas aplicações python, uma para ingestão de dados no Broker (Kinesis Streaming) e outra para avaliação dos mesmos a fim de disparar eventos de acordo com parametros do clima estabelecidos previamente em variávis de ambiente de uma lambda function.
Ao final, EventBridge é utilizado para schedular a entrega em periodos especificos
Disponibilza dados para posterior análise de eventos climáticos, consumidos
pelo broker e processados por uma aplicação python que particiona os dados brutos semi-estruturados e os armazena em um S3
Um crawler é usado para capturar o schema e gerar um data catalog e um processo de ETL é realizado para transformação dos mesmos em formato parquet.
Ao final, um novo data catalog é disponibilizado e otimizado para consultas por meio do Athena ou qualquer outra ferramenta de BI
Etapas | Serviço |
---|---|
1 | API: https://app.tomorrow.io/home |
2 | IAM Roles |
3 | Kinesis Data Stream (Broker) |
4 | Producer - Lambda + Python |
5 | Consumer - Lambda + Python |
6 | SNS |
7 | EventBridge |
- Produtores : aplicação Python envolta em um Lambda requisita dados em tempo real para a API
- Broker : ingestão dos dados por meio do Kinesis Data Stream
- Consumidores: aplicação Python envolta em um Lambda consulta registros do Broker e dispara eventos para tópicos do SNS segundo parametros do clima estipulados previamente
- Scheduler: EventBridge estipula dia e hora para entrega de mensagens pontuais
- Alerta: SNS tópicos de EMAIL e SMS
Etapas | Serviço |
---|---|
1 | S3 bucket |
2 | IAM Roles |
3 | Consumer: Lambda + Python |
4 | Kinesis Data Stream (Broker) |
5 | Glue Crawler |
6 | Glue Job ETL |
7 | Parquet |
8 | Data Catalog |
9 | Athena |
-
Produtores : Workflow Parte I
-
Consumidores: aplicação Python + Lambda function consulta dados disponiveis no Broker e persiste os mesmos em formato padrão particionados por ano/dia/hora em S3 pasta raw
-
Raw Crawler: reconhece schema e disponibiliza Data Catalog para raw data
-
ETL: realiza transformação dos dados "brutos" em formato parquet na pasta gold
-
Gold Crawler : gera um novo schema a partir dos arquivos parquet e disponibiliza Data Catalog otimizado para consultas
-
Analytics: Athena para consultas ad-hoc