B站用户行为数据分析架构演进与ClickHouse优化实践
1. 项目背景与核心挑战在当今互联网产品运营中用户行为数据分析已成为驱动业务决策的关键引擎。作为国内领先的年轻人文化社区B站面临着海量用户行为数据处理的严峻挑战每天产生数千亿条行为事件数据增量超过10TB传统的大数据处理架构已无法满足实时分析和复杂查询的需求。1.1 传统架构的瓶颈早期B站采用Spark批处理方案进行用户行为分析这种架构存在三个致命缺陷响应延迟高简单事件分析需要3分钟以上复杂分析如漏斗计算耗时超过30分钟资源利用率低固定资源配置无法适应查询复杂度变化常出现资源浪费或不足并发能力弱YARN资源调度机制导致高并发查询时产生严重排队现象1.2 ClickHouse的破局优势2020年技术团队引入ClickHouse列式数据库后性能指标获得质的飞跃查询响应提升98%90%事件分析在5秒内返回漏斗分析30秒内完成实时分析能力支持当天行为数据的即时查询周活跃用户增长300%性能改善直接带来产品使用率的显著提升但第一代ClickHouse方案也暴露出新问题千亿级明细数据存储消耗过大集群存储利用率长期低于10%实时数据处理链路复杂且维护成本高昂。2. 架构演进与核心技术方案2.1 三代技术架构演进路径2.1.1 第一代Spark批处理架构2019-2020graph LR A[用户行为日志] -- B[Spark批处理] B -- C[预聚合模型] C -- D[前端展示]痛点模型固化、资源僵化、响应迟缓2.1.2 第二代ClickHouse明细方案2020-2021graph LR A[Kafka日志流] -- B[Flink实时处理] B -- C[ClickHouse明细存储] C -- D[直接查询分析]突破实时性提升但存储压力巨大2.1.3 第三代IcebergClickHouse混合架构2021-至今graph LR A[原始日志] -- B[Iceberg聚合模型] B -- C[ClickHouse加速层] C -- D[多维分析]创新存储压缩90%查询性能再提升60%2.2 核心技术创新点2.2.1 通用流量聚合模型采用公有参数私有参数的混合存储方案私有参数使用ArrayMap结构动态存储数据压缩率高达10:1千亿→百亿2.2.2 BulkLoad数据导入Spark生成ClickHouse格式的data part文件通过改造的FETCH语法从HDFS拉取数据最终演进为直连ClickHouse的DataReceive服务# 数据导入伪代码示例 def bulk_load(): spark_job generate_clickhouse_parts() upload_to_hdfs(spark_job.output) execute_sql(ALTER TABLE...FETCH PARTITION...)2.2.3 智能重平衡算法平衡度计算基于变异系数0-1范围两种平衡策略装箱算法追求极致均衡Best FitAVL树贪心算法最小迁移成本实现较优均衡3. 关键模块实现细节3.1 事件分析优化方案3.1.1 数据模型设计CREATE TABLE polaris_dwb_flow_ubt ( dt Date, buvid UInt64, event_id String, pub_params Map(String,String), priv_params Array(String), metrics Map(String,Float64) ) ENGINE ReplicatedReplacingMergeTree() PARTITION BY dt ORDER BY (buvid, event_id) SAMPLE BY murmurHash3_64(buvid)3.1.2 查询加速技巧利用SAMPLE BY实现高效抽样自定义UDF解析Map结构比原生函数快30%布隆过滤器加速Array/Map字段查询3.2 漏斗路径分析实现3.2.1 漏斗分析优化-- 优化后的下推查询示例 SELECT level, countMerge(uv) AS uv FROM cluster(default, SELECT windowFunnel(3600)(dt, event_idlogin, event_idpay ) AS level, countState() AS uv FROM local_table WHERE dt BETWEEN 2023-01-01 AND 2023-01-07 GROUP BY level ) GROUP BY level3.2.2 路径分析创新采用RoaringBitmap压缩用户集合桑基图生成算法优化干扰事件过滤路径补位拼接权重阈值裁剪3.3 人群圈选系统3.3.1 属性字典服务三级缓存架构内存缓存Guava CacheRedis集群自研RockDB存储雪花算法变种实现50万QPS编码能力3.3.2 标签计算示例-- 最近7天观看科技区且点赞的用户 WITH tech_viewers AS ( SELECT user_id FROM behavior_events WHERE eventview AND zonetech AND dt today() - 7 ), like_users AS ( SELECT user_id FROM behavior_events WHERE eventlike AND dt today() - 7 ) SELECT countDistinct(user_id) FROM tech_viewers WHERE hasAny(like_users, [user_id])4. 性能优化实战经验4.1 查询下推的三种境界基础下推使用distributed_group_by_no_mergeSELECT count() FROM distributed_table SETTINGS distributed_group_by_no_merge1高级下推clusterview组合SELECT sum(cnt) FROM cluster( default, view(SELECT count() AS cnt FROM local_table) )极致下推预计算最终聚合4.2 压缩算法选型对比算法类型压缩率写入性能查询性能适用场景LZ41x100%100%默认场景LZ4HC1.2x80%95%历史数据ZSTD(1)1.5x60%98%冷数据存储实践建议热数据用LZ4温数据用LZ4HC冷数据用ZSTD4.3 常见问题排查指南4.3.1 写入瓶颈问题症状Too many parts错误根因频繁小批量写入导致merge压力大解决方案增大批量写入规模使用BulkLoad替代JDBC调整merge策略4.3.2 查询超时问题症状Query timeout exceeded根因复杂查询未利用索引解决方案检查跳数索引使用情况添加SAMPLE BY子句考虑预聚合方案5. 实践心得与未来展望在实际落地过程中有三点关键经验值得分享存储计算权衡我们发现将千亿明细预聚合为百亿级模型后存储节省40%的同时查询性能反而提升60%这印证了在OLAP场景中适当的预计算是必要的这一原则。资源隔离策略通过为不同业务模块配置独立的资源队列我们成功将高峰期的查询失败率从15%降至0.5%特别是在大促期间效果显著。监控体系建设自研的ClickHouse监控系统包含200个指标实现了从硬件资源到查询性能的全方位监控平均故障定位时间从小时级缩短到分钟级。未来技术团队计划在三个方向继续突破ZOrder索引研发解决多维度查询的索引效率问题服务端日志分析扩展行为分析场景覆盖面实时数仓融合探索Hudi与ClickHouse的协同方案

相关新闻

Bring-up前的输入资料

Bring-up前的输入资料

Bring-up我们需要的RK3562 原理图、PCB 版本和参考设计差异DDR、PMIC、电源树和上电时序GPIO、复用引脚、上下拉和电平说明eMMC、SD、SPI NOR 等启动介质配置LCD、触摸、摄像头、音频、网络等外设型号Rockchip 对应 BSP、交叉编译工具链和烧录工具芯片、PMIC、PHY、屏幕等器件手…

2026/7/24 11:34:12 阅读更多 →
拓氪科技四大 AI 运营能力能否降低电商新店运营成本?

拓氪科技四大 AI 运营能力能否降低电商新店运营成本?

淘宝、天猫新商家入驻初期,普遍陷入单人单兵作战的经营困境。店铺运营涵盖商品上新、视觉制作、付费推广、数据复盘、竞品分析等全链条工作,多数新商家长期面临人手短缺、素材匮乏、行业经验不足、运营效率偏低四大核心难题。传统人工运营模式耗时耗力、…

2026/7/24 10:44:37 阅读更多 →
C++二叉树非递归遍历:前序、中序、后序的栈实现与工程实践

C++二叉树非递归遍历:前序、中序、后序的栈实现与工程实践

1. 项目概述:为什么二叉树遍历值得深究?在C的算法与数据结构世界里,二叉树是一个绕不开的经典模型。无论是面试中的高频考点,还是实际项目中(比如文件系统索引、表达式求值、游戏AI决策树)的底层支撑&#…

2026/7/23 11:24:06 阅读更多 →

最新新闻

UE5独立游戏开发:Pak文件热更新与Mod支持实战指南

UE5独立游戏开发:Pak文件热更新与Mod支持实战指南

1. 项目概述:为什么UE5独立游戏开发者必须掌握Pak文件如果你正在用虚幻引擎5(UE5)开发独立游戏,并且已经走到了需要更新内容或者考虑让玩家社区创造内容的阶段,那么“Pak文件”和“热更新”这两个词,绝对是…

2026/7/24 11:42:55 阅读更多 →
2026编码大模型技术解析与应用指南

2026编码大模型技术解析与应用指南

1. 2026主流编码大模型全景盘点:行业格局与核心能力解析 2026年的编码大模型市场已经形成了明显的分层格局。头部厂商通过持续的技术迭代和场景深耕,在代码生成质量、上下文理解能力和工具链整合方面建立了显著优势。从实际应用来看,当前主流…

2026/7/24 11:42:55 阅读更多 →
【桌面自动化 AI】 OpenClaw 实操教程,Windows/Mac 图形化安装完整流程(含安装包)

【桌面自动化 AI】 OpenClaw 实操教程,Windows/Mac 图形化安装完整流程(含安装包)

OpenClaw 本地智能体搭建实操|跨平台整合包可视化部署方案 适配系统 Windows10/11 64 位、macOS 12 及以上 工具当前版本:v2.7.9(虾壳云整合版本) 核心亮点 整套部署流程依托可视化界面完成,无需输入命令行代码&am…

2026/7/24 11:42:55 阅读更多 →
AI如何重塑学术写作:智能工具与论文写作新范式

AI如何重塑学术写作:智能工具与论文写作新范式

1. 项目概述:AI如何重塑学术写作体验 第一次听说"书匠策AI"这个工具时,我正在熬夜赶制一篇关于机器学习应用的课程论文。作为经历过无数次论文写作折磨的过来人,我深知学术写作中那些令人抓狂的痛点:选题方向模糊、文献…

2026/7/24 11:42:55 阅读更多 →
TAS5780M音频放大器:BTL/PBTL与闭环架构实战解析

TAS5780M音频放大器:BTL/PBTL与闭环架构实战解析

1. 从信号到声音:音频放大器的基础与TAS5780M的定位在任何一个追求声音品质的系统中,无论是你手中的蓝牙音箱、车里的多媒体主机,还是专业录音棚的监听设备,音频放大器都扮演着那个至关重要的“能量转换器”角色。它的任务很明确&…

2026/7/24 11:42:55 阅读更多 →
3D视觉技术:结构光与ToF原理及工业应用对比

3D视觉技术:结构光与ToF原理及工业应用对比

1. 3D视觉技术市场格局解析 在工业自动化、消费电子和智能驾驶等领域,3D视觉技术正经历爆发式增长。2023年全球3D相机市场规模已达48.7亿美元,预计到2028年将突破120亿美元。这个快速增长的市场中,结构光(Structured Light&#x…

2026/7/24 11:41:55 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻