Doris 画像标签存储实践

Doris:同步物化视图 物化视图是将预先计算(根据定义好的 SELECT 语句)好的数据集,存储在 Doris 中的一个特殊的表。物化视图的出现主要是为了满足用户,既能对原始明细数据的任意维度分析,也能快速的对固定维度进行分析查询。 阅读详情
AI摘要

本文介绍了五种用户画像存储方案,包括宽表存储、竖表存储、竖表加横表组合、ES标签对象存储及HBase关联存储、以及利用倒排表和bitmap进行高效人群筛选的方法。每种方案均有其特点,适用于不同场景。

根据画像标签的需求场景,我们常常将画像存储分为两部份,分别是:
  1. 画像基本信息的存储
  2. 用户画像人群的筛选需求的存储
常见画像标签存储方式:
  1. 根据类目创建宽表,或者根据更新的频率创建宽表
  2. 创建竖表-每个用户+每个标签=一条记录
  3. 竖表+横表=》分开计算,定时聚合
  4. ES 标签对象存储,rowKey为user_id,HBASE存储用户明细,通过user_id关联
  5. 倒排表,标签-》多个用户Id,bitmap方案

一、根据类目创建宽表,或者根据更新的频率创建宽表

1. 这是最容易想到的方式,同时也是最直观的方式,比如有基本信息表,兴趣爱好表
user_id 姓名 性别
1 老五 男
2 老四 女
user_id 购房意向 意向户型
1 高 50-100m
2 低 200-300m
优点:
  1. 够直观,简单,结构清晰,数据量可控
缺点:
  1. 标签的增加需要修改表结构 — 只要能确定标签的范围,那可以省略这个问题
  2. 存储一定冗余,会存在有些字段无值的场景
  3. 计算不友好,在同一表中的各标签值计算时间和规则是不相同的,这些标签值的来源常常来源于各实时计算,或离线计算程序,或者是有的每天计算一次,比如日活跃,有的是一周计算一次,比如周活跃
  4. 画像信息存储只是过程,最终的需求是要能够任意维度标签的快速查询,而在二维性数据库中,你无法对所有字段建立索引,人群筛选场景下查询效率将会极低

二、创建竖表-每个用户+每个标签=一条记录

  1. 这种方式应用于标签值不固定的场景,可以理解为宽表的空间换时间方案
user_id 标签类型 标签值
1 性别 男
1 年龄 15
2 性别 女
优点:
  1. 易于扩展,适用于标签不固定场景
  2. 存储无冗余,只存有值的标签项
  3. 计算友好,每一行记录都是一个单独的计算项
  4. 可以对标签类型+标签值建立联合索引,任意维度查询的场景性能会比较高
缺点:
  1. 数据量巨大,100万用户,每个用户100个标签,将会产生1亿条数据
  2. 查询不友好,比如我要统计性别=男,年龄=15的人,需要这样写:
    select user_id from user_tags where (tag='sex' and tag_value='男') and (tag='age' and tag_value='15')

三、竖表+横表=》分开计算,定时聚合

  1. 通过竖表完成各统计项的计算,以及任意标签维度查询
  2. 定时将这些离散的数据汇聚到宽表中,用于用户画像基本信息的展示
  3. 结合,第一种和第二种,能够满足,用户画像自定义维度的查询,也能够满足用户标签信息的展示
  4. 除了数据量问题,没有其他问题
user_id 标签类型 标签值
1 性别 男
1 年龄 15
2 性别 女

定义汇聚为:

user_id 姓名 性别
1 老五 男
2 老四 女

四、ES 标签对象存储,rowKey为user_id,HBASE存储用户明细,通过user_id关联

  1. 早期的大数据画像存储方案
  2. es的每一条记录为一个文档,同时也为一个用户的画像信息,rowKey为user_id
  3. 人群筛选时,通过es查询出匹配的user_id集合,然后去Hbase中查询这批集合的明细,能够实现秒级的响应

五、倒排表,标签-》多个用户Id,bitmap方案

  1. ES搜索之所以快,功劳在于他的倒排索引上,所以又有了以下方案:
    常见的描述是用户身上有哪些属性,而倒排索引是这个属性有哪些用户拥有
标签类型 标签值 user_ids
性别 男 1,2
性别 发 3
doris:自增列 阅读详情

相关推荐

从日志分析到用户画像:实战解析Apache Doris三种数据模型在真实业务中的落地姿势

本文深入解析Apache Doris的三种核心数据模型——Duplicate、Aggregate和Unique在日志分析与用户画像中的实战应用。通过电商大促等真实案例,展示如何利用Duplicate模型高效处理原始日志,Aggregate模型实现实时行为聚合,以及Unique模型确保数据唯一性,帮助企业在海量数据场景下提升查询性能与业务响应速度。

weixin_29292431的博客 210

从日志分析到用户画像:手把手教你用Doris 2.x的三种数据模型搞定实时数仓

本文详细介绍了如何利用Doris 2.x的三种数据模型(Duplicate、Unique和Aggregate)构建实时数仓,从日志分析到用户画像的全流程实践。通过电商用户行为分析案例,展示如何高效处理原始日志、实时更新用户维表及预计算聚合指标,助力企业快速获取用户行为洞察,提升数据分析效率。

weixin_30482181的博客 358

基于 Apache Doris 的用户画像数据模型设计方案

blood_pressure_high` SMALLINT REPLACE_IF_NOT_NULL, -- 替换式聚合。`is_high_blood_pressure` BOOLEAN REPLACE, -- 是否高血压,根据指标计算得出。:支持按时间分区,便于数据管理(如淘汰旧数据)和查询时剪枝。

software_0215的专栏 1385

基于 Apache Doris 构建小额信贷 App 实时用户标签体系:从画像到风控的落地实践

基于 Apache Doris 的小额信贷实时用户标签体系实践 本文介绍了一套基于 Apache Doris 构建的小额信贷 App 实时用户标签体系设计方案,涵盖从用户画像到风控决策的全链路实践。文章分析了小额信贷业务对实时标签的四大需求特点,将标签体系划分为用户基础标签、App行为标签、实时风控标签和贷中贷后标签四类,并给出了统一的数据架构方案。核心提出两种实现路径:对于运营和画像场景推荐 Kafka + Doris Routine Load 的准实时方案;对于实时风控场景建议引入 Flink 进行流式

Donald的博客 251

Doris实战——众安保险人群圈选提速

Doris实战——众安保险人群圈选提速

爱吃辣条的博客 1874

【Doris】Doris在用户画像人群业务的应用

讲座分为三部分内容:用户画像群体服务的业务场景技术问题、思路与相关业界方案实现情况基于Doris的技术实现1 用户画像群体服务的业务场景百度的用户画像是面向百度全产品线的基础数据和服务平台。我们会为包括百度凤巢、搜索、Feed等百度各条产品线提供服务,每天有着千亿级的离/在线的数据调用规模。随着业务的发展,我们逐步形成了用户理解全流程的数据和服务,覆盖从多元数据的采集、大规模的数据挖掘、高性能的数据服务以及面向业务场景的解决方案。在我们的工作中,用户群体分析和人群圈选是比较常见的需求,包括群体分析、业务报表

m0_54252387的博客 1709

用户画像基于 Apache Doris 的数据模型设计与实践

货拉拉基于Apache Doris构建高效用户画像系统,支撑全球14个市场、1400万月活用户的精细化运营。该系统采用分层架构设计,通过API层与计算引擎层协同工作,实现人群计算、标签聚合与圈选服务。核心创新包括:1)采用Doris替代原有Impala架构,查询效率提升30倍,数据导入速度提高3倍;2)设计标签宽表、高表及人群位图表三类存储模型,支持异构数据高效查询;3)优化DSL与SQL转换机制,减少60%冗余读取,内存开销降低30-50%。未来将持续优化系统性能,深化标签管理与分析能力。

wjianwei666的专栏 957

用户画像系统标签存储:从选型到调优的完整实战指南

用户画像系统依赖海量标签数据支撑精准运营,而标签存储性能直接影响查询体验。当标签规模达到千万级,如何让点查毫秒级返回、圈选秒级完成,需要从数据库选型到表结构设计的系统化思考。工程实践通常采用Redis处理实时标签,以ClickHouse、Doris等OLAP引擎承载核心标签,配合位图索引和字典编码加速过滤。标签宽表与键值表的分界、ID-Mapping统一口径、离线批处理与实时流加工结合,保障数据时效与一致性。尤其要注意避免将字符串标签存为JSON、避免高频UPDATE导致存储膨胀等常见坑。围绕标签存储的分层

weixin_29895109的博客 270

用户画像标签数据存储方案:从宽表到KV与倒排索引的选型指南

用户画像系统的核心竞争力往往体现在标签数据存储层能否支撑海量标签、多口径更新与实时圈选。标签建模需先分域分层,事实标签、规则标签、模型标签和策略标签对存储的读写模式要求各异,ID-Mapping则是数据统一的地基。在存储选型中,宽表适合离线统计,KV擅长在线实时读取,倒排索引则利于条件圈选,混合存储架构承担数据治理、索引同步与缓存加速三线并行。标签更新链路需结合离线全量计算与增量策略,并通过一致性校验、覆盖率监控、压测清单等手段保障质量。本文从标签存储的通用问题切入,梳理字段设计、引擎对比、更新策略和典型翻

weixin_31100517的博客 279

Qualcomm平台下基于QSEE的指纹识别方案移植之四TA移植

本文只介绍TA移植的过程,不做技术分析,关于TA开发另做记录。 一、TA介绍 TA,Trusted application 可信应用,是运行于QSEE中的可执行程序。 指纹TA文件如下,形式一般是 xxx.mbn; xxx.b0 ~ xxx.b6, xxx.flist, xxx.mdt; xxx.mbn 可以理解为其它几个文件的集合,签名的时候用的就是这个文件,签完名之后,有对应的工具将它...

梦路遥 7549

用户行为路径可视化_桑葚图(Sankey)

桑基图对用户行为路径可视化的blog学习笔记。

徐思孟的博客 3856

MATLAB自动驾驶(1)——预构建场景库

MATLAB自动驾驶(1)——预构建场景库

Ucicorn Gundam的博客 3267

windows中如何将已安装的nodejs高版本降级为低版本

第一步:先清空本地安装的node.js版本 1.按健win+R弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑左面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径 2.找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除 3.为了彻底删除之前安装的node.js,鼠标点击电脑左面最左下角的win窗口图标弹出,输入“控制面板”再点击回车键进入,进入控制面板后,找到所安装的node.js并

weixin_44582077的博客 9万+

JNI的本质解析:Android Framework视角下的Java-Native衔接机制

本文基于Android 14源码深入分析JNI机制,从Android Framework视角解析Java-Native衔接原理。主要内容包括:JNI的双轨制注册机制(静态与动态注册),核心数据结构(JNIEnv与JavaVM)的实现原理,以及完整的调用链路剖析。文章通过MessageQueue的JNI实现案例,展示Android Framework如何利用JNI实现Java层与Native层的高效交互,并提供了性能优化建议。分析表明,JNI作为Android系统架构的关键桥梁,其设计充分考虑了性能、安全性

保持专注,保持热爱 1211

Uncaught ReferenceError: process is not defined

这个错误 Uncaught ReferenceError: process is not defined 通常出现在浏览器环境中,因为 process 是 Node.js 环境的内置对象,并不是浏览器原生支持的。因此,浏览器无法识别 process,导致该错误。在App.vue中加上以下代码就能够有效解决。

猿小白的博客 1740

完整功能-《网络安全创新实践》:设计并实现一种基于Npcap的网络嗅探器(直接能运行cpp的MFC代码+实验报告)

《网络安全创新实践》:设计并实现一种基于Npcap的网络嗅探器。(直接能跑的MFC)监听所有数据包,以及监听指定IP地址的数据包;(2)能够显示完整的IP数据包首部信息,例如:版本、首部长度、数据包长度、数据包类型(协议字段)、TTL、源IP地址、目的IP地址等;(3)能够显示完整的TCP报文段信息,例如:源端口、目的端口、序号、确认号、数据部分等;(4)能够自动检测SQL注入攻击等Web攻击行为;(5)能够将监听到的数据包信息保存到文件中,以及从文件中读取并显示数据包信息;(6)具有图形化操作界面。

weixin_46531010的博客 661

使用STARTER V5.6软件将项目文件下载到S120驱动器控制单元CF卡中的具体方法演示

使用STARTER V5.6软件将项目文件下载到S120驱动器控制单元CF卡中的具体方法演示

Robot_PLC_HMI_Automation 1914

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 数据开放平台
下一篇: 第几次行为数据清洗
食得落
博客等级 码龄15年 69粉丝 37原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值