Clickhouse在画像场景如何对人群分布情况进行N等分

简介: Clickhouse是一个性能强悍的OLAP系统,经常被用于用户画像等场景。在画像场景中,经常需要按照某一指标对人群进行N等分,然后对每个人根据指标所处的范围打上对应标签。本文主要介绍如何通过Clickhouse对人群分布情况进行N等分。

背景

Clickhouse是一个性能强悍的OLAP系统,经常被用于用户画像等场景。

在用户画像场景场景中,经常需要按照某一指标对人群进行N等分,然后对每个人根据指标所处的范围打上对应标签。比如某游戏公司记录了玩家每周的游戏时长,需要将所有玩家平均划分为10个等级,从轻度玩家到深度沉迷玩家,以此为依据制定匹配规则。现在有了所有玩家的游戏时长数据,如何对他们进行十等分划分,使得每个区间内的人数都相等呢?


示例

首先模拟一张表,uid代表账户,name代表名字,game_length_per_week代表每周游戏时长,为了方便,其他字段省略。

CREATETABLE default.sample(    `uid` String,    `name` String,    `game_length_per_week` UInt64
)ENGINE = MergeTree()ORDERBY uid


然后模拟一些数据,插入表中。


insertinto sample values('ab2','husky',37),('ab1','sam',35),('a4b','jim',36),('44b','jane',29),('pa4b','dany',35),('pgb','james',14),('ppb','leo',19),('ab-2','husky',1),('ab-1','sam',4),('a4-b','jim',6),('4-4b','jane',7),('pa-4b','dany',9),('pg-b','james',12),('pp-b','leo',14)


通过使用 quantilesExactExclusive(0.1 ,0.2,...)(exp)函数进行查询。

SELECT quantilesExactExclusive(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9)(game_length_per_week)FROM sample


可以看到,查询结果已经根据总数进行了十等分, 根据游戏时长,level 1定义为2.5h以下,level 2定义为2.5h-6h之间。

┌─quantilesExactExclusive(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9)(game_length_per_week)─┐
[2.5,6,8,12,14,19,32,35,36.5]└────────────────────────────────────────────────────────────────────────────────────────────┘


此时根据上面函数得到的结果,可以进一步使用roundDown(x, [array]) 函数,将以上结果作为函数输入中的[array]参数,进而为每个用户创建游戏沉迷等级的标签。



相关资料

可以通过官网看到quantilesExactExclusive相关的使用介绍。

https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/quantiles


roundDown(x, [array]) 函数可以参考另一篇文章。

https://developer.aliyun.com/article/895087?spm=a2c6h.13148508.setting.11.10d14f0e8pvm4H



钉钉扫描下方二维码加入EMR-Clickhouse产品交流群一起参与讨论~

image.png

目录
相关文章
|
2月前
|
SQL 存储 OLAP
ClickHouse 在什么场景下才管用?
ClickHouse 是一款以速度快著称的分析型数据库,尤其在列式宽表遍历方面表现出色。然而,面对复杂查询和关联运算时,ClickHouse 的性能急剧下降,甚至无法执行某些任务。相比之下,esProc SPL 通过更简洁的 SPL 语法和强大的优化能力,在各种复杂场景下均表现出色,全面超越 ClickHouse。实际案例显示,esProc SPL 在处理大规模数据时,性能提升可达数十倍。
|
7月前
|
存储 分布式计算 Hadoop
ClickHouse(01)什么是ClickHouse,ClickHouse适用于什么场景
ClickHouse是一款高性能的列式存储OLAP数据库,由俄罗斯的Yandex公司开发,用于在线分析处理(OLAP)。它提供秒级大数据查询,适用于商业智能、广告流量等领域。ClickHouse速度快的原因包括列式存储、数据压缩、向量化执行和多线程分布式处理。然而,它不支持事务,不适合OLTP操作。相比Hadoop生态中的查询引擎,ClickHouse在大量数据查询上表现出色。一系列的文章详细介绍了ClickHouse的各个方面,包括安装、表引擎和使用场景。
521 0
ClickHouse(01)什么是ClickHouse,ClickHouse适用于什么场景
|
SQL 分布式计算 测试技术
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris:有赞业务场景下性能测试与迁移验证
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris 迁移实践:有赞查询提速近 10 倍,OLAP 分析更实时高效!
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris:有赞业务场景下性能测试与迁移验证
|
SQL 分布式计算 测试技术
从 Clickhouse 到 Apache Doris:有赞业务场景下性能测试与迁移验证
当前,电商运营的主要痛点不仅来自多变的市场和客户需求,也受困于碎片化用户触达等带来的竞争与挑战。为了深度挖掘用户价值、培养用户忠诚度、实现业绩增长,有赞为商家搭建了全方位 OLAP 分析系统,提供实时与离线分析报表、智能营销与人群圈选等 SaaS 服务。本文将详细介绍有赞从 Clickhouse 至 Apache Doris 的迁移规划和性能对比测试实践,分享如何基于 Apache Doris 统一 OLAP 技术栈,并满足庞大数据体量下的实时分析与极速查询,最终有赞在多个场景下实现查询平均提速 200% 。
353 0
|
存储 搜索推荐 关系型数据库
55.【clickhouse】ClickHouse从入门到放弃-概念场景
【clickhouse】ClickHouse从入门到放弃-概念场景
55.【clickhouse】ClickHouse从入门到放弃-概念场景
|
消息中间件 SQL 搜索推荐
干货|从 ClickHouse 到 ByteHouse:实时数据分析场景下的优化实践
干货|从 ClickHouse 到 ByteHouse:实时数据分析场景下的优化实践
|
搜索推荐 BI OLAP
Clickhouse在画像场景如何快速计算人群的年龄分布
在画像场景场景中,对不同年龄段的人群进行计数是一个常见的操作,如何使用Clickhouse快速的计算出人群的年龄分布情况呢?
1625 1
Clickhouse在画像场景如何快速计算人群的年龄分布
|
存储 SQL JSON
ClickHouse:抓住你的每一个目标用户,人群圈选业务的大杀器
随着数据时代的发展,各行各业数据平台的体量越来越大,用户个性化运营的诉求也越来越突出,用户标签系统,做为个性化千人千面运营的基础服务,应运而生。如今,几乎所有行业(如互联网、游戏、教育等)都有实时精准营销的需求。针对复杂条件过滤的场景,ClickHouse对多条件筛选流程做出优化,扫描的数据量更小,性能也较ES而言更高效。
6130 0
ClickHouse:抓住你的每一个目标用户,人群圈选业务的大杀器
|
2月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
2天前
|
SQL Unix OLAP
ClickHouse安装教程:开启你的列式数据库之旅
ClickHouse 是一个高性能的列式数据库管理系统,适用于在线分析处理(OLAP)。本文介绍了 ClickHouse 的基本使用步骤,包括下载二进制文件、安装应用、启动服务器和客户端、创建表、插入数据以及查询新表。还提到了图形客户端 DBeaver 的使用,使操作更加直观。通过这些步骤,用户可以快速上手并利用 ClickHouse 的强大性能进行数据分析。
14 4
下一篇
DataWorks