🚀 Configuração do Ambiente - E-commerce Data Pipeline¶
📋 Pré-requisitos¶
Antes de iniciar, certifique-se de ter instalado em sua máquina:
- 🐍 Python 3.11.9
- 🐳 Docker Desktop (manter aberto durante o uso)
- 📁 Git
- 💻 VS Code ou IDE de preferência
- ☁️ Azure CLI (para autenticação)
- 🏗️ Terraform (para provisionamento da infraestrutura)
- 📊 Apache Spark (via Databricks ou local)
⚙️ Configuração do Ambiente¶
📂 Preparação do Workspace¶
-
Clone o repositório:
-
Crie um ambiente virtual Python:
🏗️ Configuração da Infraestrutura Azure¶
1. Autenticação no Azure¶
2. Provisionamento com Terraform¶
Navegue até a pasta de infraestrutura:
Configure as variáveis (opcional):
Execute o Terraform:
# Inicializar
terraform init
# Verificar o plano
terraform plan
# Aplicar a infraestrutura
terraform apply
3. Configuração do Azure Data Lake Storage¶
Após o deploy, você terá:
- ✅ Storage Account criada
- ✅ Containers: landing-zone
, bronze
, silver
, gold
- ✅ Políticas de retenção configuradas
📦 Instalação de Dependências Python¶
Instale as dependências necessárias:
# Dependências principais
pip install pyspark
pip install delta-spark
pip install azure-storage-blob
pip install pandas
pip install faker
# Dependências para desenvolvimento
pip install jupyter
pip install notebook
📊 Opções de Ingestão de Dados¶
🎲 Opção 1: Geração de Dados com Faker¶
Execute o script para gerar dados de teste:
Isso irá gerar arquivos CSV com dados realistas de e-commerce:
- clientes.csv
- produtos.csv
- pedidos.csv
- pagamentos.csv
- E outros...
🗄️ Opção 2: Upload de Banco SQLite Existente¶
Para fazer upload de um banco SQLite existente:
1. Configure o Script de Upload¶
Edite o arquivo scripts/upload_database_spark_cells.py
:
# Configurações do Azure Storage
storage_account = "seu-storage-account"
sas_token = "seu-sas-token"
# Caminho do SQLite no servidor
sqlite_path = "/caminho/para/servidor/db.sqlite"
# Lista de tabelas a processar
tables = [
"customers", "geolocation", "leads_closed", "leads_qualified",
"order_items", "order_payments", "order_reviews", "orders",
"product_category_name_translation", "products", "sellers"
]
2. Execute o Upload¶
# No Databricks
%run /path/to/scripts/upload_database_spark_cells.py
# Ou localmente
python scripts/upload_database_spark_cells.py
3. Notebook Interativo¶
Use o notebook scripts/upload-database.ipynb
para execução interativa.
☁️ Configuração do Azure Data Lake Storage¶
1. Upload dos Dados para Landing Zone¶
# Usando Azure CLI
az storage blob upload-batch \
--account-name <storage-account-name> \
--container-name landing-zone \
--source ./scripts \
--pattern "*.csv"
2. Configuração de Acesso¶
Configure as credenciais de acesso no Azure: - Gere um SAS Token ou configure Service Principal - Configure as variáveis de ambiente ou use Azure Key Vault
📊 Execução dos Pipelines¶
1. Camada Bronze (Ingestão)¶
Abra o notebook projeto_ed_satc/Atividade Pratica - Lakehouse - Bronze.ipynb
:
# Configure as variáveis de conexão
storageAccountName = "seu-storage-account"
sasToken = "seu-sas-token"
# Execute as células para:
# - Montar os containers
# - Ler dados CSV
# - Adicionar metadados
# - Salvar em Delta Lake
2. Camada Silver (Limpeza)¶
Execute o notebook projeto_ed_satc/Atividade Pratica - Lakehouse - Silver.ipynb
:
# Processos realizados:
# - Leitura dos dados Bronze
# - Padronização de colunas
# - Limpeza de dados
# - Salvamento na camada Silver
3. Camada Gold (Agregação)¶
Execute o notebook projeto_ed_satc/Atividade Pratica - Lakehouse - Gold.ipynb
:
# Processos realizados:
# - Agregações de negócio
# - Cálculo de métricas
# - Preparação para dashboards
📝 Observações Importantes¶
- 🐳 Mantenha o Docker Desktop aberto durante todo o processo
- ☁️ Certifique-se de ter créditos suficientes na conta Azure
- 📁 Os dados gerados são fictícios para fins educacionais
- 🔐 Mantenha as credenciais seguras e não as compartilhe
- 📊 O Databricks é recomendado para execução dos notebooks
- 🗄️ Para upload de SQLite, certifique-se de ter acesso ao arquivo do banco
🛠️ Resolução de Problemas¶
Problemas Comuns:¶
-
Erro de autenticação Azure:
-
Erro de permissões Terraform:
-
Erro de conexão com Storage:
- Verifique se o SAS Token está correto
- Confirme se o container existe
-
Verifique as permissões de acesso
-
Erro no Spark:
- Verifique se o Java está instalado
- Configure as variáveis de ambiente JAVA_HOME
-
Use Databricks para melhor compatibilidade
-
Erro de acesso ao SQLite:
- Verifique o caminho do arquivo
- Confirme as permissões de leitura
- Teste a conexão manualmente
📚 Recursos Adicionais¶
- 📖 Documentação Azure Data Lake Storage
- 📖 Documentação Delta Lake
- 📖 Documentação Apache Spark
- 📖 Documentação Terraform Azure
- 📖 Upload de Banco de Dados
🎯 Pronto para começar! Siga os passos acima e você terá um pipeline completo de dados funcionando!