Skip to content

表设计概览

合理的表设计直接影响写入吞吐、查询效率、存储成本以及后续运维复杂度。在 Datalayers 中,建议先明确数据模型、主查询路径和生命周期策略,再落到具体的表结构与参数配置。

设计入口

  • 时序场景设计:适用于监控指标、传感器数据、设备遥测等高吞吐时序数据,参见 时序存储使用指南
  • 日志与文本检索设计:适用于日志、事件、审计记录等文本密集型场景,参见 全文检索使用指南

创建表

使用 CREATE 语句在 Datalayers 中创建表。

表名

Datalayers 中,表名大小写敏感,例如 table1Table1 会被视为两个不同的表。表名最大长度为 63 个字节。

建议:

  • 使用能体现业务含义的英文名称,避免缩写过多
  • 对同类表保持统一命名风格,例如 sensor_metricstenant_logs
  • 避免仅通过大小写区分不同表,降低维护成本

数据类型

字段类型应与业务语义和查询模式保持一致:

  • 时间列使用 TIMESTAMP
  • 用作全文检索的正文列使用 STRING
  • 数值指标使用合适的整数或浮点类型,避免过度放大精度和存储成本
  • 用作分区或过滤条件的字段,应优先选择语义稳定、基数合适的类型

完整类型说明可参考 数据类型

通用设计原则

  • 先围绕主要查询路径设计表结构,而不是只按写入字段自然展开
  • 尽量保持字段职责单一,避免一个字段同时承担标识、过滤和展示等多种语义
  • 分区键应优先选择查询中常用、且能够较好分散写入压力的字段
  • 对存在生命周期要求的数据,提前规划 TTL、补录窗口和存储介质
  • 频繁变化的业务属性应与高频写入核心指标分开评估,必要时拆表

表属性

以下列出时序模型中常见的表属性及其适用含义:

  • TTL:控制数据文件保留时长。超过该时间的数据文件会被自动删除。默认值为 0,表示永不过期。适用于冷热分层和成本控制。
  • BACKFILL_TIME_WINDOW:控制允许补录历史数据的时间窗口。适用于存在补录或离线回填的场景。
  • UPDATE_MODE:控制重复数据写入时的处理方式。当前支持 OverwriteAppend。若以写入吞吐为优先,通常优先考虑 Append
  • ENABLE_LAST_CACHE:是否缓存最新点位值。适合需要频繁查询最新状态、最新指标的场景。
  • STORAGE_TYPE:指定持久化文件的存储介质。可结合部署方式与成本目标选择本地或对象存储。

关于表属性的完整说明,请参考 时序表引擎指南

相关文档