Metabase
Metabase is an open-source business intelligence platform. You can use Metabase to ask questions about your data, or embed Metabase in your app to let your customers explore their data on their own.
It can be installed locally and can be used to analyze local datasets, as well as datasets from a data-warehouse.
We are exploring Metabase as an Exploratory Data Analysis tool.
🛠️ Local Installation Guide: Metabase + DuckDB on Windows
This guide walks you through installing Metabase (open-source edition) on your Windows computer, setting it up to analyze data locally, and using DuckDB to read CSV files so Metabase can read.
1. Install Java (Required for Metabase)
Metabase runs on Java, so you must install it first.
-
Go to Adoptium.net (or any other OpenJDK provider).
-
Download the Temurin JDK for your OS (e.g., Windows x64 installer).
-
Run the installer and complete installation with default options.
-
Verify installation:
-
Open a Command Prompt (press Windows key → type
cmd
→ Enter). -
Type:
java -version
-
You should see a version number (e.g.
openjdk version "21.0.x"
).
-
2. Download Metabase
- Go to Metabase Downloads.
- Download the Metabase JAR file (
metabase.jar
). - Create a folder
metabase
in your Downloads directory (or any directory you prefer). - Move
metabase.jar
into thatmetabase
folder.
3. Add DuckDB Metabase Driver
- Visit the DuckDB Metabase Driver Releases.
- Download the latest
.jar
file (driver). - Inside the
metabase
folder, create a subfolder calledplugins
(all lowercase). - Move the DuckDB driver
.jar
file intometabase/plugins
.
Your folder structure should look like:
Downloads/
└── metabase/
├── metabase.jar
├── plugins/
│ └── duckdb.metabase-driver.jar
└── data/
(We'll create data/
in the next step.)
4. Prepare Your Data
-
Download your CSV data (e.g., from Kobo Toolbox).
-
Create a
data
folder inside themetabase
folder. -
Place your CSV file in
data/
. -
Rename it for consistency, e.g.:
mydata.csv
5. Install DuckDB CLI (optional)
If you want to manipulate the data before loading it in Metabase, or to convert it to other formats, you can use the DuckDB CLI.
- Go to DuckDB CLI Releases.
- Download the latest CLI for your OS (e.g.,
duckdb_cli-windows-amd64.zip
). - Extract the file and move the executable (
duckdb.exe
) into thedata
folder.
Your data
folder should now have:
data/
├── mydata.csv
└── duckdb.exe
6. Convert CSV to DuckDB Database (optional)
-
Open Command Prompt and navigate to the data folder:
cd %HOMEPATH%\Downloads\metabase\data
-
Create a DuckDB database and import the CSV:
duckdb mydata.db
Inside the DuckDB shell, run:
CREATE TABLE my_data AS
SELECT * FROM read_csv_auto('mydata.csv');Confirm it worked:
SELECT * FROM my_data LIMIT 10;
Then quit:
.quit
You now have a mydata.db
file in your data
folder.
7. Run Metabase
-
Open Command Prompt and navigate to your Metabase folder:
cd %HOMEPATH%\Downloads\metabase
-
Start Metabase:
java -jar metabase.jar
-
Wait until you see
Metabase Initialization COMPLETE
.
8. Open Metabase in Your Browser
-
Open a browser and go to:
http://localhost:3000
-
Complete initial setup (one time only):
- Select language.
- Create a local admin account (any email/password, just remember them).
- Skip analytics/usage tracking if you wish.
9. Connect the DuckDB Database
-
In Metabase, go to Admin Settings → Databases → Add Database.
-
Choose DuckDB from the list.
-
Fill in:
- Display Name:
Your database name of preferrence
- Database File Path: full path to
mydata.db
(e.g.C:\Users\YourName\Downloads\metabase\data\mydata.db
)
- Display Name:
-
Save — you should now see your database and table in Metabase.
10. Explore Your Data
- Go to Data → Browse Data → Your database name of preferrence.
- Click Explore or use X-Ray to let Metabase auto-generate insights.
- Optionally, create Models, Questions, or Dashboards.
- You can also use the DuckDB driver, and create Models that query CSV files directly, like "SELECT * from 'mydata.csv'" will actually use DuckDB to query the CSV straight away.
✅ You now have a full local analytics setup with Metabase + DuckDB! You can repeat steps 4–6 whenever you have new CSV data.