1. Time series data and its characteristics

Time Series Data is a series of indicator monitoring data that is continuously generated based on a relatively stable frequency, such as the Dow Jones Index within a year, the measured temperature at different time points in a day, and so on. Time series data has the following characteristics:

  • Invariance of historical data
  • data availability
  • Timeliness of data
  • structured data
  • volume of data

Second, the basic structure of time series database

According to the characteristics of time series data, time series databases generally have the following characteristics:

  • High-speed data storage
  • Data Lifecycle Management
  • Stream processing of data
  • Efficient data query
  • Custom Data Compression

3. Introduction to Stream Computing

Stream computing mainly refers to the real-time acquisition of massive data from different data sources, and real-time analysis and processing to obtain valuable information. Common business scenarios include rapid response to real-time events, real-time alarms for market changes, interactive analysis of real-time data, etc. Stream computing generally includes the following functions:

1) Filtering and conversion (filter & map)

2) polyCombine and window functions (reduce, aggregation/window)

3) Merging of multiple data streams and pattern matching (joining & pattern detection)

4) From stream to block processing

4. Time series database support for stream computing

from(bucket: "mydb")  
|> range(start: -1h)  
|> filter(fn: (r) => r["_measurement"] == "mymeasurement")  
|> map(fn: (r) => ({ r with value: r.value * 2 }))  
|> filter(fn: (r) => r.value > 100)  
|> aggregateWindow(every: 1m, fn: sum, createEmpty: false)  
|> group(columns: ["location"])  
|> join(tables: {stream1: {bucket: "mydb", measurement: "stream1", start: -1h}, stream2: {bucket: "mydb", measurement: "stream2", start: -1h}}, on: ["location"])  
|> alert(name: "value_above_threshold", message: "Value is above threshold", crit: (r) => r.value > 100)  
|> to(bucket: "mydb", measurement: "output", tagColumns: ["location"])

CREATE STREAM current_stream        
TRIGGER AT_ONCE        
INTO current_stream_output_stb AS        
SELECT             
 _wstart as start,              
 _wend as end,              
 max(current) as max_current        
 FROM meters        
 WHERE voltage <= 220        
 INTEVAL (5S) SLIDING (1s);

#Time #Series #Database #Stream #Computing #Support #KaiwuDBs #Personal #Space #News Fast Delivery

Leave a Comment

Your email address will not be published. Required fields are marked *