Skip to main content
BRILLIQS

MotherDuck

A cloud service built on DuckDB where a query can run partly on your machine and partly in the cloud.

MotherDuck is a cloud analytics service built on DuckDB, the in process analytical database. It adds cloud storage and compute to DuckDB while keeping the local engine, so a query can execute across both. Data can sit locally, in the cloud, or in both, and a single query can reference all of it.

The gap between a laptop and a warehouse

Analytical tooling divides oddly by scale.

At the small end there are files and scripts. Someone has a few million rows in a file and analyses them on their machine. This works well and it does not share, it does not scale, and it does not connect to anything else.

At the large end there are cloud warehouses. These handle enormous volumes and many users, and they require data to be loaded into them before anything can be asked.

The gap between these is wide, and a great deal of real analytical work sits in it. Datasets of a few gigabytes. One or two people. Questions that begin with a file somebody already has.

Starting from DuckDB

DuckDB occupies the small end well. It is an analytical database that runs inside a process rather than as a server, storing data by column so analytical queries perform properly. There is nothing to install as a service and nothing to connect to.

Its limits are the obvious ones. It runs on one machine, so it is bounded by that machine, and there is no shared place for data to live.

MotherDuck adds cloud storage and compute around that engine, and the important detail is that it does not replace the local engine.

Queries across both

Because the engine exists in both places, a query can reference tables held locally and tables held in the service, executing across both.

The practical effect is worth stating plainly.

An analyst has a file on their machine, perhaps something exported from another system or produced during their own work. There is also a dataset held centrally that the team maintains.

Joining these conventionally means uploading the local file somewhere first. That is a step, it takes time, and it produces a copy in a place it does not belong.

Here the local file stays local and is joined to the cloud dataset in one query.

This suits how analysis actually proceeds. Work begins with what someone has, and reaches for shared data when it needs to.

Where the scale argument lands

It is worth being clear about what this does not attempt.

It is not built for the volumes and concurrency that cloud warehouses address. An organisation with terabytes queried by hundreds of people needs a warehouse, and this is not one.

What it addresses is the substantial amount of analysis below that threshold, which currently either happens in isolation on individual machines or is forced onto a warehouse that is more infrastructure than the task warrants.

The honest positioning is a different point on the scale rather than a competitor at the top of it.

Sharing without copying

Datasets held in the service can be shared.

The alternative in the small scale world is sending files. Someone produces an extract and emails it, or puts it on a shared drive. The recipient now has a copy that stops matching the original immediately, and when the analysis is repeated next month nobody is certain which version anyone used.

A shared dataset that colleagues query removes that. There is one dataset rather than a growing set of divergent copies.

Who uses it

MotherDuck is used by analysts, data scientists and small data teams working with datasets that do not require warehouse scale infrastructure, and by people who prefer analysis that begins with the files in front of them rather than with a loading exercise.

Points to consider

MotherDuck is a commercial cloud service and the official documentation is the reference for capabilities, limits and pricing.

Scale suitability should be established honestly. For very large volumes or high concurrency, a warehouse remains the appropriate tool, and choosing otherwise creates problems later.

Hybrid execution means data moves between local and cloud during a query. How much moves depends on the query, and network conditions affect the experience in a way that purely local or purely cloud execution does not.

DuckDB itself remains available and free to use directly. Where the requirement is genuinely local analysis with no sharing, the service adds capability that may not be needed.

Getting started

The official documentation covers connecting, storing data in the service, and hybrid queries. Attaching the service from a local DuckDB session and joining a local file to a cloud table demonstrates the central idea in a few minutes, which is the clearest way to judge whether it fits how you work.

Key features of MotherDuck

Capabilities described in the official documentation.

Queries spanning local and cloud

A single query can reference tables on your machine and tables held in the service.

Built on DuckDB

The engine is DuckDB, so its SQL and its behaviour carry over to the service.

No cluster to manage

Cloud compute is provided by the service rather than being provisioned and started.

Sharing of stored data

Datasets held in the service can be shared with others rather than sent as files.

Advantages of MotherDuck

Factual advantages that follow from the features above.

Local work does not have to move

Files on a laptop stay there while still being usable alongside cloud data in one query.

The same engine runs everywhere

Because the engine is DuckDB, behaviour is consistent between local and cloud execution.

Small analytics need no platform

Datasets that do not justify a warehouse remain workable without one being provisioned.

Sharing avoids sending files

Colleagues query a stored dataset rather than receiving copies that immediately diverge.

Common use cases for MotherDuck

Situations the official documentation describes this tool as being used for.

Professional services

Analysing local files alongside shared data

A working file on a laptop is joined to a dataset held in the service.

Research

Working with modest datasets

Analysis that does not warrant a warehouse is carried out without provisioning one.

Technology

Sharing a prepared dataset

A dataset is made available to colleagues rather than distributed as files.

Media

Prototyping analysis before scaling it

Work developed locally continues against cloud data without the queries being rewritten.

Official website

Everything on this page is based on the official documentation for MotherDuck. You can read the source here.

MotherDuck official documentation

Frequently asked questions about MotherDuck

Answers taken from the official documentation for this tool.

DuckDB is an analytical database that runs inside a process rather than as a server, storing data by column. It suits analytical queries on a single machine. This service builds cloud capability around that engine rather than replacing it, which is what allows queries to span both.

It addresses a different scale of problem. Warehouses are built for very large volumes and many concurrent users. This suits analysis on modest datasets and work that begins on one person's machine, where provisioning a warehouse would be more than the task requires.

A single query can reference tables held locally and tables held in the service, with execution taking place across both. This means local files do not have to be uploaded before they can be joined to shared data, which removes a step that is otherwise routine.

Because a great deal of analysis starts locally with files someone already has. Approaches requiring everything to be uploaded first add a step before any question can be asked. Keeping local execution means the work begins immediately and extends to cloud data when needed.