湖仓与存储

HealthKit 转 JSONL 还是 JSON:同步中断后,一种格式快照保得住,另一种颗粒无收

原标题: HealthKit 转 JSONL 还是 JSON:同步中断后,一种格式快照保得住,另一种颗粒无收

DevToData·2026/10/8 20:22:57🔗 原文

📋总体概括

作者以Apple HealthKit数据导出为场景做了一组对照实验:3,200条健康记录分别写成JSON数组和JSONL两种格式,再人为截断到100,000字节模拟iCloud同步中断。结果JSON数组解析报错、0条可恢复,JSONL仍能恢复1,355条记录,而两个文件仅差1个字节。文章揭示了结构差异的本质:JSON数组是一个整体文档,必须等右括号完整才有效;JSONL逐行独立有效,可增量读取。这对需要可靠性快照的移动端数据持久化是很有价值的工程启示。

⚡关键信息

  • ▸实验基于3,200条Apple Health记录:400天×8个指标,分别以JSON数组和JSONL两种格式写入磁盘
  • ▸两个文件均被截断到100,000字节以模拟中断的iCloud同步,测试时间标注为2026-10-08
  • ▸结果差异悬殊:JSON数组解析失败、可恢复0条;JSONL恢复出1,355条记录
  • ▸两个文件体积仅相差1个字节,差异完全来自结构而非内容或体积
  • ▸原理:JSON数组须等右括号才算完整文档,JSONL每行独立有效,读取器可保留所有已完成的行

🔥犀利点评

这是被很多人忽视的朴素工程真相:格式的抗损性差异在灾难发生时才显现,且代价可能不可接受。仅1个字节之差,一边全军覆没、一边救回四成记录——这不是性能优化问题,而是数据 durability 的架构选择题。任何把健康、日志、埋点这类流式记录存成单个大JSON数组的团队,都该重新审视自己的快照策略。作者用极小成本的实验讲清了大道理,比堆砌术语的论文更有传播力。

本文由本站自动聚合,以下为原始来源:前往 DevToData 阅读全文 →