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_STAGEDownload 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.jarDownload 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.jarStart Metabase with Pinot plugin
cd /tmp/metabase
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jarNow 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=/pluginsdocker-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?

