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

目录
相关文章
|
6天前
|
存储 分布式计算 Hadoop
ClickHouse(01)什么是ClickHouse,ClickHouse适用于什么场景
ClickHouse是一款高性能的列式存储OLAP数据库,由俄罗斯的Yandex公司开发,用于在线分析处理(OLAP)。它提供秒级大数据查询,适用于商业智能、广告流量等领域。ClickHouse速度快的原因包括列式存储、数据压缩、向量化执行和多线程分布式处理。然而,它不支持事务,不适合OLTP操作。相比Hadoop生态中的查询引擎,ClickHouse在大量数据查询上表现出色。一系列的文章详细介绍了ClickHouse的各个方面,包括安装、表引擎和使用场景。
60 0
ClickHouse(01)什么是ClickHouse,ClickHouse适用于什么场景
|
消息中间件 SQL 搜索推荐
干货|从 ClickHouse 到 ByteHouse:实时数据分析场景下的优化实践
干货|从 ClickHouse 到 ByteHouse:实时数据分析场景下的优化实践
|
存储 搜索推荐 关系型数据库
55.【clickhouse】ClickHouse从入门到放弃-概念场景
【clickhouse】ClickHouse从入门到放弃-概念场景
55.【clickhouse】ClickHouse从入门到放弃-概念场景
|
搜索推荐 BI OLAP
Clickhouse在画像场景如何快速计算人群的年龄分布
在画像场景场景中,对不同年龄段的人群进行计数是一个常见的操作,如何使用Clickhouse快速的计算出人群的年龄分布情况呢?
1432 1
Clickhouse在画像场景如何快速计算人群的年龄分布
|
1天前
|
关系型数据库 MySQL 数据库
ClickHouse(07)ClickHouse数据库引擎解析
ClickHouse支持多种数据库引擎,包括Atomic(默认)、MySQL、MaterializeMySQL、Lazy、PostgreSQL、MaterializedPostgreSQL。Atomic提供非阻塞的表操作和原子的表交换,有UUID标识和延迟删除功能。MySQL引擎允许与远程MySQL服务器交互,支持INSERT和SELECT,不支持RENAME操作。PostgreSQL引擎类似,可与远程PostgreSQL服务进行读写操作。SQLite引擎用于连接SQLite数据库。实验性引擎如MaterializeMySQL和MaterializedPostgreSQL用于实现实时数据同步。
26 5
|
4天前
|
消息中间件 Java Kafka
实时计算 Flink版产品使用合集之可以将数据写入 ClickHouse 数据库中吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
16 1
|
6天前
|
存储 安全 Java
Clickhouse数据库应用
Clickhouse数据库应用
|
6天前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
|
8月前
|
SQL 分布式计算 测试技术
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris:有赞业务场景下性能测试与迁移验证
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris 迁移实践:有赞查询提速近 10 倍,OLAP 分析更实时高效!
从 Clickhouse 到阿里云数据库 SelectDB 版内核 Apache Doris:有赞业务场景下性能测试与迁移验证
|
10月前
|
存储 消息中间件 弹性计算
统一观测丨借助 Prometheus 监控 ClickHouse 数据库
统一观测丨借助 Prometheus 监控 ClickHouse 数据库
统一观测丨借助 Prometheus 监控 ClickHouse 数据库

热门文章

最新文章