A fast and lightweight streaming SQL engine, 🚀 powered by ClickHouse
📄 Documentation
🚀 Live Demo
🌎 Timeplus
Why Use Timeplus Proton · Demo Video · Deployment · What's Next · Integrations · Contributing · Need help?
Timeplus Proton is a streaming SQL engine, a fast and lightweight alternative to ksqlDB or Apache Flink, 🚀 powered by ClickHouse. It enables developers to solve streaming data processing, routing and analytics challenges from Apache Kafka, Redpanda and more sources, and send aggregated data to the downstream systems. Timeplus Proton is the core engine of Timeplus Enterprise, which is a cloud native streaming analytics platform.
- Apache Flink or ksqlDB alternative. Timeplus Proton provides powerful streaming SQL functionalities, such as streaming ETL, tumble/hop/session windows, watermarks, materialized views, CDC and data revision processing, etc.
- Fast. Timeplus Proton is written in C++, with optimized performance through SIMD. For example, on an Apple MacBookPro with M2 Max, Timeplus Proton can deliver 90 million EPS, 4 millisecond end-to-end latency, and high cardinality aggregation with 1 million unique keys.
- Lightweight. Timeplus Proton is a single binary (<500MB). No JVM or any other dependencies. You can also run it with Docker, or on an AWS t2.nano instance (1 vCPU and 0.5 GiB memory).
- Powered by the fast, resource efficient and mature ClickHouse. Timeplus Proton extends the historical data, storage, and computing functionality of ClickHouse with stream processing. Thousands of SQL functions are available in Timeplus Proton. Billions of rows are queried in milliseconds.
- Best streaming SQL engine for Kafka or Redpanda. Query the live data in Kafka or other compatible streaming data platforms, with external streams.
See our architecture doc for technical details and our FAQ for more information.
2-minute short video👇. Check out the full video at YouTube.
DataTalksProtonHandbrake.mp4
curl https://install.timeplus.com/oss | sh
docker run -d --pull always --name proton ghcr.io/timeplus-io/proton:latest
In case you cannot access ghcr, you can pull the image from public.ecr.aws/timeplus/proton
The Docker Compose stack demonstrates how to read/write data in Kafka/Redpanda with external streams.
One step to try Timeplus Proton in Timeplus Cloud
You can start the server via proton server
and start a new terminal window with proton client
to start the SQL shell.
From proton client
, run the following SQL to create a stream of random data:
-- Create a stream with random data
CREATE RANDOM STREAM devices(
device string default 'device'||to_string(rand()%4),
temperature float default rand()%1000/10)
-- Run the streaming SQL
SELECT device, count(*), min(temperature), max(temperature)
FROM devices GROUP BY device
You should see data like the following:
┌─device──┬─count()─┬─min(temperature)─┬─max(temperature)─┐
│ device0 │ 2256 │ 0 │ 99.6 │
│ device1 │ 2260 │ 0.1 │ 99.7 │
│ device3 │ 2259 │ 0.3 │ 99.9 │
│ device2 │ 2225 │ 0.2 │ 99.8 │
└─────────┴─────────┴──────────────────┴──────────────────┘
To see more examples of using Timeplus Proton, check out the examples folder.
To access more features, such as sources, sinks, dashboards, alerts, and data lineage, create a workspace on Timeplus Cloud or try Timeplus Enterprise locally.
What features are available with Timeplus Proton versus Timeplus Enterprise?
Timeplus Proton | Timeplus Enterprise | |
---|---|---|
Deployment |
|
|
Data sources |
|
|
Data destinations (sinks) |
|
|
Support |
|
|
The following drivers are available:
- https://github.com/timeplus-io/proton-java-driver JDBC and other Java clients
- https://github.com/timeplus-io/proton-go-driver
- https://github.com/timeplus-io/proton-python-driver
Integrations with other systems:
- ClickHouse https://docs.timeplus.com/proton-clickhouse-external-table
- Grafana https://github.com/timeplus-io/proton-grafana-source
- Metabase https://github.com/timeplus-io/metabase-proton-driver
- Pulse UI https://github.com/timeplus-io/pulseui/tree/proton
- Homebrew https://github.com/timeplus-io/homebrew-timeplus
- dbt https://github.com/timeplus-io/dbt-proton
We publish full documentation for Timeplus Proton at docs.timeplus.com alongside documentation for Timeplus Enterprise.
We also have a FAQ for detailing how we chose Apache License 2.0, how Timeplus Proton is related to ClickHouse, and more.
We welcome your contributions! If you are looking for issues to work on, try looking at the issue list.
Please see the wiki for more details, and BUILD.md to compile Timeplus Proton in different platforms.
Please use GitHub Discussions to share your feedbacks or questions for Timeplus Proton.
For filing bugs, suggesting improvements, or requesting new features, open GitHub Issues.
To connect with Timeplus engineers or inquire about Timeplus Enterprise, join our Timeplus Community Slack.
Proton uses Apache License 2.0. See details in the LICENSE.