Caso 3: Aumentando a Memória de um Job
Como resolver problemas de memória em jobs que falham por falta de recursos
Caso 3: Aumentando a Memória de um Job
Este guia demonstra como identificar e resolver problemas de memória em jobs que estão falhando com OutOfMemoryError.
Autenticação
import requests
import json
import os
from pprint import pprint
BASE_URL = "https://maestro.dadosfera.ai"
response = requests.post(
f"{BASE_URL}/auth/sign-in",
data=json.dumps({
"username": os.environ['DADOSFERA_USERNAME'],
"password": os.environ["DADOSFERA_PASSWORD"]
}),
headers={"Content-Type": "application/json"},
)
headers = {
"Authorization": response.json()['tokens']['accessToken'],
"Content-Type": "application/json"
}PIPELINE_ID = "7b8b3399-b8c0-4fc5-9116-142cd9f4e7ae"
JOB_ID = "7b8b3399-b8c0-4fc5-9116-142cd9f4e7ae-0"Configurações padrão
- Todo job criado na Dadosfera inicia com 4 GB de memória
- O limite máximo via API é 12 GB
Passo 1: Aumentar Memória (PUT)
O endpoint PUT /platform/jobs/{jobId}/memory permite ajustar a memória de um job individual.
NEW_MEMORY = 8192 # 8 GB
payload = {
"amount": NEW_MEMORY
}
response = requests.put(
f"{BASE_URL}/platform/jobs/{JOB_ID}/memory",
headers=headers,
json=payload
)
pprint(response.status_code)200
Passo 2: Re-executar Pipeline
payload = {"pipeline_id": PIPELINE_ID}
response = requests.post(
f"{BASE_URL}/platform/pipeline/execute",
headers=headers,
json=payload
)
pprint(response.json())Passo 3: Aumentar memória de TODOS os jobs da pipeline
O endpoint PUT /platform/pipeline/{pipelineId}/memory aplica a mesma configuração de memória a todos os jobs da pipeline.
payload = {"amount": 4096}
response = requests.put(
f"{BASE_URL}/platform/pipeline/{PIPELINE_ID}/memory",
headers=headers,
json=payload
)
pprint(response.json())Referência: Valores de Memória Recomendados
| Cenário | Memória |
|---|---|
| < 100K registros | 1024 MB |
| 100K - 1M registros | 2048 MB |
| 1M - 10M registros | 4096 MB |
| > 10M registros | 8192 MB |
| Muitas colunas (> 50) | +2048 MB |
| Colunas JSON grandes | +2048 MB |
| Limite máximo | 12000 MB |
Updated about 16 hours ago
