
OLAP 高频场景题:用户画像系统怎么设计
用户画像系统核心是三件事:ID-Mapping 打通身份、标签分层存储(明细宽表 + 位图)、圈人查询用位图交并加速,存储选型按更新频率和查询模式拆给 Doris 与 CK。
共 12 篇文章

用户画像系统核心是三件事:ID-Mapping 打通身份、标签分层存储(明细宽表 + 位图)、圈人查询用位图交并加速,存储选型按更新频率和查询模式拆给 Doris 与 CK。

实时大屏设计核心是分层降载:Kafka 接流、Flink 做窗口预聚合、OLAP 存多粒度结果、缓存挡并发,让大屏查询只扫小数据量,秒级刷新生生不息。

OLAP 引擎按批组织存储,ClickHouse 攒批防 part 爆炸,Doris Stream Load 按批次生成 segment;导入调优核心是批大小、频率与上游幂等重试。

位图索引把低基数列的等值/集合查询转成位运算,Doris/StarRocks 还用它做精确去重加速;BloomFilter 用哈希概率结构做低成本存在性过滤,牺牲一点误判换 IO 大降。

OLAP 选型先定三个硬指标:数据量级与增速、查询并发与延迟要求、数据更新频率,再叠加 join 复杂度、团队运维能力和生态,用排除法收敛候选。

Kylin 核心思想是用空间换时间,按维度组合预计算 Cube 存 HBase,查询下压命中 Cuboid;实时引擎崛起后其重建模模式收缩到超大规模固定报表场景。

ClickHouse 单机性能极致、适合明细大宽表追加写,Doris 强在高并发、行级更新、多表 Join 与 MySQL 生态,选型核心是更新频率和并发模式。

Rollup 是表内按维度子集预聚合的物化视图,随基表同步更新;异步物化视图支持多表 join 与定时刷新,选型看是否需要跨表和刷新灵活性。

Doris 采用 FE 管元数据与查询规划、BE 管存储与执行的 MPP 架构,数据模型分明细、聚合、主键三种,选型核心看更新需求与查询模式。

物化视图在写入时触发转换写入目标表,Projection 是把不同排序或聚合的数据冗余存进 part 内部,查询自动路由,二者分别适合预聚合和多排序键场景。

ClickHouse 表引擎分 MergeTree、Log、集成、特殊四大类,核心选型逻辑是围绕 MergeTree 变体:去重用 Replacing、预聚合用 Aggregating、求和用 Summing。

ClickHouse 快在四个层面:列式存储减少 IO、稀疏主键索引快速定位 granule、向量化执行榨干 CPU、MergeTree 后台合并保证写入吞吐。