Skip to content

Antonio-Borges-Rufino/ETL-de-dados-usando-GCP.-Airflow-DBT-e-Snowflake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 

Repository files navigation

Sobre o projeto

  1. Esse projeto tem como objetivo criar um pipeline de dados em regime de batch utilizando as principais ferramentas do mercado.
  2. Esses dados devem ser disponibilizados diretamente para ferramentas analíticas, e deve conter tolerância a erros.

Arquitetura de dados

Sobre o dataset

  1. Os dados aqui utilizados podem ser acessados por aqui.
  2. Os dados estão separados nas seguinte colunas:
    • Business Name -> Nome da empresa contra qual foi feita a reclamação -> Tipo: Texto
    • Industry -> Categoria da empresa -> Tipo: Texto
    • Complaint Type -> Tipo de reclamação -> Tipo: Texto
    • Mediation Start Date -> Inicio da mediação -> Tipo: Date & Time
    • Mediation Close Date -> Final da mediação -> Tipo: Date & Time
    • Complaint Result -> Resultado da mediação -> Tipo: Texto
    • Satisfaction -> Se a mediação foi satisfatória para as partes -> Tipo: Texto
    • Restitution -> Total de restituição dada através da mediação -> Tipo: Texto
    • Business Building -> Número do prédio do endereço da empresa -> Tipo: Texto
    • Business Street -> Nome da rua do endereço da empresa -> Tipo: Texto
    • Building Address Unit -> Numero da unidade do endereço (apartamento, suite etc) -> Tipo: Texto
    • Business City -> A cidade onde está localizada a empresa -> Tipo: Texto
    • Business State -> O estado onde está localizada a empresa -> Tipo: Texto
    • Business Zip -> O CEP de onde a empresa está localizada -> Tipo: Texto
    • Complainant Zip -> O CEP de onde o indivíduo está localizado -> Tipo: Texto
    • Longitude -> -> Tipo: Texto
    • Latitude -> -> Tipo: Texto

Enviando o arquivo CSV para o cloud storage

  1. Primeiro, crie o projeto que vai ser implementado o pipeline.
  2. Após isso, crie um novo bucket de armazenamento utilizando o cloud storage, para mais informações clique aqui.
  3. Agora é só enviar o arquivo para o bucket, para isso, clique no bucket recem criado e aperte para fazer upload da imagem.
  4. image
  5. Envie o arquivo e pronto.

Instalando os recursos no compute engine do GCP

  1. Clique aqui caso queira entender como habilitar e criar uma instancia VM no GCP.
  2. Com a instância VM criada, podemos nos conectar via SSH pelo navegador, e lá vamos fazer as instalações.
  3. Vamos primeiro dar um apt-get update para atualizar o repositório.
sudo apt-get update
  1. Agora vou instalar o airflow, o padrão idela é cosntruir toda aplicação fora do super usuário, mas para facilitar, vou escrever ela toda no super usuário mesmo.
  2. Existe algumas configurações interessantes para o airflow, como usar outros bancos de dados para a sua metastore, mas eu vou deixar com o banco de dados normal do airflow.
  3. Vamos criar uma pasta no diretório central chamada airflow.
mkdir airflow
  1. Agora vamos criar uma variavel global que aponte para essa pasta.
export AIRFLOW_HOME=~/airflow
  1. Crie um ambiente virtual na pasta airflow e entre nele.
  2. Agora instalamos a biblioteca
pip install "apache-airflow[celery]==2.8.0" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.8.0/constraints-3.8.txt"
  1. Podemos executar o airflow usando o comando:
airflow standalone
  1. Esse comando é apenas para ambientes de teste, não sendo considerado para produção.
  2. Caso não consiga acessar o nifi, libere todas as portas usando o google cloud shell
gcloud compute --project="xxxxx" firewall-rules create "xxxxx" --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=all --source-ranges=0.0.0.0/0
  1. Você pode criar um usuário e iniciar o serviço com airflow webserver -p XXX, mas no meu caso vou ficar apenas com essa execução mesmo.
  2. Acesse o seu webserver airflow pela porta 8080 e deve ter essa aparência: image
  3. A

About

ETL de dados usando GCP. Airflow, DBT e Snowflake

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published