Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New database support: Timeplus Proton #139

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

jovezhong
Copy link

@jovezhong jovezhong commented Nov 3, 2023

Proton is an open-source, unified streaming and historical data processing engine in one single binary, powered by ClickHouse.

This PR adds Proton as a supported database in client and server codebase for Pulse.

UI
(a new card is added at the end of database shortcuts. Feel free to adjust this)
image

You can use a local proton server (via docker or single binary). Make sure 8123 port is opened and use default as the database. You can use the docker compose stack at https://github.com/timeplus-io/proton/tree/develop/examples/jdbc
image

Create charts or dashboard
the sample SQL can be select _tp_time, cid, speed_kmh from car_live_data limit 10
image

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 JDBC client. So we recommend to use port 8123, which forces all SQL in table mode.

Note to the code change

  • in client/src/dbsprites.css, need to use proton icon. Currently I am using the same icon as ClickHouse, since I don't know how to change the db.png combined image.

Development and Test

Here is the dev stack I used:

  • Java 17.0.9-oracle (sdk install/use java 17.0.9-oracle). I tried Tem JDK 21, it didn't work
  • nvm install/use 18.12.1. I tried v21, it didn't work
  • latest gradle 8.4

I tried to run gradle assembleServerAndClient. It didn't always work. Specially lacking of HTML files.
So I run yarn install and yarn run build in the client folder first to build the frontend first. Then run gradle assembleServerAndClient in top folder again to generate the server/lib/pulse.jar, the use java -jar pulse.jar to run it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant