Timeplus Proton extends SQL to support both streaming and batch query modes, enabling real-time data processing alongside historical analysis.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/timeplus-io/proton/llms.txt
Use this file to discover all available pages before exploring further.
Query Modes
Proton supports two fundamental query modes:Streaming Queries
Streaming queries continuously process data as it arrives, producing incremental results:- Process events as they arrive in real-time
- Emit results continuously or at specified intervals
- Run indefinitely until explicitly cancelled
- Enable stateful computations like windowed aggregations
Historical Queries
Historical queries process data already stored in streams, similar to traditional database queries:The
table() function switches query semantics from streaming to batch mode, treating the stream as a bounded dataset.Stream vs Table Semantics
Default Streaming Mode
By default, querying a stream directly processes data in streaming mode:- Starts from the latest data
- Continues running indefinitely
- Emits results as new events arrive
Table Function for Historical Data
Wrap a stream withtable() to query it as bounded historical data:
Controlling Query Behavior
EMIT STREAM for Continuous Output
UseEMIT STREAM to control when aggregation results are emitted:
Settings for Query Control
Control query starting position with settings:Streaming vs Batch Query Comparison
| Feature | Streaming Query | Historical Query |
|---|---|---|
| Syntax | SELECT ... FROM stream | SELECT ... FROM table(stream) |
| Data Scope | Unbounded, ongoing | Bounded, finite |
| Execution | Continuous | One-time |
| Results | Incremental updates | Complete result set |
| Latency | Real-time | Depends on data size |
| Use Case | Monitoring, alerting | Analysis, reporting |
Event Time Column
Every stream has a reserved_tp_time column that tracks event ingestion time:
Query Examples
Real-time Filtering
Historical Analysis
Mixed Mode with Subqueries
Next Steps
Creating Streams
Learn how to define and create streams
Time Windows
Explore windowed aggregations
Joins
Understand stream-to-stream joins
Aggregations
Master streaming aggregations