Bilibili用户行为分析:ClickHouse实践与技术细节
版权申诉
143 浏览量
更新于2024-07-05
收藏 2.57MB PDF 举报
"该文档是关于Bilibili(B站)使用ClickHouse进行用户行为分析的实践分享。ClickHouse在B站的OLAP平台上扮演了重要角色,处理着上百台节点、每天千亿级别的数据摄入,并统一了之前使用的Kylin和Druid引擎。主要应用场景包括用户行为分析、标签人群定位以及监控数据分析等。文档还涵盖了数据摄入方式、表设计策略以及ClickHouse的性能优化技巧。"
在Bilibili的用户行为分析中,ClickHouse作为一个强大的列式数据库系统,被用来应对大数据量的实时分析挑战。其OLAP平台由上百台服务器组成,分别配备SSD和HDD存储,每天处理的数据量达到千亿级别,涵盖数千种不同的用户事件类型。为了满足实时接入和任意维度的查询需求,ClickHouse提供了快速的响应能力,能够处理每天上千个查询,支持对任意事件的分析。
在数据摄入方面,B站采用了Flink作为实时数据处理工具,设置BatchSize为500000,并确保在20秒内完成写入。同时,设置了ConnectionTimeout和SocketTimeout以确保数据传输的稳定性。
在表的设计上,ClickHouse利用了各种编码和压缩技术来优化存储和查询效率。例如,`buvid`字段使用ZSTD(15)压缩,虽然会消耗更多CPU,但能显著降低存储空间。对于`page_type`这类连续整型数据,应用Delta(4)编码和LZ4HC(6)压缩,提高压缩效率。此外,`brand`字段使用LowCardinality(String)处理,降低了基数字段的存储开销。表结构还利用了分区(PARTITION BY)和排序(ORDER BY)策略,以及TTL(时间到活)设置,结合`storage_policy`和`use_minimalistic_part_header_in_zookeeper`参数,进一步优化了数据管理和查询性能。
Bilibili通过ClickHouse实现了一套高效的用户行为分析系统,充分利用了ClickHouse在大数据处理中的优势,如快速写入、实时查询和压缩优化,以满足高并发、大数据量的业务需求。这样的实践对于其他需要处理大规模用户行为数据的公司具有重要的参考价值。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2019-10-29 上传
2022-03-18 上传
2023-12-22 上传
2021-02-26 上传
2021-08-21 上传
Build前沿
- 粉丝: 1150
- 资源: 2379
最新资源
- Survey-Form:调查表->响应式Web设计项目-> freeCodeCamp
- OpenCubMan-开源
- 星·露·谷物雨 Python复刻
- CrudOracleMVC-VS2019:Visual Studio 2019中的Crud con Oracle bajo el patron MVC realizado
- 电脑桌面运用图标下载
- MATLAB用拟合出的代码绘图-VolcanicPlutonic:数据和源代码与Keller等人的论文“火山—古今的奇偶性和大陆壳的分化”有关
- Bitzy:充满史诗般的老板的复古游戏! 文森特·杰尼(Vincent Jenei)
- SaveWarpTool:在GoldSource和基于Source引擎的游戏中模拟“保存变形”故障的工具
- Machine-Learning-Python
- WS2812灯带驱动代码teszt.rar
- 用FPGA模拟VGA时序,PS_2总线的键盘接口VHDL源代码.7z
- Project-2-Book-Application:项目2-书本学
- kdb:kdb +教程和代码示例
- DecaRangingCustomerMP_source_code_rev3p05_vcxproj.zip
- c代码-出租车记价表
- tonganh-tonganh-OOLT.20202.20184040.TongNgocAnh