Este projeto se consiste em scripts Python que buscam taxas de câmbio de criptomoedas da CoinGecko API e inserem os dados em um banco de dados PostgreSQL. O objetivo é construir um banco de dados histórico que será posteriormente analisado usando Pandas, Power BI e outras ferramentas de visualização (Atualmente METABASE foi escolhido por ser open-source).
- Busca taxas de câmbio de criptomoedas em tempo real na CoinGecko.
- Insere dados na tabela PostgreSQL
projeto. - Cria automaticamente a tabela caso não exista.
- Armazena dados com timestamp para análises históricas.
- Suporta múltiplas fontes futuras de dados.
- Usa
.envpara gerenciamento seguro de credenciais e API keys.
Captura para demonstrar a quantidade de ingestões feitas:
VSCode durante desenvolvimento:
Execução de um Join para demonstrar a modelagem de dados
Metabase Hosteado localmente utilizando Docker + VSCode:
Dashboard Metabase:
-
Python 3.9+
-
PostgreSQL 12+ (ou compatível)
-
Bibliotecas Python:
requestspandassqlalchemypsycopg2-binarypython-dotenv
Instale todas as dependências com:
pip install -r requirements.txt- Clone o repositório:
git clone <URL-do-seu-repositorio>
cd CoinGecko-PostgreSQL- Crie um arquivo
.envna raiz do projeto:
DB_USER=seu_usuario
DB_PASSWORD=sua_senha
DB_HOST=host_do_banco
DB_PORT=5432
DB_NAME=postgres
COINGECKO_KEY=sua_chave_apiExecute o script de ingestão:
python ingest.py- O script fará 10 requisições à API da CoinGecko, com intervalo de 10 segundos entre cada.
- Os dados serão inseridos na tabela
projeto. - Opcional: descomente
df.to_csv()para salvar os dados localmente em CSV.
Execute o script de modelagem de banco:
python database_model.py- Insere os dados do CSV na tabela
currency_metadata. - Define
unitcomo chave primária em currency_metadata. - Cria chave estrangeira
unitemprojetoreferenciandocurrency_metadata(unit).
- Expandir o banco de dados com mais fontes de dados de criptomoedas e financeiras. - EM PROGRESSO
- Realizar análise exploratória usando Pandas e gerar gráficos informativos.
- Integrar com Power BI ou Metabase (preferencial por ser open-source) para dashboards e observabilidade avançada dos dados.
- Possível automação futura com agendamento de pipelines para atualização contínua.




