Dashboard de Mercado Cripto

Power BI Python ETL MySQL Data Analysis

Ver código no GitHub

Visão Geral

Este projeto consiste em um dashboard interativo para monitoramento do mercado de criptomoedas. O objetivo principal é fornecer uma visão clara e atualizada de indicadores-chave, como preço, variação de 24h e histórico de desempenho de ativos como Bitcoin, Ethereum e Solana.

Arquitetura da Solução

A solução foi desenvolvida com uma arquitetura robusta dividida em três camadas:

CoinGecko API
➔
Python (ETL)
➔
MySQL DB
➔
Power BI

Implementação Técnica

Abaixo, um trecho do script de extração de dados que desenvolvi em Python, mostrando a conexão com a API e tratamento de erros.


import requests
import mysql.connector

# Configurações da API e Banco
MOEDAS_IDS = ['bitcoin', 'ethereum', 'solana', 'binancecoin']
URL_API = "https://api.coingecko.com/api/v3/simple/price"

def buscar_dados_atuais():
    """Busca os dados atuais na API da CoinGecko com tratamento de erro."""
    params = {
        'ids': ",".join(MOEDAS_IDS),
        'vs_currencies': 'usd',
        'include_market_cap': 'true',
        'include_24hr_vol': 'true'
    }
    try:
        response = requests.get(URL_API, params=params)
        response.raise_for_status()
        return response.json()
    except requests.exceptions.RequestException as e:
        print(f"Erro na API: {e}")
        return None
            

Para a persistência, utilizei uma modelagem SQL relacional para garantir integridade:


-- Tabela para histórico de preços (Snippet)
CREATE TABLE IF NOT EXISTS cotacoes_historico (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome_ativo VARCHAR(50),
    data DATE,
    preco_usd DECIMAL(20, 8),
    UNIQUE(nome_ativo, data) -- Evita duplicidade de registros
);