跳转到内容
Telemetry
浏览文档
概念与 SQL 模式更新于 2026年7月27日由 Telemetry 编辑团队和产品团队审核阅读约需 2 分钟

让编程智能体使用这篇文档

打开 Claude Code、Codex、Cursor 或其他编码代理的集中提示包,然后将其适应此处介绍的工作流程。

本页内容
  1. 选择耐用类型
  2. 了解缺失值
  3. 发展而不改变意义

事件数据类型与可空性

Telemetry 从结构化事件推断表架构。灵活的摄取消除了预先的迁移步骤,但有用的 SQL 仍然取决于稳定的字段含义和类型。

选择耐用类型

使用字符串表示标识符和受控类别,使用数字表示将要计算的值,使用布尔值表示真正的两种状态事实,使用时间戳表示时刻。

价值 推荐领域
持续时间 数值 duration_ms
标准化金额加上源货币
标识符 字符串,即使它只包含数字
结果 受控字符串,例如 successfailedtimeout
特征标志 当恰好有两个含义时为布尔值
活动时间 时区限定输入标准化为 timestamp_utc

不要在一个部署中发送 "842" 一段时间,而在另一部署中发送 842。请勿将 status 重复用于一项服务中的 HTTP 代码和另一项服务中的工作流类别。

了解缺失值

日志 API 在标准化过程中删除空值、空对象和空数组。因此,缺少字段意味着该行上没有存储任何值;它并不意味着零、假、空字符串或未知。

当缺席具有分析意义时,使用 IS NULL。仅当替换具有合理的商业意义时才使用 COALESCE

SELECT
  event_name,
  100.0 * SUM(CASE WHEN account_id IS NULL THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS missing_account_rate_pct
FROM product_events
GROUP BY event_name;

必填字段空率配方 添加了卷保护和生产者版本上下文。

发展而不改变意义

添加可为空的字段通常是兼容的。更改字段类型或重新定义现有类别则不然。当含义发生变化时,引入新字段或 schema_version 并有意迁移查询。

嵌套对象成为可查询的点状字段。保持每个嵌套路径稳定,并避免元素结构在事件之间发生变化的数组。

在扩大生产合同之前,请检查 图式演化事件架构设计查询嵌套JSON

相关产品功能

记录稳定的事件名称、类型明确的字段,以及经过隐私审核的上下文。

内容责任与技术参考

Telemetry 编辑团队负责维护本文;产品团队审核功能行为、示例和适用范围。

查看编辑规范