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.
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.
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.
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.