首页 热点资讯 义务教育 高等教育 出国留学 考研考公

clickhouse 优化实践,万级别QPS数据毫秒写入和亿级别数据秒级返回 |...

发布网友

我来回答

1个回答

热心网友

魔笛活动平台在处理用户行为数据时,面临高数据量与快速响应需求的挑战。每天收集的数据量达到5000万+,总数据量超过40亿+。为解决数据处理瓶颈问题,引入ClickHouse作为存储解决方案。ClickHouse能够实现秒级别处理数十亿数据,具备50MB-200MB/s的写入吞吐能力,每秒可处理约50W-200W条数据。

在实际应用中,作者遇到了数据写入与查询的优化问题。为了解决这些问题,作者对数据收集、写入、查询流程进行了优化。

写入优化

在写入优化中,作者发现原先的批量写入方式存在性能瓶颈。通过改进写入策略,调整批处理数据大小与并发数,减少文件数量,有效避免了数据处理过程中的“too many parts”错误。优化后的方案包括调整批处理数据大小,减少并发数,使用ClickHouse原生的JDBC方式或自定义Flink Sink写入数据,采用实时双缓冲队列进行数据存储和批量写入。

查询优化

查询优化方面,作者分析了现有索引配置与查询策略,发现主键索引和分区索引未能有效利用,导致查询效率低下。通过调整索引结构,将用户PIN作为一级索引,时间作为二级索引,填充空值字段,减少查询字段,利用多线程查询活动和奖励信息,分区存储数据,优化聚合和使用高级函数等手段,显著提升了查询性能。

性能提升

优化后,数据写入性能提升5000倍,吞吐量提升几十倍。查询性能从30秒提升至800-1200毫秒,约提升15-20倍。这些改进显著提高了系统处理能力和响应速度。

思考与展望

面对未来数据量的进一步增长,作者提出考虑分表策略,通过哈希分表将数据分散存储,以应对可能的性能瓶颈。此外,优化的写入和查询策略对于处理百亿乃至千亿级别数据量仍然有效,但需要根据具体情况调整分表策略与自定义摄入策略。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com