Clickhouse Live View
概述:
Live view 是一种特殊的视图,不属于表引擎,作用类似于事件监听器,能够将一条SQL查询结果作为监控目标,当目标
增加 Live view 可以及时作出响应。在数据分析领域,分析师经常使用移动平均值(MA)。移动平均线有助于平滑数据序列并确定长期趋势。新的Live View功能
开始为ClickHouse带来实时计算功能(Real-time)。Live View表的适用之一是对实时指标进行实时计算。事件数据流的示例包括来自IoT传感器数据, 证券交易所的价格波动
或来自生产服务器的某些监控指标。ClickHouse 可以以良好的压缩率存储所有这些数据以及提供出色的分析查询性能版本演进:
19.14 版本提供 Live view 视图
20.1.2.4 版本提供实时移动平均功能相关参数:
Clickhouse> select name ,value,changed,min,max,readonly,type from system.settings where name like '%live_view%';SELECT name, value, changed, min, max, readonly, type
FROM system.settings
WHERE name LIKE '%live_view%'┌─name───────────────────────────────────────┬─value─┬─changed─┬─min──┬─max──┬─readonly─┬─type───────────┐
│ allow_experimental_live_view │ 0 │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ 0 │ SettingBool │
│ live_view_heartbeat_interval │ 15 │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ 0 │ SettingSeconds │
│ max_live_view_insert_blocks_before_refresh │ 64 │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ 0 │ SettingUInt64 │
│ temporary_live_view_timeout │ 5 │ 0 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ 0 │ SettingSeconds │
└────────────────────────────────────────────┴───────┴─────────┴──────┴──────┴──────────┴────────────────┘4 rows in set. Elapsed: 0.018 sec.
Live view 目前还是实验功能(experimental feature)需要开启参数allow_experimental_live_view :
手动设置:
Clickhouse> set allow_experimental_live_view=1;SET allow_experimental_live_view = 1Ok.0 rows in set. Elapsed: 0.001 sec. Clickhouse> select name ,value,changed,min,max,readonly,type from system.settings where name like '%live_view%';┌─name───────────────────────────────────────┬─value─┬─changed─┬─min──┬─max──┬─readonly─┬─type───────────┐
│ allow_experimental_live_view │ 1 │ 1 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ 0 │ SettingBool │.........
└────────────────────────────────────────────┴───────┴─────────┴──────┴──────┴──────────┴────────────────┘4 rows in set. Elapsed: 0.006 sec. 简单示例:
Clickhouse> create table t_lv(id UInt64)engine=Log;CREATE TABLE t_lv
(`id` UInt64
)
ENGINE = LogOk.0 rows in set. Elapsed: 0.011 sec. Clickhouse> create live view lv_count as select count(1) from t_lv;CREATE LIVE VIEW lv_count AS
SELECT count(1)
FROM t_lvOk.0 rows in set. Elapsed: 0.015 sec. Clickhouse> watch lv_count;WATCH lv_count┌─count(1)─┬─_version─┐
│ 0 │ 1 │
└──────────┴──────────┘
live view 进入监听模式。在另外的可以客户端执行插入数据的操作:
Clickhouse> insert into t_lv select rand() from numbers(10);┌─count(1)─┬─_version─┐
│ 10 │ 2 │
└──────────┴──────────┘移动平均计算示例:
Clickhouse> create table t_events(id UInt64,create_time datetime default now())ENGINE = Memory;Clickhouse> select sum(id)/10 from(select * from t_events order by create_time desc limit 10);插入测试数据:Clickhouse> INSERT INTO t_events VALUES (1,now()-9), (2,now()-8), (3,now()-7), (4,now()-6), (5,now()-5), (6,now()-4), (7,now()-3), (8,now()-2), (9,now()-1), (10,now());计算平均值:
Clickhouse> select sum(id)/10 from(select * from t_events order by create_time desc limit 10);SELECT sum(id) / 10
FROM
(SELECT *FROM t_eventsORDER BY create_time DESCLIMIT 10
)┌─divide(sum(id), 10)─┐
│ 5.5 │
└─────────────────────┘1 rows in set. Elapsed: 0.013 sec.Clickhouse> CREATE LIVE VIEW latest_10 as select sum(id)/10 from(select * from t_events order by create_time desc limit 10);Clickhouse> select * from latest_10;SELECT *
FROM latest_10┌─divide(sum(id), 10)─┐
│ 5.5 │
└─────────────────────┘1 rows in set. Elapsed: 0.007 sec. --- 插入新的记录查看最近10个数据的平均值:
Clickhouse> select * from t_events;SELECT *
FROM t_events┌─id─┬─────────create_time─┐
│ 1 │ 2020-06-15 15:17:21 │
│ 2 │ 2020-06-15 15:17:22 │
│ 3 │ 2020-06-15 15:17:23 │
│ 4 │ 2020-06-15 15:17:24 │
│ 5 │ 2020-06-15 15:17:25 │
│ 6 │ 2020-06-15 15:17:26 │
│ 7 │ 2020-06-15 15:17:27 │
│ 8 │ 2020-06-15 15:17:28 │
│ 9 │ 2020-06-15 15:17:29 │
│ 10 │ 2020-06-15 15:17:30 │
└────┴─────────────────────┘
┌─id─┬─────────create_time─┐
│ 11 │ 2020-06-15 15:21:17 │
└────┴─────────────────────┘11 rows in set. Elapsed: 0.004 sec. Clickhouse> select * from latest_10;SELECT *
FROM latest_10┌─divide(sum(id), 10)─┐
│ 6.5 │
└─────────────────────┘1 rows in set. Elapsed: 0.008 sec. sum([2, 3, 4, 5, 6, 7, 8, 9, 10, 1])/10 = 5.5
sum([2, 3, 4, 5, 6, 7, 8, 9, 10, 11])/10 = 6.5
参考:
https://www.altinity.com/blog/2020/3/9/real-time-moving-average-with-clickhouse-live-views
https://www.altinity.com/blog/2019/11/13/making-data-come-to-life-with-clickhouse-live-view-tables
https://www.altinity.com/blog/2019/12/05/taking-a-closer-look-at-clickhouse-live-view-tables
https://www.altinity.com/blog/2019/11/14/using-live-view-tables-with-a-real-dataset
Clickhouse Live View相关推荐
- 【Clickhouse】Clickhouse Live View
文章目录 1.概述 1.概述 转载:Clickhouse Live View Live view 是一种特殊的视图,不属于表引擎,作用类似于事件监听器,能够将一条SQL查询结果作为监控目标,当目标增加 ...
- 【Clickhouse】Clickhouse 普通视图
文章目录 1.概述 1.概述 转载:https://vkingnew.blog.csdn.net/article/details/107350687 clickhouse拥有普通视图和物化视图,其中物 ...
- Clickhouse其它类型表引擎(Live View、Null、URL)
目录 1. Live View表引擎 2. Null表引擎 3. URL表引擎 1. Live View表引擎 Live View不是表引擎,是一种视图,通过监听一条SQL查询语句的结果,当开启监听时 ...
- Clickhouse 物化视图 MATERIALIZED VIEW
MATERIALIZED VIEW 物化视图物化视图支持表引擎,数据的保存形式由表的引擎决定.创建语法: CREATE [MATERIALIZED] VIEW [IF NOT EXISTS] [db. ...
- 【Clickhouse】Clickhouse 物化视图 MATERIALIZED VIEW
文章目录 1.概述 2.物化视图 2.案例 2.1 案例1 参考: 1.概述 2.物化视图 物化视图支持表引擎,数据的保存形式由表的引擎决定. 创建语法: CREATE [MATERIALIZED] ...
- clickhouse 基础知识
转自:https://www.jianshu.com/p/a5bf490247ea Clickhouse是一个用于联机分析处理(OLAP)的列式数据库管理系统(columnar DBMS). 传统数据 ...
- ClickHouse 学习
DDL 添加数据库字段 alter table user_tags add column last_subject String; alter table user_tags add column c ...
- clickhouse批量写入_交互式分析领域,为何 ClickHouse 能够杀出重围?
来源:微信公众号:云加社区,作者:姜国强 出处:https://mp.weixin.qq.com/s/9PZTws3KSzlybHXM6XC2hg 导语 | 在百花齐放的交互式分析领域,ClickHo ...
- clickhouse 新增列_ClickHouse入门记录
安装 我写了个脚本放在 gist 可以执行以下命令来自动安装: curl -L https://gist.githubusercontent.com/emacsist/ebb98839c814cdb2 ...
最新文章
- 数据架构简史:转换中的范式
- elasticsearch 结构化搜索_在案例中实战基于range filter来进行范围过滤
- docker+springboot部署总结
- 中国航发9名劳模工匠变身“高级制造工程师”
- 【转】.NET Remoting
- Linux strtol将十六进制转化为十进制
- 继续增援武汉,紫光及新华三集团对火神山和雷神山医院捐赠设备!
- 你百分之九十九的问题都是因为懒
- (转)jquery基础教程八 load方法及小技巧
- ActiveMQ 即时通讯服务 浅析
- python版本可执行可嵌入_Python程序打包成exe可执行文件的方法探究
- c语言鼠标游戏,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
- pcr532,nfc读卡器复制家用门禁卡
- 超全NetLogo多主体仿真建模(小世界WWW+无标度网络+随机网)内含源码+界面设计+程序分析
- 认识异或运算的本质与基本规律,0^x=x,x异或x=0,有交换律,结合律,与顺序无关
- Windows注册表内容详解(转载)
- remosaic插值算法_图像插值算法及其实现
- mysql 实现日期格式化(date_format)
- 如何掌握高效学习方法,提高学习效率?
- 这是我独有的排解方式