MotherDuck¶
MotherDuck is a cloud-based data warehouse that combines the power of DuckDB with the scalability of the cloud. This guide will help you integrate MotherDuck with marimo.
1. Connecting to MotherDuck¶
To use MotherDuck as a data source, you’ll need to install the marimo[sql]
Python package.
pip install "marimo[sql]"
uv pip install "marimo[sql]"
conda install -c conda-forge marimo duckdb polars
To connect to MotherDuck, import duckdb
and ATTACH
your MotherDuck database.
import duckdb
# Connect to MotherDuck
duckdb.sql("ATTACH IF NOT EXISTS 'md:my_db'")
You will be prompted to authenticate with MotherDuck when you run the above cell. This will open a browser window where you can log in and authorize marimo to access your MotherDuck database. In order to avoid being prompted each time you open a notebook, you can set the motherduck_token
environment variable:
export motherduck_token="your_motherduck_token_here"
marimo edit
You can obtain this token from your MotherDuck account settings.
Once you’ve authenticated, your MotherDuck tables get automatically discovered and you can browse them from the Datasources Panel.
2. Querying Your Tables¶
Once connected, you can query your MotherDuck tables using SQL. Here’s an example of how to query a table and display the results using marimo:
marimo’s reactive execution model extends into SQL queries, so changes to your SQL will automatically trigger downstream computations for dependent cells.
3. Mixing SQL and Python¶
MotherDuck allows you to seamlessly mix SQL queries with Python code, enabling powerful data manipulation and analysis. Here’s an example:
This example demonstrates how you can use SQL to query your data, then use Python and marimo to further analyze and visualize the results.
Example¶
For a full example of using MotherDuck with marimo, check out our MotherDuck example notebook.
marimo edit https://github.com/marimo-team/marimo/blob/main/examples/sql/connect_to_motherduck.py