docs: update 06-stream.md for stream-computing
This commit is contained in:
parent
de225e6f97
commit
47c9309a2c
|
@ -29,100 +29,77 @@ stream_options: {
|
|||
首先准备数据,完成建库、建一张超级表和多张子表操作
|
||||
|
||||
```sql
|
||||
drop database if exists stream_db;
|
||||
create database stream_db;
|
||||
DROP DATABASE IF EXISTS power;
|
||||
CREATE DATABASE power;
|
||||
USE power;
|
||||
|
||||
create stable stream_db.meters (ts timestamp, current float, voltage int) TAGS (location varchar(64), groupId int);
|
||||
CREATE STABLE meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);
|
||||
|
||||
create table stream_db.d1001 using stream_db.meters tags("beijing", 1);
|
||||
create table stream_db.d1002 using stream_db.meters tags("guangzhou", 2);
|
||||
create table stream_db.d1003 using stream_db.meters tags("shanghai", 3);
|
||||
CREATE TABLE d1001 USING meters TAGS ("California.SanFrancisco", 2);
|
||||
CREATE TABLE d1002 USING meters TAGS ("California.SanFrancisco", 3);
|
||||
CREATE TABLE d1003 USING meters TAGS ("California.LosAngeles", 2);
|
||||
CREATE TABLE d1004 USING meters TAGS ("California.LosAngeles", 3);
|
||||
```
|
||||
|
||||
### 创建流
|
||||
|
||||
```sql
|
||||
create stream stream1 into stream_db.stream1_output_stb as select _wstart as start, _wend as end, max(current) as max_current from stream_db.meters where voltage <= 220 and ts > now - 12h interval (1h);
|
||||
create stream current_stream into current_stream_output_stb as select _wstart as start, _wend as end, max(current) as max_current from meters where voltage <= 220 and ts > now - 12h interval (1h);
|
||||
```
|
||||
|
||||
### 写入数据
|
||||
```sql
|
||||
insert into stream_db.d1001 values(now-14h, 10.3, 210);
|
||||
insert into stream_db.d1001 values(now-13h, 13.5, 216);
|
||||
insert into stream_db.d1001 values(now-12h, 12.5, 219);
|
||||
insert into stream_db.d1002 values(now-11h, 14.7, 221);
|
||||
insert into stream_db.d1002 values(now-10h, 10.5, 218);
|
||||
insert into stream_db.d1002 values(now-9h, 11.2, 220);
|
||||
insert into stream_db.d1003 values(now-8h, 11.5, 217);
|
||||
insert into stream_db.d1003 values(now-7h, 12.3, 227);
|
||||
insert into stream_db.d1003 values(now-6h, 12.3, 215);
|
||||
insert into d1001 values(now-13h, 10.30000, 219, 0.31000);
|
||||
insert into d1001 values(now-11h, 12.60000, 218, 0.33000);
|
||||
insert into d1001 values(now-10h, 12.30000, 221, 0.31000);
|
||||
insert into d1002 values(now-9h, 10.30000, 218, 0.25000);
|
||||
insert into d1003 values(now-8h, 11.80000, 221, 0.28000);
|
||||
insert into d1003 values(now-7h, 13.40000, 223, 0.29000);
|
||||
insert into d1004 values(now-6h, 10.80000, 223, 0.29000);
|
||||
insert into d1004 values(now-5h, 11.50000, 221, 0.35000);
|
||||
```
|
||||
|
||||
### 查询以观查结果
|
||||
|
||||
```sql
|
||||
taos> select * from stream_db.stream1_output_stb;
|
||||
start | end | max_current | group_id |
|
||||
===================================================================================================
|
||||
2022-08-09 14:00:00.000 | 2022-08-09 15:00:00.000 | 10.50000 | 0 |
|
||||
2022-08-09 15:00:00.000 | 2022-08-09 16:00:00.000 | 11.20000 | 0 |
|
||||
2022-08-09 16:00:00.000 | 2022-08-09 17:00:00.000 | 11.50000 | 0 |
|
||||
2022-08-09 18:00:00.000 | 2022-08-09 19:00:00.000 | 12.30000 | 0 |
|
||||
Query OK, 4 rows in database (0.012033s)
|
||||
taos> select start, end, max_current from current_stream_output_stb;
|
||||
start | end | max_current |
|
||||
===========================================================================
|
||||
2022-08-12 04:00:00.000 | 2022-08-12 05:00:00.000 | 12.60000 |
|
||||
2022-08-12 06:00:00.000 | 2022-08-12 07:00:00.000 | 10.30000 |
|
||||
Query OK, 2 rows in database (0.009580s)
|
||||
```
|
||||
|
||||
## 示例二
|
||||
某运营商平台要采集机房所有服务器的系统资源指标,包含 cpu、内存、网络延迟等,采集后需要对数据进行四舍五入运算,将地域和服务器名以下划线拼接,然后将结果按时间排序并以服务器名分组输出到新的数据表中。
|
||||
|
||||
依然以示例一中的数据为基础,我们已经采集到了每个智能电表的电流和电压数据,现在要求出功率,并将地域和电表名以符号 "." 拼接,然后以电表名称分组输出到新的数据表中。
|
||||
|
||||
### 创建 DB 和原始数据表
|
||||
首先准备数据,完成建库、建一张超级表和多张子表操作
|
||||
|
||||
```sql
|
||||
drop database if exists stream_db;
|
||||
create database stream_db;
|
||||
|
||||
create stable stream_db.idc (ts timestamp, cpu float, mem float, latency float) TAGS (location varchar(64), groupId int);
|
||||
|
||||
create table stream_db.server01 using stream_db.idc tags("beijing", 1);
|
||||
create table stream_db.server02 using stream_db.idc tags("shanghai", 2);
|
||||
create table stream_db.server03 using stream_db.idc tags("beijing", 2);
|
||||
create table stream_db.server04 using stream_db.idc tags("tianjin", 3);
|
||||
create table stream_db.server05 using stream_db.idc tags("shanghai", 1);
|
||||
```
|
||||
参考示例一 [创建 DB 和原始数据表](#创建-db-和原始数据表)
|
||||
|
||||
### 创建流
|
||||
|
||||
```sql
|
||||
create stream stream2 into stream_db.stream2_output_stb as select ts, concat_ws("_", location, tbname) as server_location, round(cpu) as cpu, round(mem) as mem, round(latency) as latency from stream_db.idc partition by tbname order by ts;
|
||||
create stream power_stream into power_stream_output_stb as select ts, concat_ws(".", location, tbname) as meter_location, current*voltage as meter_power from meters partition by tbname;
|
||||
```
|
||||
|
||||
### 写入数据
|
||||
```sql
|
||||
insert into stream_db.server01 values(now-14h, 50.9, 654.8, 23.11);
|
||||
insert into stream_db.server01 values(now-13h, 13.5, 221.2, 11.22);
|
||||
insert into stream_db.server02 values(now-12h, 154.7, 218.3, 22.33);
|
||||
insert into stream_db.server02 values(now-11h, 120.5, 111.5, 5.55);
|
||||
insert into stream_db.server03 values(now-10h, 101.5, 125.6, 5.99);
|
||||
insert into stream_db.server03 values(now-9h, 12.3, 165.6, 6.02);
|
||||
insert into stream_db.server04 values(now-8h, 160.9, 120.7, 43.51);
|
||||
insert into stream_db.server04 values(now-7h, 240.9, 520.7, 54.55);
|
||||
insert into stream_db.server05 values(now-6h, 190.9, 320.7, 55.43);
|
||||
insert into stream_db.server05 values(now-5h, 110.9, 600.7, 35.54);
|
||||
```
|
||||
|
||||
参考示例一 [写入数据](#写入数据)
|
||||
|
||||
### 查询以观查结果
|
||||
```sql
|
||||
taos> select ts, server_location, cpu, mem, latency from stream_db.stream2_output_stb;
|
||||
ts | server_location | cpu | mem | latency |
|
||||
================================================================================================================================
|
||||
2022-08-09 21:24:56.785 | beijing_server01 | 51.00000 | 655.00000 | 23.00000 |
|
||||
2022-08-09 22:24:56.795 | beijing_server01 | 14.00000 | 221.00000 | 11.00000 |
|
||||
2022-08-09 23:24:56.806 | shanghai_server02 | 155.00000 | 218.00000 | 22.00000 |
|
||||
2022-08-10 00:24:56.815 | shanghai_server02 | 121.00000 | 112.00000 | 6.00000 |
|
||||
2022-08-10 01:24:56.826 | beijing_server03 | 102.00000 | 126.00000 | 6.00000 |
|
||||
2022-08-10 02:24:56.838 | beijing_server03 | 12.00000 | 166.00000 | 6.00000 |
|
||||
2022-08-10 03:24:56.846 | tianjin_server04 | 161.00000 | 121.00000 | 44.00000 |
|
||||
2022-08-10 04:24:56.853 | tianjin_server04 | 241.00000 | 521.00000 | 55.00000 |
|
||||
2022-08-10 05:24:56.866 | shanghai_server05 | 191.00000 | 321.00000 | 55.00000 |
|
||||
2022-08-10 06:24:57.301 | shanghai_server05 | 111.00000 | 601.00000 | 36.00000 |
|
||||
Query OK, 10 rows in database (0.022950s)
|
||||
```
|
||||
|
||||
taos> select ts, meter_location, meter_power from power_stream_output_stb;
|
||||
ts | meter_location | meter_power |
|
||||
=======================================================================================
|
||||
2022-08-12 07:44:47.817 | California.SanFrancisco.d1002 | 2245.400041580 |
|
||||
2022-08-12 08:44:47.826 | California.LosAngeles.d1003 | 2607.800042152 |
|
||||
2022-08-12 09:44:47.833 | California.LosAngeles.d1003 | 2988.199914932 |
|
||||
2022-08-12 03:44:47.791 | California.SanFrancisco.d1001 | 2255.700041771 |
|
||||
2022-08-12 05:44:47.800 | California.SanFrancisco.d1001 | 2746.800083160 |
|
||||
2022-08-12 06:44:47.809 | California.SanFrancisco.d1001 | 2718.300042152 |
|
||||
2022-08-12 10:44:47.840 | California.LosAngeles.d1004 | 2408.400042534 |
|
||||
2022-08-12 11:44:48.379 | California.LosAngeles.d1004 | 2541.500000000 |
|
||||
Query OK, 8 rows in database (0.014788s)
|
||||
```
|
Loading…
Reference in New Issue