- Criação de extratores (tap-postgres e tap-csv) e carregadores (target-jsonl) para a primeira etapa usando o Meltano.
- Configuração dos mesmos, transferindo dados entre si manualmente.
- Automação no processo de transferência de dados entre extratores e carregadores na primeira etapa, usando um script escrito em Python.
- Transformação dos arquivos JSONL gerados na extração para CSV usando Pandas.
- Criação de extratores (tap-csv) e carregadores (target-postgres) para a segunda etapa usando o Meltano.
- Criação de um banco de dados PostgreSQL vazio na porta 5433 no Docker para o carregamento de dados.
- Configuração dos mesmos, transferindo dados entre si manualmente.
- Automação no processo de transferência de dados entre extratores e carregadores na segunda etapa, usando um script escrito em Python.
- Separando ambientes de desenvolvimento para o Meltano e para o Apache Airflow, pois o Meltano necessita do SQLAlchemy de versões entre 2.0.30 e 3.0.0, e o Apache Airflow necessita do SQLAlchemy de versões 1.4.52 ou inferior, e assim evitando conflitos.
- Criando Bash Scripts para execução dos scripts Python do Meltano, que está em ambiente de desenvolvimento diferente.
- Criação da DAG separada em duas partes.
- Execução da DAG.
-
Entre na pasta do projeto pelo terminal.
-
Possuindo Docker e Docker Compose instalado em sua máquina, execute o comando
docker compose up -d
na pasta raíz do projeto para iniciar os bancos de dados PostgreSQL para extração e carregamento de dados. -
Entre no diretório destinado ao projeto meltano utilizando o comando
cd meltano
.- Dentro desse diretório, crie um ambiente virtual digitando o comando
python3 -m venv venv
. - Ative o ambiente virtual digitando o comando
source venv/bin/activate
. - Instale as dependências deste ambiente digitando o comando
pip install -r requirements.txt
. - Entre na pasta da primeira etapa com o comando
cd first_step
e instale as dependências desta etapa com o comandomeltano install
. - Faça o mesmo da etapa anterior na pasta da segunda etapa.
- Desative o ambiente virtual com o comando
deactivate
.
- Dentro desse diretório, crie um ambiente virtual digitando o comando
-
Volte a pasta raíz do projeto e entre na pasta destinada ao Apache Airflow com o comando
cd airflow
.- Dentro desse diretório, crie um ambiente virtual digitando o comando
python3 -m venv venv
. - Ative o ambiente virtual digitando o comando
source venv/bin/activate
. - Instale as dependências deste ambiente digitando o comando
pip install -r requirements.txt
. - Define o ambiente padrão do Apache Airflow executando o script existente na pasta digitando o comando
source set_airflow_home.sh
. - Inicie o servidor do Apache Airflow com o comando
airflow standalone
. (Após executar esse comando, não será mais possível utilizar este terminal sem que encerre o servidor do Apache Airflow).
- Dentro desse diretório, crie um ambiente virtual digitando o comando
-
No final da execução de inicialização do servidor do Apache Airflow, será fornecido ao usuário as credenciais de login para acessar o Airflow na porta 8080, como no exemplo abaixo, que o username é admin e a senha é 2HMSV2VwuxugkzDK.
-
Agora, vá até o navegador e digite a URL
http://localhost:8080/
. A página de login do Apache Airflow será mostrada e é possível conectar usando as credenciais recebidas no passo anterior. -
Uma lista de DAGs será mostrada, procure a DAG com nome indicium_dag e clique nela. (Pode demorar um pouco até que o servidor atualize e a DAG seja mostrada na lista).
- Para executar a DAG, clique no botão ao lado do título com nome da DAG.
- Após isso, você poderá ver sua DAG sendo executada passo por passo na aba de graph.
- Quando a DAG for totalmente executada com êxito, será possível ver um arquivo JSON na pasta
/messages
localizada no diretório raíz do projeto, contendo a mensagem de sucesso na execução, juntamente com a data e a hora do término da execução.
Quando finalizado, será possível consultar o banco de dados e ver que todas as tabelas foram carregadas. Para isso, siga o passos abaixo:
-
Com os containers dos bancos de dados funcionando, digite o seguinte comando no terminal:
docker exec -it indicium-test-db_loader-1 psql -U user -d dbloader
. Este comando lhe conectará ao banco de dados para fazer consultas. -
Faça consultas no banco de dados no seguinte formato: SELECT * FROM tap_csv.(Nome da tabela);. Exemplo:
SELECT * FROM tap_csv.suppliers;