Metabase
Integrating Apache Pinot with Metabase

This guide provides step-by-step instructions for setting up Metabase with an Apache Pinot connector. The integration allows you to visualize and explore data stored in Apache Pinot directly within Metabase dashboards.
Note: This is a preview version. For issues or bug reports, please join slack or file github issue.
The code is available at https://github.com/startreedata/metabase-pinot-driver under Apache 2 license.
Prerequisites
Ensure the following tools are installed on your system:
Git
Docker
Node.js (version 22+)
Java (version 17+)
Clojure 1.12.1.1550
NodeJS 22
NPM 10
Yarn 1.22
Apache Pinot 1.3.0
Metabase v0.55.7
QuickStart
Local Run
Start Pinot
To be simple, use Pinot docker image to run with quickstart
docker run -d --name pinot-quickstart -p 9000:9000 -p 8000:8000 -p 8080:8080 apachepinot/pinot:latest QuickStart -type MULTI_STAGE
Download Metabase
Go to Metabase release page, find the release jar.
This quickstart uses Metabase v0.55.7 .
JAR download: https://downloads.metabase.com/v0.55.7.x/metabase.jar
mkdir -p /tmp/metabase
cd /tmp/metabase
wget https://downloads.metabase.com/v0.55.7.x/metabase.jar
Download Pinot driver
Pinot plugins are released at https://github.com/startreedata/metabase-pinot-driver/releases
This QuickStart uses Pinot Driver v1.1.0
mkdir -p /tmp/metabase/plugins
cd /tmp/metabase/plugins
wget -O pinot.metabase-driver.jar https://github.com/startreedata/metabase-pinot-driver/releases/download/v1.1.0/pinot.metabase-driver-v1.1.0.jar
Start Metabase with Pinot plugin
cd /tmp/metabase
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar
Now everything should come up, you could also find the pinot plugin is loaed from the log:

Once Metabase is up, go to http://localhost:3000 to explore it.
After the login, you can click the right side bar to Add Pinot database:


After the configuration is done, Metabase will generate some explorations automatically.\




Docker Compose
Copy below Dockerfile
and docker-compose.yml
to a directory, e.g. /tmp/metabase
.
Dockerfile:
FROM metabase/metabase:v0.55.7
RUN mkdir -p /plugins && \
curl -L -o /plugins/pinot.metabase-driver.jar \
https://github.com/startreedata/metabase-pinot-driver/releases/download/v1.1.0/pinot.metabase-driver-v1.1.0.jar
ENV MB_PLUGINS_DIR=/plugins
docker-compose.yml:
services:
metabase:
build: .
container_name: metabase-pinot
ports:
- "3000:3000"
environment:
- MB_PLUGINS_DIR=/plugins
volumes:
- metabase_data:/metabase-data
restart: unless-stopped
volumes:
metabase_data:
Run docker compose up
to start everything:

Advanced Options
Authentication header
Users can enable it by expanding the advanced options, then enable Authentication header
The supported Auth Token Type
is Basic
or Bearer
.
Auth Token Value
is a string from your admin.

Last updated
Was this helpful?