Lobsters | 📄 原文链接 | 2026-10-12 收录

动态碎片化如何让 Logfire 查询快 1000 倍

来源:pydantic.dev — 2026-01-29

📋 概述

Pydantic 的 Logfire 把 OpenTelemetry 数据以 Parquet 存进对象存储,半结构化的 attributes 原本整列存成 JSON,而查询慢的真正原因是额外的 IO:下载大块 JSON 的数据量与启动延迟远超过 CPU 开销,单个多变属性还会让字典压缩与 zstd 失效。团队先做静态碎化,在写入时把手写的一小撮属性抽成强类型列,但覆盖范围有限、未碎化属性仍需整列扫描,内部列还会暴露给用户。动态碎化改为在写入与压缩时按实际数据自动把最常出现或最大的属性抽成强类型列,无需配置,也不再写出全 null 的列。

🔑 核心要点

💡 金句

查询 Logfire 里的数据马上就要快得惊人了——在某些场景下是 1000 倍以上。
← 返回 Lobsters 首页