数据岗位面试题更新 2026-08-05

请列举 TDengine 常用的数据类型,并说明在实际场景中应如何为数据列挑选恰当的类型。

数据系统设计技术原理技术选型TDengine

考察说明

考查对 TDengine 数据类型体系的理解及表结构设计时的类型选择能力。

回答思路

  1. 【回答框架 1】TDengine 支持多种数据类型,包括数值型(如 INT、BIGINT、FLOAT、DOUBLE)、字符串型(如 BINARY、NCHAR)、时间戳类型(TIMESTAMP)、布尔型(BOOL),以及 JSON 等扩展类型。其中 BINARY 用于存 ASCII 字符串,NCHAR 用于 Unicode 文本,TIMESTAMP 是时间主键的常用类型。
  2. 【回答框架 2】选择类型时应遵循最小化存储空间和最大化查询效率的原则:整数类数据用 INT/BIGINT,带小数且精度要求高用 DOUBLE,简单状态标记用 BOOL,定长字符串可用 BINARY,需支持中文等多语言用 NCHAR,时间列优先用 TIMESTAMP 并注意精度(毫秒/微秒)与业务匹配。
  3. 【回答框架 3】在 TDengine 表设计中,第一列必须为 TIMESTAMP 主键,用于时间窗口聚合和降采样;标签(TAG)列建议用窄且重复度高的类型(如 INT、BINARY),子表数量大时更需控制标签数量和类型。
  4. 【回答框架 4】合理选择数据类型能减少存储占用、提升压缩率和查询性能;错误选择如将数值存为字符串,会导致空间膨胀且无法高效运算,需在建模阶段结合数据特征和查询模式规划。
  5. 【关键点 1】TDengine 支持数值、字符串、时间戳、布尔和 JSON 等类型,其中 TIMESTAMP 是必需的时间主键。
  6. 【关键点 2】数值数据按范围选 INT/BIGINT,浮点按精度选 DOUBLE,状态用 BOOL。
  7. 【关键点 3】字符串按内容选 BINARY(ASCII)或 NCHAR(Unicode),时间列用 TIMESTAMP 且对精度。
  8. 【关键点 4】标签列选择窄类型可提升多表聚合性能,减少元数据开销。
  9. 【关键点 5】类型选择需兼顾存储、查询与压缩,避免用字符串存数值。
  10. 【易错点 1】不能将时间字段设为非 TIMESTAMP 类型,否则无法利用 TDengine 的时间窗口优化。
  11. 【易错点 2】为所有字符串列一律使用 NCHAR,会显著增加存储和开销,应优先 BINARY。
  12. 【易错点 3】标签类型过度使用高精度或大宽度(如 DOUBLE 代替 INT),会放大元数据开销。