Files
nexus/sreweekly/markdown/436/06-solving-large-logs-with-clickhouse-zh.md

24 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 用 ClickHouse 解决大规模日志问题
- **期号**: SRE Weekly Issue #436(2024-08-04)
- **作者**: Nathan Ostgard and Javier Schoijet — Embrace
- **链接**: https://embrace.io/blog/solving-large-logs-with-clickhouse/
## 简介
这些人想让自己的可观测性产品支持超过 128 字节的日志行,但他们的数据存储让这件事变得棘手。他们用布隆过滤器(bloom filter)和其他技术实现了可接受的性能。
## 正文
日志是软件可观测性三大支柱之一,也是 OpenTelemetry 的关键组成部分。日志数据蕴含着能帮助开发者理解应用行为、排查问题的关键洞察,因此高效地搜索日志的能力至关重要。开发者需要能够快速、准确地定位嵌入在日志中的有价值信息。
[Embrace](https://embrace.io/) 是一个移动应用可观测性平台,我们的系统每天要处理约 20 亿条日志。我们最近着手[提高客户可以发送给我们的日志数据量](https://embrace.io/blog/context-rich-mobile-logs/),同时提升针对这些更大日志进行搜索时的性能。
我们用 ClickHouse 作为日志数据库,我们想分享在优化系统以处理更大日志大小时学到的经验。在这篇文章中,我们将介绍:
- 我们日志系统的概览
- 用更大的数据量测试我们的摄取管道
- 编写更高效的查询
- 用跳跃索引(skip index)缩短查询时间
TL;DR:我们最初以为摄取可能是个问题,但测试之后,我们的系统能够处理增大的日志大小。我们将在后续文章中分享更多关于摄取管道的内容。在增大日志大小之后,通过重写查询以绕开 ClickHouse 当前的某个限制,并测试多种带布隆过滤器配置的跳跃索引,以找到性能与存储成本之间的最佳匹配,我们把最慢的查询从 60 秒改进到了 1-2 秒。