Flight sizes
A Flight runs your Python on an instance size that sets the CPU and memory available to each run. The size name is F, for Flight, plus the instance's memory in GB: F16 has 16 GB of memory. Every run gets its own isolated runtime, so a Flight's size only affects that Flight. SQL the Flight sends over an md: connection runs on a Duckling, not on the Flight's instance, so size a Flight for the work it does in Python.
Each Flight size has different billing implications. Choose the smallest size that fits the job.
Flight sizes
| Flight size | Plans | vCPU | Memory | Use case |
|---|---|---|---|---|
| F4 | Lite, Business | 0.5 | 4 GB | Good for light automation and frequent schedules |
| F16 | Lite (unlimited), Business | 2 | 16 GB | Good for most workloads |
| F32 | Business | 4 | 32 GB | Best for heavy workloads that need memory |
Default size by plan
If you don't choose a size, a Flight runs on the default size for your plan. On Lite, adding a credit card moves you from Lite (with limits) to Lite (unlimited).
| Plan | Available sizes | Default size |
|---|---|---|
| Lite (with limits) | F4 | F4 |
| Lite (unlimited) | F4, F16 | F16 |
| Business and Enterprise | F4, F16, F32 | F16 |
For other per-plan Flight limits, such as scheduling, concurrent runs, and maximum runtime, see Availability and plan limits.
F4
Optimized for light automation and frequent schedules
F4 Flights keep the cost of small, frequent jobs low, making them ideal for:
- Light automation, such as posting a daily summary to Slack or syncing a small aggregate to a SaaS tool.
- Flights that run on frequent schedules.
- Simple API calls that fetch a small payload and write it to MotherDuck.
- SQL transforms, where the heavy lifting happens in MotherDuck and the Flight only orchestrates.
Learn how F4 Flights are billed.
F16
The default size, balanced for most workloads
F16 Flights have room for the Python processing most pipelines do, suited for:
- dbt pipelines built with the
dbt-duckdbadapter. - Multi-step data processing that chains several transforms or sources in one run.
- Standard ingest jobs, such as
dltpipelines from Postgres, APIs, or object storage.
Learn how F16 Flights are billed.
F32
Our largest Flight, built for heavy workloads that need memory
F32 Flights provide the most CPU and memory for work that runs inside the Flight, perfect for:
- ML inference, such as scoring records or generating embeddings with a Python model.
- Large dbt projects with many models.
Learn how F32 Flights are billed.
Changing Flight sizes
Set a Flight's size with the instance_type parameter of MD_CREATE_FLIGHT or MD_UPDATE_FLIGHT. If you omit it when you create a Flight, the Flight uses your plan's default size. If you omit it when you update a Flight, the current size carries forward.
CALL MD_UPDATE_FLIGHT(
flight_id := '<flight_id>',
instance_type := 'F32'
);
A size change creates a new Flight version and applies to the next run. Choosing a size your plan doesn't include returns an error that lists the sizes available to you.
Pricing
Flights are billed for the time each run takes, at the hourly rate for the Flight's size.
Flight pricing depends on the pricing tier of your Organization's cloud region.
| Tier | AWS Regions | F4 | F16 | F32 |
|---|---|---|---|---|
| Tier 1 | US East (N. Virginia) us-east-1, US West (Oregon) us-west-2 | $0.15 per hour | $0.60 per hour | $1.20 per hour |
| Tier 2 | Europe (Frankfurt) eu-central-1, Europe (Dublin) eu-west-1 | $0.18 per hour | $0.73 per hour | $1.46 per hour |
| Tier 3 | Asia Pacific (Tokyo) ap-northeast-1, Asia Pacific (Sydney) ap-southeast-2 | $0.19 per hour | $0.77 per hour | $1.55 per hour |
On Lite (unlimited), Flight usage draws from the same monthly compute allocation as Ducklings. Usage beyond the allocation is billed at the rates above. Lite (with limits) includes 30 minutes of Flight compute per day at no charge.