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

目录
相关文章
|
4月前
|
存储 分布式计算 Hadoop
ClickHouse(01)什么是ClickHouse,ClickHouse适用于什么场景
ClickHouse是一款高性能的列式存储OLAP数据库,由俄罗斯的Yandex公司开发,用于在线分析处理(OLAP)。它提供秒级大数据查询,适用于商业智能、广告流量等领域。ClickHouse速度快的原因包括列式存储、数据压缩、向量化执行和多线程分布式处理。然而,它不支持事务,不适合OLTP操作。相比Hadoop生态中的查询引擎,ClickHouse在大量数据查询上表现出色。一系列的文章详细介绍了ClickHouse的各个方面,包括安装、表引擎和使用场景。
213 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% 。
328 0
|
存储 搜索推荐 关系型数据库
55.【clickhouse】ClickHouse从入门到放弃-概念场景
【clickhouse】ClickHouse从入门到放弃-概念场景
55.【clickhouse】ClickHouse从入门到放弃-概念场景
|
消息中间件 SQL 搜索推荐
干货|从 ClickHouse 到 ByteHouse:实时数据分析场景下的优化实践
干货|从 ClickHouse 到 ByteHouse:实时数据分析场景下的优化实践
|
搜索推荐 BI OLAP
Clickhouse在画像场景如何快速计算人群的年龄分布
在画像场景场景中,对不同年龄段的人群进行计数是一个常见的操作,如何使用Clickhouse快速的计算出人群的年龄分布情况呢?
1571 1
Clickhouse在画像场景如何快速计算人群的年龄分布
|
存储 SQL JSON
ClickHouse:抓住你的每一个目标用户,人群圈选业务的大杀器
随着数据时代的发展,各行各业数据平台的体量越来越大,用户个性化运营的诉求也越来越突出,用户标签系统,做为个性化千人千面运营的基础服务,应运而生。如今,几乎所有行业(如互联网、游戏、教育等)都有实时精准营销的需求。针对复杂条件过滤的场景,ClickHouse对多条件筛选流程做出优化,扫描的数据量更小,性能也较ES而言更高效。
6035 0
ClickHouse:抓住你的每一个目标用户,人群圈选业务的大杀器
|
3月前
|
存储 关系型数据库 数据库
【DDIA笔记】【ch2】 数据模型和查询语言 -- 多对一和多对多
【6月更文挑战第7天】该文探讨数据模型,比较了“多对一”和“多对多”关系。通过使用ID而不是纯文本(如region_id代替"Greater Seattle Area"),可以实现统一、避免歧义、简化修改、支持本地化及优化搜索。在数据库设计中,需权衡冗余和范式。文档型数据库适合一对多但处理多对多复杂,若无Join,需应用程序处理。关系型数据库则通过外键和JOIN处理这些关系。文章还提及文档模型与70年代层次模型的相似性,层次模型以树形结构限制了多对多关系处理。为克服层次模型局限,发展出了关系模型和网状模型。
44 6
|
3月前
|
XML NoSQL 数据库
【DDIA笔记】【ch2】 数据模型和查询语言 -- 概念 + 数据模型
【6月更文挑战第5天】本文探讨了数据模型的分析,关注点包括数据元素、关系及不同类型的模型(关系、文档、图)与Schema模式。查询语言的考量涉及与数据模型的关联及声明式与命令式编程。数据模型从应用开发者到硬件工程师的各抽象层次中起着简化复杂性的关键作用,理想模型应具备简洁直观和可组合性。
29 2
|
3月前
|
SQL 人工智能 关系型数据库
【DDIA笔记】【ch2】 数据模型和查询语言 -- 文档模型中Schema的灵活性
【6月更文挑战第8天】网状模型是层次模型的扩展,允许节点有多重父节点,但导航复杂,需要预知数据库结构。关系模型将数据组织为元组和关系,强调声明式查询,解耦查询语句与执行路径,简化了访问并通过查询优化器提高效率。文档型数据库适合树形结构数据,提供弱模式灵活性,但在Join支持和访问局部性上不如关系型。关系型数据库通过外键和Join处理多对多关系,适合高度关联数据。文档型数据库的模式灵活性体现在schema-on-read,写入时不校验,读取时解析,牺牲性能换取灵活性。适用于不同类型或结构变化的数据场景。
37 0