ClickHouse之采样查询(SAMPLE)

news2024/11/20 12:26:18

文章目录

  • SAMPLE概念
  • SAMPLE功能
  • SAMPLE语法
    • sample K
    • sample N
    • sample K offset m
  • groupArraySample
    • 语法

SAMPLE概念

SAMPLE 子句允许近似于 SELECT 查询处理。

启用数据采样时,不会对所有数据执行查询,而只对特定部分数据(样本)执行查询。

例如,如果您需要计算所有访问的统计信息,只需对所有访问的1/10分数执行查询,然后将结果乘以10即可。

近似查询处理在以下情况下可能很有用:

  • 当你有严格的时间需求(如<100ms),但你不能通过额外的硬件资源来满足他们的成本。
  • 当您的原始数据不准确时,所以近似不会明显降低质量。
  • 业务需求的目标是近似结果(为了成本效益,或者向高级用户推销确切结果)。

注意:
您只能使用采样中的表 MergeTree 族,并且只有在表创建过程中指定了采样表达式。

SAMPLE功能

  • 数据采样是一种确定性机制。 同样的结果 SELECT .. SAMPLE 查询始终是相同的。
  • 对于不同的表,采样工作始终如一。 对于具有单个采样键的表,具有相同系数的采样总是选择相同的可能数据子集。 例如,用户Id的示例采用来自不同表的所有可能的用户Id的相同子集的行。 这意味着您可以在子查询中使用采样 IN 此外,您可以使用 JOIN
  • 采样允许从磁盘读取更少的数据。 请注意,您必须正确指定采样键。

SAMPLE语法

SAMPLE Clause Syntax产品描述
SAMPLE k这里 k 是从0到1的数字。查询执行于 k 数据的分数。 例如, SAMPLE 0.1 对10%的数据运行查询。
SAMPLE n这里 n 是足够大的整数。该查询是在至少一个样本上执行的 n 行(但不超过这个)。 例如, SAMPLE 10000000 在至少10,000,000行上运行查询。
SAMPLE k OFFSET m这里 k 和 m 是从0到1的数字。查询在以下示例上执行 k 数据的分数。 用于采样的数据由以下偏移 m 分数。

sample K

这里 k 从0到1的数字(支持小数和小数表示法)。 例如, SAMPLE 1/2SAMPLE 0.5.

在一个 SAMPLE k 子句,样品是从 k 数据的分数。

示例如下所示:

SELECT
    Title,
    count() * 10 AS PageViews
FROM hits_distributed
SAMPLE 0.1
WHERE
    CounterID = 34
GROUP BY Title
ORDER BY PageViews DESC LIMIT 1000

在此示例中,对0.1(10%)数据的样本执行查询。 聚合函数的值不会自动修正,因此要获得近似结果,值 count() 手动乘以10。

sample N

这里 n 是足够大的整数。 例如, SAMPLE 10000000.

在这种情况下,查询在至少一个样本上执行 n 行(但不超过这个)。 例如, SAMPLE 10000000 在至少10,000,000行上运行查询。

由于数据读取的最小单位是一个颗粒(其大小由 index_granularity 设置),是有意义的设置一个样品,其大小远大于颗粒。

使用时 SAMPLE n 子句,你不知道处理了哪些数据的相对百分比。 所以你不知道聚合函数应该乘以的系数。 使用 _sample_factor 虚拟列得到近似结果。

_sample_factor 列包含动态计算的相对系数。 当您执行以下操作时,将自动创建此列 创建 具有指定采样键的表。 的使用示例 _sample_factor 列如下所示。

让我们考虑表 visits,其中包含有关网站访问的统计信息。

SELECT sum(_sample_factor)
FROM visits
SAMPLE 10000000

sample K offset m

这里 km 是从0到1的数字。

-- 所有数据的十分之一
SAMPLE 1/10

-- 从数据的后半部分取出10%的样本
SAMPLE 1/10 OFFSET 1/2

groupArraySample

构建一个参数值的采样数组。 结果数组的大小限制为 max_size 个元素。参数值被随机选择并添加到数组中。

语法

groupArraySample(max_size[, seed])(x)

参数

  • max_size — 结果数组的最大长度UInt64。
  • seed — 随机数发生器的种子。可选UInt64。默认值: 123456
  • x — 参数 (列名 或者 表达式)。

返回值

  • 随机选取参数 x (的值)组成的数组。

类型: Array
示例
ClickHouse之采样查询(SAMPLE) - Java技术债务
ClickHouse之采样查询(SAMPLE) - Java技术债务

--------------------------------------------------------------欢迎叨扰此地址---------------------------------------------------------------

本文作者:Java技术债务
原文链接:https://cuizb.top/myblog/article/1681185519
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 3.0 CN协议进行许可。转载请署名作者且注明文章出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428358.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑C盘被格式化 如何快速将被删的数据文件恢复找回?

如今的互联网时代&#xff0c;不管是办公还是休闲&#xff0c;一般都喜欢在电脑上进行操作&#xff0c;尤其是办公&#xff0c;感觉有了电脑能轻松不少&#xff0c;可以将一些工作中的重要数据保存在电脑里面&#xff0c;那么电脑里面的数据真就很安全了吗&#xff1f;这个就让…

Unity ShaderVariant 变体收集方案分析

最近遇到一个问题&#xff0c;在editor中场景渲染正确&#xff0c;打包android之后&#xff0c;渲染异常。 经过排查得出原因&#xff1a;工程把所有shader单独打包Assetbundle&#xff0c;editor打包ab包的时候&#xff0c;未收集到正确的shader变体&#xff0c;未将场景中使…

go语言并发编程

并发编程1.并发介绍1.1进程和线程1.2并发和并行1.3协程和线程1.协程2.线程1.4goroutine只是由官方实现的超级"线程池"2.Goroutine2.1使用Goroutine1.启动单个goroutine2.启动多个goroutine3.goroutine与线程3.1可增长的栈3.2goroutine调度3.runtime包3.1runtime.Gosc…

人员玩手机离岗识别检测系统 yolov5

人员玩手机离岗识别检测系统根通过pythonyolov5网络模型识别算法技术&#xff0c;人员玩手机离岗识别检测算法可以对画面中人员睡岗离岗、玩手机打电话、脱岗睡岗情况进行全天候不间断进行识别检测报警提醒。Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很…

Nginx 的docker部署及宿主机配置文件修改重启

Nginx是一款高性能的Web服务器&#xff0c;用于反向代理、负载均衡、HTTP缓存等。在docker中部署Nginx可以更加方便地管理和配置。下面是部署Nginx的步骤&#xff1a; 步骤一&#xff1a;拉取Nginx镜像 首先需要从Docker Hub上拉取Nginx镜像&#xff0c;可以使用以下命令&…

windows11系统关闭右键【显示更多选项】

在新的Win11操作系统之中&#xff0c;微软为了美化界面&#xff0c;将右键菜单进行了整合更改&#xff0c;但是实用性却大幅度下降&#xff0c;引起了很多用户的反感&#xff0c;并迫切希望能够将Win11显示更多选项这个反人类的设置恢复成Win10的状态。 方法一&#xff1a;更改…

学成在线笔记0-面试问题

【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线牛客面试题 目录 介绍你的项目 项目难点 CDN是什么&#xff1f; 负载均衡是怎么做的&#xff1f; git使用了什么仓库&#xff1f; git代码冲突怎么处理&#xff1f; 你…

linux入门---文件系统

目录标题为什么会有文件系统磁盘的物理结构磁盘的存储结构磁盘的逻辑结构文件系统为什么会有文件系统 在我们的云服务器上存在着很多的文件&#xff0c;但并不是所有的文件都是被打开的&#xff0c;操作系统得管理好已经被打开的文件&#xff0c;那么同样的道理在磁盘中没有被…

Redis如何避免数据丢失?

Redis的持久化主要有两大机制 即 AOF(Append Only File)日志, RDB(Redis DataBase)快照。 AOF 日志是如何实现的&#xff1f; AOF是写后日志&#xff0c;就是Redis限制性命令&#xff0c;数据写入内存&#xff0c;然后才记录日志。AOF里记录的是Redis收到的每一条命令&#x…

uni-app--》如何制作一个APP并使用?

&#x1f3cd;️作者简介&#xff1a;大家好&#xff0c;我是亦世凡华、渴望知识储备自己的一名在校大学生 &#x1f6f5;个人主页&#xff1a;亦世凡华、 &#x1f6fa;系列专栏&#xff1a;uni-app &#x1f6b2;座右铭&#xff1a;人生亦可燃烧&#xff0c;亦可腐败&#xf…

大数据应用——hbase shell操作

HBase 逻辑结构 HBase 物理存储结构 数据模型 1&#xff09;Name Space 命名空间&#xff0c;类似于关系型数据库的 DatabBase概念&#xff0c;每个命名空间下有多个表。HBase 有两个自带的命名空间&#xff0c;分别是 hbase 和 default hbase 中存放的是 HBase 内置的表&…

Android导入第三方SO库,上层Java调用(1)

Android导入第三方SO库&#xff0c;上层Java调用&#xff08;1&#xff09; &#xff08;1&#xff09;在module的build.gradle文件的android块中配置sourceSet&#xff1a; sourceSets {main {jniLibs.srcDir libs}} &#xff08;2&#xff09;在module的路径下&#xff0c;比…

[架构之路-166]-《软考-系统分析师》-4-据通信与计算机网络-2- 网络体系结构、协议

目录 4.2 网络体系结构与协议 4.2.1 网络互联模型 1. OSI / RM 各层的功能 2. TCP / IP 结构模型 4.2.2常见的网络协议 1 . 应用层协议 2 . 传输层协议 3 . 网络层协议 4.2.3网络地址与分配 4.2 网络体系结构与协议 网络体系结构是指计算机网络络的各层及其协议的集…

【k8s完整实战教程2】腾讯云搭建k8s托管集群

系列文章&#xff1a;这个系列已完结&#xff0c;如对您有帮助&#xff0c;求点赞收藏评论。 读者寄语&#xff1a;再小的帆&#xff0c;也能远航&#xff01; 【k8s完整实战教程0】前言【k8s完整实战教程1】源码管理-Coding【k8s完整实战教程2】腾讯云搭建k8s托管集群【k8s完…

Linux实战案列-发送告警邮件

发送告警邮件 准备 外部邮件服务器 首发在雪月书韵茶香 原因 本地自带邮箱容易被过滤&#xff0c;需要延迟性低的邮箱发送 配置docker 配置环境变量 主机版本&#xff1a;macOS 12.6.4 open .bash_profile export DOCKER_PATH"/Applications/Docker.app/Contents/Re…

threejs-效果合成器(EffectComposer)

文章目录前言EffectComposer 使用流程场景初始化&#xff1a;自转的地球创建THREE.EffectComposer添加后期处理通道并更新渲染EffectComposer 使用示例示例一&#xff1a;FilmPass 添加电视效果示例二&#xff1a;OutlinePass 添加闪烁效果总结前言 threejs中的效果合成器 Eff…

Python的基础

这是我自己学习Python的三个星期的小总结&#xff0c;内容包含了规范、数据类型、函数、类和捕捉异常&#xff0c;做了一个简单的梳理&#xff0c;希望可以帮助到和我一样开始学习Python的小伙伴&#xff0c;也希望多多支持&#xff0c;相互进步&#xff0c;下面步入正题。 基…

记一次 .NET某医疗器械清洗系统 卡死分析

一&#xff1a;背景 1. 讲故事 前段时间协助训练营里的一位朋友分析了一个程序卡死的问题&#xff0c;回过头来看这个案例比较经典&#xff0c;这篇稍微整理一下供后来者少踩坑吧。 二&#xff1a;WinDbg 分析 1. 为什么会卡死 因为是窗体程序&#xff0c;理所当然就是看主…

MySQL全局锁、表级锁、行级锁介绍演示(详细)

目录 介绍 分类 1、全局锁 1.1介绍 1.2场景 1.3语法 1.4演示 2、表级锁 2.1介绍 2.2分类 2.3语法 2.4演示 3、行级锁 3.1介绍 3.2分类 3.3场景 介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算资源&#xff08;…

linux下搭建Hbase分布式数据库

文章目录Hbase概念1.安装Hbase1.jdk的配置2.安装hbase2.启动和操作1.启动服务2 **web-ui访问地址:http://node01:16010/master-status**3.简单的操作1.连接 HBase2.帮助命令3.创建一张表 create a table4.使用查看表是否存在5.describe 查看表描述6.put命令插入数据到表7. scan…