【clickhouse】clickhouse查询语句之simple
文章目录
- 1. 概述
1. 概述
转载:Clickhouse查询语句 sample
注意:
sample子句只能用于MergeTree系列引擎的数据表,并且在create table的时候就声明sample by 抽样表达式。
sample子句提供了近似计算
的功能,能够实现数据采样的功能,使查询仅仅返回采样数据而不是全部数据,从而有效减少查询负载。
sample子句的采样设计是一种幂等设计,即在数据发生变化的时候使用相同的采样规则能返回相同的数据
。这种特性非常适合那些可以接受近似查询结果的场景。
官方提供了如下的使用场景:
- When you have strict timing requirements (like <100ms) but you can’t justify the cost of additional hardware
resources to meet them. - When your raw data is not accurate, so approximation doesn’t noticeably degrade the quality.
- Business requirements target approximate results (for cost-effectiveness, or to market exact results to
premium users).
Clickhouse> create table clicks(CounterID UInt64,EventDate DATE, UserID UInt64) engine=MergeTree()
order by (CounterID,intHash32(UserID)) sample by intHash32(UserID);CREATE TABLE clicks
(`CounterID` UInt64,`EventDate` DATE,`UserID` UInt64
)
ENGINE = MergeTree()
ORDER BY (CounterID, intHash32(UserID))
SAMPLE BY intHash32(UserID)
插入测试数据:
Clickhouse> insert into clicks select CounterID,EventDate,UserID from hits_v1;INSERT INTO clicks SELECT CounterID,EventDate,UserID
FROM hits_v1Ok.0 rows in set. Elapsed: 1.003 sec. Processed 8.87 million rows, 124.23 MB (8.85 million rows/s., 123.88 MB/s.)
clicks表的定义按照intHash32(UserID) 分布后的结果采样查询。
声明Sample KEY的时候有两点需要注意:
sample by 所声明的表达式必须同时包含在主键的声明内
sample key必须UInt类型,若不是可以定义但是查询的时候会抛出异常
。
SAMPLE 子句支持三种格式:
1.sample k
k表示因子系数,采样因子,取值范围【0,1】,若在0–1之间的小数则表示采样,若为0或者1则等同于不采样。
select CounterID from clicks sample 0.1
等同于:
select CounterID from clicks sample 1/10
查询获取近似结果:
Clickhouse> select count() from clicks;SELECT count()
FROM clicks┌─count()─┐
│ 8873898 │
└─────────┘1 rows in set. Elapsed: 0.003 sec. Clickhouse> select count() from clicks sample 0.1;SELECT count()
FROM clicks
SAMPLE 1 / 10┌─count()─┐
│ 839889 │
└─────────┘1 rows in set. Elapsed: 0.029 sec. Processed 5.89 million rows, 94.27 MB (201.86 million rows/s., 3.23 GB/s.) Clickhouse> select CounterID,_sample_factor from clicks sample 0.1 limit 2;SELECT CounterID,_sample_factor
FROM clicks
SAMPLE 1 / 10
LIMIT 2┌─CounterID─┬─_sample_factor─┐
│ 57 │ 10 │
│ 57 │ 10 │
└───────────┴────────────────┘2 rows in set. Elapsed: 0.012 sec.
可以通过虚拟字段_sample_factor 查询采样系数。
2.sample n
n表示采样的样本数量。n表示至少采样多少行数据。n=1表示不使用采样,n的范围从2到表的总行数。
Clickhouse> select count() from clicks sample 10000;SELECT count()
FROM clicks
SAMPLE 10000┌─count()─┐
│ 9251 │
└─────────┘1 rows in set. Elapsed: 0.025 sec. Processed 5.48 million rows, 87.72 MB (223.47 million rows/s., 3.58 GB/s.) Clickhouse> select count()*any(_sample_factor) from clicks sample 10000;SELECT count() * any(_sample_factor)
FROM clicks
SAMPLE 10000┌─multiply(count(), any(_sample_factor))─┐
│ 8154379.059200001 │
└────────────────────────────────────────┘1 rows in set. Elapsed: 0.024 sec. Processed 5.48 million rows, 54.82 MB (229.44 million rows/s., 2.29 GB/s.) Clickhouse> select CounterID,_sample_factor from clicks sample 10000 limit 2;SELECT CounterID,_sample_factor
FROM clicks
SAMPLE 10000
LIMIT 2┌─CounterID─┬────_sample_factor─┐
│ 1294 │ 881.4592000000001 │
└───────────┴───────────────────┘
┌─CounterID─┬────_sample_factor─┐
│ 1366 │ 881.4592000000001 │
└───────────┴───────────────────┘2 rows in set. Elapsed: 0.041 sec. Processed 7.69 thousand rows, 123.01 KB (187.84 thousand rows/s., 3.01 MB/s.)
数据采样的范围是一个近似值,采样数据的最小粒度有index_granularity 索引粒度决定的。
若设置一个小于索引粒度或者较小的n值没有意义。
3. sample k offset n
表示按照因子系数和偏移量采样。
Clickhouse> select CounterID,_sample_factor from clicks sample 0.4 offset 0.5 limit 1;SELECT CounterID,_sample_factor
FROM clicks
SAMPLE 4 / 10 OFFSET 5 / 10
LIMIT 1┌─CounterID─┬─_sample_factor─┐
│ 57 │ 2.5 │
└───────────┴────────────────┘1 rows in set. Elapsed: 0.017 sec. Clickhouse> select CounterID,_sample_factor from clicks sample 0.6 offset 0.5 limit 1;SELECT CounterID,_sample_factor
FROM clicks
SAMPLE 6 / 10 OFFSET 5 / 10
LIMIT 1┌─CounterID─┬─────_sample_factor─┐
│ 57 │ 1.6666666666666667 │
└───────────┴────────────────────┘1 rows in set. Elapsed: 0.007 sec.
当采样因子溢出(offset 的值+sample的值大于1)则溢出的数据则自动阶段。
【clickhouse】clickhouse查询语句之simple相关推荐
- clickhouse SQL查询语句 【译自Github 英文文档】
内容有缩减,原文请点击这里 创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name 创建表 CREATE TABLE可以有几种形式. 创建一张表,最好指定引擎结构 ...
- ClickHouse查询语句详解
ClickHouse查询语句兼容大部分SQL语法,并且进行了更加丰富的扩展,查询语句模板如下: [WITH expr_list|(subquery)] SELECT [DISTINCT [ON (c ...
- TPCH ClickHouse查询语句修改
TPC-H 压CK的时候,22条query语句需要进行修改,使语法满足CK:在此记录,供参考 clickhouse查询语句-- query-1select l_returnflag, l_linest ...
- ClickHouse数据查询
1.查询语法 [WITH expr_list|(subquery)] SELECT [DISTINCT] expr_list [FROM [db.]table | (subquery) | table ...
- 【clickhouse】 clickhouse配置查询记录query_log
1.概述 转载:clickhouse配置查询记录query_log 最近在使用clickhouse中,看到官方文档上可以配置query_log,但是文档上写的配置比较模糊,特此记录一下具体配置方法,以 ...
- clickhouse 复杂查询时嵌套连接join可能存在的异常解决(xjl456852原创)
clickhouse 复杂查询时嵌套连接join可能存在的异常解决(xjl456852原创) 参考文章: (1)clickhouse 复杂查询时嵌套连接join可能存在的异常解决(xjl456852原 ...
- mysql构架,索引,视图,查询语句
mysql构架: connection pool:因为单进程多线程,所以需要一个线程池接收请求提供并发,线程重用,还能完成认证 SQL interface:接收并分析SQL语句 Parser:分析器, ...
- 15个初学者必看的基础SQL查询语句
1.创建表和数据插入SQL 我们在开始创建数据表和向表中插入演示数据之前,我想给大家解释一下实时数据表的设计理念,这样也许能帮助大家能更好的理解SQL查询. 在数据库设计中,有一条非常重要的规则就是要 ...
- mysql能用case嵌套sql吗,关于sqlserver中查询语句中嵌套case语句使用方法
ryxxlong的博客 Sql server 中的 CASE 语句文章, 链接 http://ryxxlong.iteye.com/blog/531221 写的比较详细,具体内容如下,主要用于自己以后 ...
最新文章
- 第一次上传代码到gitee
- Java NIO之Selector(选择器)
- Redis从入门到放弃系列(一) String
- async function_Electron IPC 通信如何使用 async/await 调用?
- 记录使用 Cake 进行构建并制作 nuget 包
- Linux使用locate命令查找,Linux如何使用locate命令查找数据(2)
- 【总结记录】《MySQL必知必会》读后笔记,结合 leetcode 例题理解
- web html分块加载,javascript – 使用webpack代码拆分,如何加载块和HTML布局?
- python面向对象难学_学不下去了!?详解Python面向对象核心概念,简历没跑了
- 互联网晚报 | 10月22日 星期五 | 火花思维澄清破产传闻;珠海万达商管赴港提交招股书;特斯拉Q3营收净利均创新高...
- golang六个常用的web 框架
- CRC校验关键点说明(内附C语言CRC校验库)
- JS监听安卓软键盘删除键
- 线程池引发的故障到底该怎么排查?
- 生活随记 - 国庆假期怎么过才有意义呢
- 使用Excle做数据分析与时间序列季节指数预测
- 帝国时代之罗马复兴玩法技巧
- 面对流氓HR,新人该注意什么
- ORA_HASH函数
- 贵州大学计算机历年收分,贵州大学历年分数线 2021贵州大学录取分数线
热门文章
- 爱奇艺深夜就“倒奶视频”致歉:《青你3》成团夜停止录制和直播......
- 微信在朋友圈强行置顶视频号直播分享,引网友疯狂吐槽:又丑又烦!
- 饿了么“多等5分钟”后,美团外卖宣布给骑手留出8分钟...
- 腾讯再回应被骗,悬赏1000瓶老干妈求线索!老干妈:腾讯从来没有催收过
- 苹果发明超薄触摸显示技术:iPhone 12系列有望首发搭载
- 蔚来宣布再次完成1亿美元可转债融资
- 知名插画师描绘nova6“5G”潮乐园 十城nova6自拍互动装置即将引爆
- iOS 13.2“杀后台”严重 被用户狂喷:专业“杀微信”
- 尴尬了!“中国版ins”绿洲 logo涉嫌抄袭,确认已下架
- 央视曝光!朋友圈八大骗局正在瞄准你的个人信息 看看你中招没?