Final migration report · 2026-08-24

Langfuse open-design
数据迁移最终报告

Langfuse Cloud 数据经 R2 安全快照迁移至 self-hosted Langfuse。固定迁移范围内的数据导入、缺口修复与最终验证均已完成。

迁移完成,最终验证通过 Cloud → R2 → Self-hosted 报告时间均为北京时间
Traces
2,312,866
迁移范围内的唯一 Trace
Observations
49,747,793
Span / Event / Generation 等观测记录
源数据逻辑体积
903.8 GB
R2 压缩后 141.5 GB
总执行时间
19天 10小时
2026-08-05 00:54 至 08-24 11:49

迁移范围

源项目和目标项目固定;未跨项目、未扩大时间范围

数据覆盖时间

开始
2026-05-01 08:00:00
结束
2026-08-05 00:43:00
覆盖时长
95 天 16 小时 43 分钟
迁移路径
Langfuse Cloud → Cloudflare R2 → Self-hosted Langfuse

业务对象

49.75 M

观测记录,归属于 2.31 M 条 Trace;另迁移 Scores、Datasets、Dataset Items 与 Runs。

数据量汇总

十进制单位:1 GB = 10⁹ bytes

传输与存储体积

压缩比 / 体积下降6.39× / 84.3%

已验证业务对象

唯一 Trace2,312,866
Observation 记录49,747,793
Scores(已迁移 / 源清单)6,141 / 6,362
Datasets3
Dataset Items564
Dataset Runs / Run Items1 / 3

迁移过程

阶段存在约 10 小时并行,因此阶段耗时之和大于总墙钟时间

数据快照
从 Cloud 读取固定时间范围,压缩写入 R2;逐对象记录数量、大小与 SHA-256,支持断点续传。
6天 20小时08-05 00:54 → 08-11 21:42
全量导入
从 R2 流式写入 self-hosted Langfuse;使用稳定 ID 映射、持久化进度与失败后安全恢复。
7天 12小时08-11 11:01 → 08-18 23:20
缺口审计与补齐
发现目标端曾因 ClickHouse 磁盘耗尽丢弃异步任务;精确识别并仅重放确认缺失的 4,517,839 条记录。
2天 15小时08-18 23:20 → 08-21 14:39
最终验证
核验 Observation 持久化、Score 完整字段、Dataset 资源、时间边界样本、幂等性与源快照闭合。
2天 21小时08-21 14:39 → 08-24 11:49

迁移验证结果

完成判定不依赖“请求已接收”,而依赖目标端可读、可核对的最终状态

导入范围完整

通过
49,747,793 / 49,747,793

全部导出记录均进入完成态,无待处理数据、无未决写入。

export/manifest.json + import/stream_checkpoint.json

已识别缺口全部补齐

通过
4,517,839 / 4,517,839

生产 ClickHouse 最终查询:全部可见;0 条仅原始行、0 条缺失、0 条未知、0 个查询错误。

post-replay-verification/disposition.json

字段与关联关系

通过
2 轮 · 381 条 · 28 Traces

对固定边界样本核验 ID、Trace、Parent、时间戳、类型与源 metadata;差异 0,验证过程写入 0。

final-audit/t0_overlap_report.json

Scores 与 Dataset 资源

通过
6,141 Scores · 571 Resources

逐条读取并进行语义核验:0 待确认、0 缺口、0 字段不一致;571 个 Dataset 相关资源全部可读。

score_repair_verify_report.json + resource_verify_report.json

重试与重复写入安全

通过
23,296 / 23,296 唯一请求

补发目标 ID 唯一、请求指纹唯一、待处理 0;一次可恢复失败后从安全进度继续并正常结束。

final-audit/observation_final_gates_report.json

最终完成门

通过
FINAL AUDIT PASSED

项目身份、Observation、Score、Dataset 资源、源快照边界、时间边界和幂等性全部闭合。

final-audit/final_eag_report.json · 2026-08-24 11:49:48

已登记边界

以下项目已明确处理方式,不是待执行任务

1
221 条 Score 未迁移

它们引用的 Trace 不在本次固定数据范围内。为避免制造错误关联,保留为明确的不支持项;其余 6,141 条全部通过核验。

2
52 条重复 Observation ID 按首个版本保留

源数据中出现同一 ID 对应多个业务版本。目标端单一 ID 无法同时表达多个版本,因此按时间顺序保留首个版本并留有审计记录。

3
部分 Score 审计属性无法由公开 API 还原

源创建时间以及 2 条人工标注的原作者身份无法由目标端公开 API 指定;Score 值、名称、类型、配置、注释和 metadata 已核验。

4
Cloud 的少量派生展示字段会动态变化

重复读取时对象身份和版本均稳定,变化仅发生在系统动态生成的附件/制品摘要字段。迁移以不可变 R2 快照为准,不代表数据缺失。

结论:固定范围内迁移完成

数据已从 Langfuse Cloud 安全转移到 self-hosted Langfuse;所有已识别的持久化缺口均已精确补齐,最终验证通过。当前没有迁移进程、待处理写入或需要继续补发的数据。

FINAL
VERIFIED