marcelcaraciolo / cesar-dados-cloud

Projeto da Disciplina de Cloud Computing da Pós-Graduação de Ciência de Dados 2023.1 - Cesar School

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Projeto Computação em Nuvem - 2023.1

Aluno: Marcel Pinheiro Caraciolo (mpc3@cesar.school)

Projeto

Este projeto consiste no uso das tecnologias S3, Athena e Glue provisionadas por meio da tecnologia CDK Toolkit em Python na AWS.

Arquitetura

  • Ao provisionar o ambiente em CDK já realizamos o upload dos 2 arquivos de base de dados da empresa fictícia 5GFlix na zona landing em um bucket no S3.
  • Temos um Job Glue provisionado para realizar as tarefas de pré-processamento dos dados (limpeza, extração de colunas, e armazenamento em formato parquet).
  • Os dados processados são armazenados em parquet na zona transformada em um bucket no S3.
  • Temos um job Crawler Glue que realiza o mapeamento e inferência das base de dados e armazena os dados em um database para consultas futuras em Athena.
  • Temos um workspace no Athena com consultas em SQL mapeadas para respostas de análise das perguntas solicitadas pela gestão do 5GFlix (objetivo do exercício).

Projeto Infra-Cloud drawio

Evidências

  • Ao provisionar o ambiente em CDK já realizamos o upload dos 2 arquivos de base de dados da empresa fictícia 5GFlix na zona landing em um bucket no S3. image

  • Temos um Job Glue provisionado para realizar as tarefas de pré-processamento dos dados (limpeza, extração de colunas, e armazenamento em formato parquet). image

Codigo Fonte

  • Os dados processados são armazenados em parquet na zona transformada em um bucket no S3. image

  • Temos um job Crawler Glue que realiza o mapeamento e inferência das base de dados e armazena os dados em um database para consultas futuras em Athena.

Captura de Tela 2024-03-25 às 15 21 05
  • Temos um workspace no Athena com consultas em SQL mapeadas para respostas de análise das perguntas solicitadas pela gestão do 5GFlix (objetivo do exercício).
Captura de Tela 2024-03-25 às 15 22 16

Evidências Consultas

Quantos filmes estão disponíveis no dataset?

Captura de Tela 2024-03-25 às 15 27 19 4499 filmes

Qual é o nome dos 5 filmes com melhor média de avaliação?

Captura de Tela 2024-03-25 às 15 28 47

1 Lost: Season 1, 2004 4.6709891019450955 2 Ghost in the Shell: Stand Alone Complex: 2nd Gig, 2005 4.586363636363636 3 The Simpsons: Season 6, 1994 4.581295988606693 4 Inu-Yasha, 2000 4.554434413170473 5 Lord of the Rings: The Return of the King: Extended Edition: Bonus Material, 2003 4.552

Quais os 9 anos com menos lançamentos de filmes?

image

year total_launches 1 1922 1 2 1926 1 3 1917 1 4 1915 1 5 1924 2 6 1918 2 7 1916 2 8 1929 2 9 1931 2

Quantos filmes que possuem avaliação maior ou igual a 4.7, considerando apenas os filmes avaliados na última data de avaliação do dataset?

Captura de Tela 2024-03-25 às 15 32 55

780 filmes

Quais os id's dos 5 customers que mais avaliaram filmes e quantas avaliações cada um fez?

Captura de Tela 2024-03-25 às 15 34 37

cust_id total_eval 1 305344 4467 2 387418 4422 3 2439493 4195 4 1664010 4019 5 2118461 3769

Como executar

The cdk.json file tells the CDK Toolkit how to execute your app.

This project is set up like a standard Python project. The initialization process also creates a virtualenv within this project, stored under the .venv directory. To create the virtualenv it assumes that there is a python3 (or python for Windows) executable in your path with access to the venv package. If for any reason the automatic creation of the virtualenv fails, you can create the virtualenv manually.

To manually create a virtualenv on MacOS and Linux:

$ python3 -m venv .venv

After the init process completes and the virtualenv is created, you can use the following step to activate your virtualenv.

$ source .venv/bin/activate

If you are a Windows platform, you would activate the virtualenv like this:

% .venv\Scripts\activate.bat

Once the virtualenv is activated, you can install the required dependencies.

$ pip install -r requirements.txt

At this point you can now synthesize the CloudFormation template for this code.

$ cdk synth

To add additional dependencies, for example other CDK libraries, just add them to your setup.py file and rerun the pip install -r requirements.txt command.

Useful commands

  • cdk ls list all stacks in the app
  • cdk synth emits the synthesized CloudFormation template
  • cdk deploy deploy this stack to your default AWS account/region
  • cdk diff compare deployed stack with current state
  • cdk docs open CDK documentation

Enjoy!

About

Projeto da Disciplina de Cloud Computing da Pós-Graduação de Ciência de Dados 2023.1 - Cesar School


Languages

Language:Python 96.6%Language:Batchfile 3.4%