Skip to main content

Superset & Preset

Apache Superset is a powerful, open-source data exploration and visualization platform designed to be intuitive and interactive. It allows data professionals to quickly integrate and analyze data from various sources, creating insightful dashboards and charts for better decision making.

Preset is a cloud-native, user-friendly platform built on Apache Superset. It offers enhanced capabilities and managed services to leverage the power of Superset without needing to handle installation and maintenance.

In this guide, we'll cover how you can use MotherDuck with either Superset or Preset.

Self-hosted Superset

Setup

The easy way to get started locally with Superset is to use their docker-compose configurations.

Adding a database connection to MotherDuck

To make it work with DuckDB & MotherDuck, you will have to install two extra Python packages in your local Superset environment:

  1. Clone the Superset repository:
git clone https://github.com/apache/superset.git
  1. Create a new file in superset/docker/requirements-local.txt and add the following packages:
duckdb-engine
duckdb
  1. Build or run the docker container, depending whether this is the first time you run it or not, with the following command:
# First time running it
docker-compose up --build

# Subsequent runs
docker-compose up
  1. Once the container is running, you can access the Superset UI at http://localhost:8088 or at the address you specified in the docker-compose.yml file.

  2. Once you are logged in, head over to "Settings" and click on "Database Connections", then click on "+ Database".

Superset Settings menu showing Database Connections option

Superset Add Database button

  1. In the Dropdown, pick "MotherDuck", then enter the database name that you want to connect to and the MotherDuck token of the user or service account.
note

If MotherDuck isn't listed, there's probably an error in the installation of the duckdb-engine. Review the installation steps under (2) to install this extra python package.

info

Database name is optional. Instead of specifying a database name, you can leave it empty to connect to all databases.

Superset dropdown showing MotherDuck option

Superset MotherDuck connection form with database name and token fields

  1. Finally, you can test your token/connection is valid by clicking "Test connection" and click "Connect".

Now your MotherDuck database is available in Superset and you can start querying data and making some dashboards!

Preset

Setup

You can register a Preset account for free (up to 5 users). Upon your account creation, you will need to create a workspace and be prompted to connect to your data source.

Adding your first database connection to MotherDuck

When you first setup Preset, you will be offered to create a connection to a database. Preset has a direct integration with MotherDuck, making the connection process simpler.

  1. In the Database Connection Dropdown in "Connect your first database", select "MotherDuck" and enter your MotherDuck credentials and database information.
note

The Database Name needs to be prefixed with md: to connect to MotherDuck. The Access Token is the token you created in the MotherDuck dashboard.

Preset database connection dropdown with MotherDuck option

Preset MotherDuck credentials form

  1. Click "Connect" to verify your connection is valid.

Now your MotherDuck database is available in Preset and you can start creating dashboards immediately!

info

You can connect to multiple databases using a single MotherDuck connection.

Adding additional database connections

When adding more database connections to Preset, you can choose the option of "Get MotherDuck token". This generates a new token from the MotherDuck account you are logged into.

  1. Add a database connection by going to "Settings", then "Database Connections". In the Database Connections page, click on "+ Database" in the top right corner.

Preset Settings showing Database Connections page

Preset Add Database button

  1. In the dropdown, select "MotherDuck" (see above).

  2. Enter your MotherDuck credentials and database information. Here you have the option to generate a new token using the Get MotherDuck token button or use a token you previously created.

Preset MotherDuck credentials form with Get MotherDuck token option

caution

Given that usually BI tools such as Preset and Superset are connected to service accounts, we do not recommend the "Get MotherDuck token" option for production systems but only for testing. For production systems the recommended approach is to generate an access token for the dedicated service account using the MotherDuck REST API and connect this account to Preset instead.