Guide 11 · disposable compute

Data jobs & ETL without a job cluster

Nightly transforms, one-off backfills, agent-triggered data pulls: boot a sandbox sized for the job, run it, download the output, destroy it. No queue, no cluster, no idle workers.

1

Size the box to the job

sb = Sandbox.create(template="python-3.11",
                    vcpu=8, memory_mb=16384, storage_mb=51200,  # big for an hour
                    timeout=7200)
2

Run the transform

sb.upload("./etl", "/job")
sb.run("pip install -r /job/requirements.txt").check()
sb.run("python /job/transform.py --input s3://… --out /out", timeout=6000).check()
sb.download("/out", "./warehouse-drop")
sb.kill()
3

Trigger it however you like

Cron, a webhook, or an agent decision — it's one API call. For high-frequency small jobs, wrap the transform as a function instead.

an 8 vCPU · 16 GB hour ≈ $0.66 — only while it runs · cost calculator
Start free — $5 credits Browse all 15 guides →