Basic SELECT Queries
Streaming Select
Query streams in real-time mode:- Start from the latest data by default
- Run continuously until cancelled
- Return results as events arrive
Historical Select
Query historical data using thetable() function:
Filtering with WHERE
Basic Filtering
Time-based Filtering
Filter by event time using_tp_time:
Projection and Transformation
Column Selection
Column Transformations
Query Settings
Controlling Start Position
Control where streaming queries begin:Performance Settings
Streaming vs Historical Queries
Streaming Query Characteristics
- Unbounded data processing
- Real-time results
- No automatic termination
- Lower latency
Historical Query Characteristics
- Bounded dataset
- Complete result set
- Automatic termination
- Supports ORDER BY, LIMIT globally
Subqueries
Historical Subqueries
WITH Common Table Expressions
LIMIT and Sampling
LIMIT in Historical Queries
LIMIT in Streaming Queries
DISTINCT
Get unique values:Working with JSON Data
Extract JSON Fields
Complete Query Examples
Real-time Monitoring
Historical Analysis
Filtered Streaming
Time Window Queries
Best Practices
Use WHERE clauses early
Use WHERE clauses early
Filter data as early as possible to reduce processing:
Choose appropriate query mode
Choose appropriate query mode
- Use streaming queries for real-time monitoring and alerts
- Use
table()for analytical queries and reporting - Consider data volume when choosing mode
Leverage column projection
Leverage column projection
Select only needed columns to reduce network and memory overhead:
Use LIMIT for exploration
Use LIMIT for exploration
When exploring data, use LIMIT to avoid overwhelming results:
Next Steps
Writing Data
Learn how to insert data into streams
Aggregations
Perform streaming aggregations
Time Windows
Use time-based windows
Joins
Join multiple streams