# 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 ```python 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" } ``` ```python 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. ```python 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 ```python 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. ```python 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 |