This repo is a forked from https://github.com/ClickHouse/metabase-clickhouse-driver with necessary revisions to better fit streaming processing and Proton.
- Once you've started up Metabase, open http://localhost:3000 , go to "Admin settings" (top-right), then "Databases" tab and add a database and select "Timieplus Proton".
- You'll need to provide the Host/Port. Default localhost and 3218 just work.
Please note, by default Proton's query behavior is streaming SQL, looking for new data in the future and never ends. This can be considered as hang for Metabase. So please use select .. from .. LIMIT 100
to stop the query at 100 events. Or use a historical query, such as select .. from table(car_live_data)..
The build process is largely based on https://github.com/databendcloud/metabase-databend-driver. (IMHO, Leiningen provides much better compiling error message than the built-in clojure -X:build:drivers:build/driver
)
-
Clone and build metabase dependency jar.
git clone https://github.com/metabase/metabase cd metabase clojure -X:deps prep cd modules/drivers clojure -X:deps prep cd ../.. ./bin/build.sh
-
Clone metabase-proton-driver repo
cd modules/drivers git clone https://github.com/timeplus-io/metabase-proton-driver
-
Prepare metabase dependencies
cp ../../target/uberjar/metabase.jar metabase-proton-driver/ cd metabase-proton-driver mkdir repo lein pom mvn deploy:deploy-file -Durl=file:repo -DgroupId=metabase-core -DartifactId=metabase-core -Dversion=1.40 -Dpackaging=jar -Dfile=metabase.jar
-
Build the jar
LEIN_SNAPSHOTS_IN_RELEASE=true DEBUG=1 lein uberjar
-
Let's assume we download
metabase.jar
from the Metabase jar to~/metabase/
and we built the project above. Copy the built jar(proton.metabase-driver.jar) to the Metabase plugins directly and run Metabase from there!cd ~/metabase/ java -jar metabase.jar
You should see a message on startup similar to:
2023-11-18 09:55:37,102 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :proton...
2023-11-18 09:55:37,102 INFO driver.impl :: Registered driver :proton (parents: [:sql-jdbc]) 🚚