Skip to main content

Metabase

Metabase is an open source analytics/BI platform that can either be self-hosted or cloud-based.

Installing the DuckDB/MotherDuck Driver

For self-hosted Metabase

Download a recent version of the driver and copy it into the Metabase plugins directory. For example, if your metabase.jar is ~/app/metabase.jar, put the driver .jar under ~/app/plugins

If you're running Metabase as a Mac App, the plugins directory defaults to ~/Library/Application Support/Metabase/Plugins/.

Metabase Cloud support is coming soon.

Connecting

Once the DuckDB driver is available in Metabase, you can add a DuckDB or MotherDuck database as a Metabase admin. In the Metabase Admin console, Databases > Add Database opens up a form to set up a new database. Select DuckDB for the Database type.

note

Since DuckDB 0.10 stopped doing implicit casting by default, the old_implicit_casting config is currently necessary for datetime filtering in Metabase to function. It's recommended to keep it set.

Connecting to a Local DuckDB database

If you wish to connect to a local DuckDB database, enter the path to the DuckDB database file, or :memory: for a in-memory only database.

note

DuckDB's concurrency model supports either one process with read/write permissions, or multiple processes with read permissions, but not both at the same time. This means you will not be able to open a local DuckDB in read-only mode, then the same DuckDB in read-write mode in a different process.

Example

Connecting to MotherDuck

To connect to MotherDuck, set the Database File field to md:[database_name], and provide your MotherDuck token, which you can retrieve from the UI.

Example