Skip to content
清晨的一缕阳光
返回

S3 Tables 与 TDengine:具身智能数据存储架构选型

在具身智能(灵巧手、人形机器人)场景里,一台设备每秒会吐出大量数据:摄像头视频帧、关节角度、力矩、位姿……这些数据该怎么存?很多人第一反应是”丢进 S3”,但存进普通 S3 桶还是 S3 Tables,决策完全不同。本文从一次真实的选型对话出发,系统梳理从”数据分类误区”到”TDengine 与 S3 Tables 选型差异”,再到 “Avro/Parquet/Iceberg 底层原理”的完整认知链。


一、认知纠偏:S3 Tables 处理结构化数据,而非非结构化文件

1.1 最常踩的误区

很多人以为 “S3 Tables 是处理非结构化文件的”——恰恰相反:

存储类型处理的数据特点
普通 S3 桶非结构化文件(图片、视频、音频、PDF)只管理文件元数据,不关心内容
S3 Tables结构化表格数据(传感器读数、交易记录)基于 Iceberg 表格式管理 Schema、分区、快照,支持 SQL 直接查询

1.2 具身智能场景的分工示例

以灵巧手数据为例,两种存储各司其职:

1.3 S3 Tables 核心 API

S3 Tables 提供创建表桶(Table Bucket)、命名空间(Namespace)、Iceberg 表的能力。创建表时用 JSON Schema 定义字段(如 timestamp、device_id、joint_1_angle 等),之后可以:

一句话:S3 Tables 把”对象存储”升级成了”能查 SQL 的表格数据湖”,底层格式是开源的 Iceberg + Parquet。


二、核心架构辨析:为什么 TDengine 替代不了 S3 Tables?

2.1 核心差异:数据生命周期的不同阶段

两者并非替代关系,而是互补关系,分别服务数据生命周期的不同阶段:

维度TDengine(时序数据库)S3 Tables(数据湖)
服务阶段热数据(0~30 天)冷数据(30 天 ~ 永久)
核心能力毫秒级写入 + 查询 + 实时告警PB 级存储 + SQL 离线分析 + 时间旅行
存储成本SSD 本地盘,约 ¥2~5/GB/月对象存储,约 ¥0.1~0.3/GB/月
查询延迟毫秒级秒级 ~ 分钟级
典型查询”当前温度是否超阈值?""过去半年所有抓取动作成功率趋势”

2.2 三大关键原因

  1. 存储成本差 10~50 倍:TDengine 全存本地 SSD,成本高;S3 Tables 存对象存储,成本极低,适合海量历史数据。
  2. 分析场景不同:TDengine 擅长短时间窗口实时监控;S3 Tables 擅长跨年趋势分析、复杂多维分析(多表 JOIN、窗口函数)。
  3. 数据生态不同:TDengine 数据锁在专有引擎中;S3 Tables 以 Parquet 开放格式存储,PyTorch / Pandas / DuckDB 可直接读取,天然适配 AI 训练管线。

2.3 标准架构

灵巧手传感器数据
    │
    ▼
TDengine(热数据:实时监控 / 告警 / 仪表盘)
    │ 定期归档
    ▼
S3 Tables(冷数据:离线分析 / 模型训练 / 报表)

3.1 压缩机制与存储架构

3.3 成本模型差异


四、实时性验证:为什么 S3 Tables 不适合实时监控/告警?

4.1 Parquet 文件格式的物理限制

  1. 为批量扫描设计:每次查询需解析 Footer、读取 Row Group 索引、解码压缩列,单次查询延迟在秒级,无法做到亚毫秒级点查询。
  2. 对象存储网络延迟:S3/RustFS 每次读取需经过网络协议栈,单次 GET 请求 RTT 在几十毫秒级别。
  3. 数据可见性延迟:S3 Tables 自动 Compaction 约每 3 分钟执行一次,新写入数据需等待合并后才能被高效查询。
  4. 查询引擎启动开销:Athena/Trino/Spark 每次查询需启动计划、请求元数据、调度节点、扫描文件,端到端延迟在秒级到分钟级。

4.2 正确架构

实时监控请交给 TDengine / Redis / Prometheus,S3 Tables 负责把历史数据存好、管好、分析好。 两者各司其职,而非二选一。


五、TDengine 归档能力:企业版自动 vs 社区版手动

5.1 企业版:原生支持自动归档

内置多级存储 + S3 归档功能,可实现热→温→冷数据自动分层,冷数据超期后自动归档至 S3。

5.2 社区版:需手动实现

5.3 关键对比:TDengine S3 归档 vs S3 Tables

维度TDengine S3 归档S3 Tables(Iceberg)
归档格式TDengine 专有二进制格式Parquet/ORC/Avro(开放格式)
查询方式通过 TDengine 引擎查询通过 Spark/Trino/Athena 等引擎查询
数据开放性数据锁在 TDengine 引擎中任何工具可直接读取 Parquet 文件
适用场景低频历史查询、合规审计离线分析、AI 训练、跨引擎共享

六、底层格式详解:Avro、Parquet 与 Iceberg

6.1 Apache Avro:行式存储,适合流式写入

6.2 Apache Parquet:列式存储,适合离线分析

6.3 Apache Iceberg:表格式标准,管理元数据

6.4 三者关系总结

维度AvroParquetIceberg
本质行式存储格式列式存储格式表格式标准(元数据管理层)
核心优势写入快、Schema 演进查询快、高压缩比ACID、时间旅行、分区演进
与 Iceberg 关系可作为 Iceberg 的数据文件格式Iceberg 默认推荐的数据文件格式—

一句话总结:Avro 和 Parquet 是”砖”(数据存储格式),Iceberg 是”建筑图纸”(元数据管理标准)。Iceberg 用 Avro 格式存元数据(Manifest List/File),用 Parquet 格式存业务数据(Data File),三者配合构成完整的数据湖架构。


总结:具身智能数据存储的最佳实践架构

回到开头的灵巧手场景,完整的存储架构应该是:

热数据(0~30 天)    → TDengine   → 毫秒级实时监控、告警、仪表盘
冷数据(30 天 ~ 永久)→ S3 Tables → 跨年离线分析、模型训练、报表
文件数据(视频帧)    → 普通 S3 桶 → 非结构化二进制,仅管理元数据

三个关键决策点:

  1. 先分类,再选型:结构化表格数据进 S3 Tables,非结构化文件进普通 S3 桶,别混。
  2. 冷热分层,不二选一:TDengine 管热数据实时性,S3 Tables 管冷数据成本与开放性,两者互补。
  3. 认准开放格式:S3 Tables 底层的 Iceberg + Parquet 是开放标准,数据永远属于你,随时可被任何引擎读取。

一句话:实时监控找 TDengine,历史分析找 S3 Tables,视频文件进普通 S3——数据放对位置,架构就成功了一半。


分享这篇文章到:

上一篇文章
机器人数据采集全景:从示教到企业级数据生产平台
下一篇文章
多智能体 vs 人类协作:一场组织形态的对照研究(汇总篇)