Primeiros Passos
Instalação
Pré-requisitos
- Python 3.11+
- Apache Airflow 2.9.3
- Conexões com sistemas de origem e destino
Instalação do Pacote
pip install fracttal-etl-hub
Configuração Inicial
-
Configurar Apache Airflow
export AIRFLOW_HOME=/path/to/airflow airflow db init -
Configurar Variáveis de Ambiente
export FRACTTAL_API_KEY=your_api_key export DATABASE_URL=postgresql://user:pass@localhost/db
Configuração Básica
Estrutura de um ETL
Todo ETL no Fracttal segue esta estrutura JSON-RPC 2.0:
{
"id": "unique-request-id",
"jsonrpc": "2.0",
"method": "etl.etl_update",
"params": {
"id": "unique-config-id",
"config": {
"source": { /* configuração de origem */ },
"transform": { /* lógica de transformação */ },
"target": { /* configuração de destino */ },
"settings": { /* configurações adicionais */ }
},
"environment": "production"
}
}
Conexão Básica
"source": {
"connection": {
"id_type": 1,
"name": "Database"
},
"operation": "list_table",
"parameters": {
"table": "users"
}
}
Primeiro ETL
Vamos criar um ETL simples que extrai dados de um banco de dados e os carrega no Google Sheets.
1. Preparar a Configuração
{
"id": "etl-example-001",
"jsonrpc": "2.0",
"method": "etl.etl_update",
"params": {
"id": "config-example-001",
"config": {
"source": {
"connection": {
"id_type": 1,
"name": "PostgreSQL",
"parameters": {
"host": "localhost",
"port": 5432,
"database": "myapp",
"username": "etl_user",
"password": "secure_password"
}
},
"operation": "list_table",
"parameters": {
"table": "customers"
}
},
"transform": {
"rename": [
[{"var": "first_name"}, "nome", "string"],
[{"var": "last_name"}, "sobrenome", "string"],
[{"var": "email"}, "email", "string"]
]
},
"target": {
"connection": {
"id_type": 3,
"name": "Google Sheets",
"parameters": {
"credentials_file": "/path/to/service-account.json",
"spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
}
},
"operation": "append",
"parameters": {
"sheet_name": "Customers"
}
}
},
"environment": "develop"
}
}
2. Executar o ETL
from fracttal_etl import ETLHub
hub = ETLHub()
result = hub.execute_etl(etl_config)
print(f"ETL executado: {result}")
3. Verificar Resultados
Os dados terão sido carregados na planilha "Customers" do Google Sheet especificado.
Próximos Passos
- Explore todas as conexões disponíveis
- Aprenda sobre transformações avançadas
- Consulte a referência da API