GithubHelp home page GithubHelp logo

ankit01gehlot / proton Goto Github PK

View Code? Open in Web Editor NEW

This project forked from timeplus-io/proton

0.0 0.0 0.0 466.36 MB

A streaming SQL engine, a fast and lightweight alternative to Apache Flink, πŸš€ powered by ClickHouse.

Home Page: https://timeplus.com

License: Apache License 2.0

Shell 4.42% JavaScript 0.64% C++ 76.95% Python 9.07% Perl 0.06% C 2.43% PHP 0.01% Java 0.01% Clojure 0.05% Go 0.01% C# 0.01% Assembly 5.40% CSS 0.01% ANTLR 0.04% GAP 0.01% Makefile 0.01% Cap'n Proto 0.01% HTML 0.21% CMake 0.63% Dockerfile 0.07%

proton's Introduction

Proton – An open-source, fast and lightweight streaming SQL engine, πŸš€ powered by ClickHouse
A fast and lightweight streaming SQL engine, πŸš€ powered by ClickHouse

πŸ“„ DocumentationΒ Β  πŸš€ Live DemoΒ Β  🌎 Timeplus

Β  Β  ReleaseΒ  YouTubeΒ  SlackΒ  follow on LinkedInΒ  Twitter(X)Β  LicenseΒ 

Why Use Proton Β· Demo Video Β· Deployment Β· What's Next Β· Integrations Β· Contributing Β· Need help?

Proton is a streaming SQL engine, a fast and lightweight alternative to 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. Proton is the core engine of Timeplus, which is a cloud native streaming analytics platform.

πŸ’ͺ Why use Proton?

  1. Apache Flink or ksqlDB alternative: Proton provides powerful streaming SQL functionalities, such as streaming ETL, tumble/hop/session windows, watermarks, materialized views, CDC and data revision processing, and more.

  2. Fast: Proton is written in C++, with optimized performance through SIMD. For example, on an Apple MacBookPro with M2 Max, Proton can deliver 90 million EPS, 4 millisecond end-to-end latency, and high cardinality aggregation with 1 million unique keys.

  3. Lightweight: 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).

  4. Powered by the fast, resource efficient and mature ClickHouse. Proton extends the historical data, storage, and computing functionality of ClickHouse with stream processing. Thousands of SQL functions are available in Proton. Billions of rows are queried in milliseconds.

  5. Best streaming SQL engine for Kafka or Redpanda: Query the live data in Kafka or other compatible streaming data platforms, with external streams.

Proton Architecture See our architecture doc for technical details and our FAQ for more information.

🎬 Demo Video

2-minute short videoπŸ‘‡. Check out the full video at YouTube.

DataTalksProtonHandbrake.mp4

⚑ Deployment

A single binary:

curl -sSf https://raw.githubusercontent.com/timeplus-io/proton/develop/install.sh | sh

Docker:

docker run -d --pull always --name proton ghcr.io/timeplus-io/proton:latest

Docker Compose:

The Docker Compose stack demonstrates how to read/write data in Kafka/Redpanda with external streams.

Timeplus Cloud:

One step to try Proton in Timeplus Cloud

πŸ”Ž Usage

You can start the server via proton server start 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 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⏩ What's next?

To see more examples of using 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 our live demo with pre-built live data and dashboards.

🧩 Integrations

The following drivers are available:

Integrations with other systems:

Documentation

We publish full documentation for Proton at docs.timeplus.com alongside documentation for the Timeplus (Cloud and BYOC) platform.

We also have a FAQ for detailing how we chose Apache License 2.0, how Proton is related to ClickHouse, what features are available in Proton versus Timeplus, and more.

Contributing

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 Proton in different platforms.

We also encourage you to join our Timeplus Community Slack to ask questions and meet other active contributors from Timeplus and beyond.

Need help?

Join our Timeplus Community Slack to connect with Timeplus engineers and other Proton users.

For filing bugs, suggesting improvements, or requesting new features, see the open issues here on GitHub.

Licensing

Proton uses Apache License 2.0. See details in the LICENSE.

proton's People

Contributors

alexey-milovidov avatar alesapin avatar kochetovnicolai avatar azat avatar akuzm avatar blinkov avatar kitaisreal avatar kssenii avatar tavplubix avatar proller avatar nikitamikhaylov avatar curtizj avatar 4ertus2 avatar al13n321 avatar qoega avatar vdimir avatar sevirov avatar abyss7 avatar amosbird avatar bayonet avatar excitoon avatar ka1bi4 avatar diehertz avatar ludv1x avatar avogar avatar nikvas0 avatar mergify[bot] avatar zhang2014 avatar gyuton avatar ucasfl avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.