跳到主要内容

示例数据使用文档

本文档用于说明示例数据功能的用途、使用方式以及配置说明,帮助用户快速理解并正确使用该工具完成示例数据的生成、运行与清理。

1. 功能说明与用途

1.1 工具定位

示例数据功能是一个 基于 JSON 配置的数据生成工具,用于在 TDengine 与 IDMP 中 自动创建数据模型并生成时间序列数据

其核心思想是:

使用一份 JSON,完整描述一个业务场景的数据结构与数据行为。

1.2 主要功能

1.2.1 自动建模

  • 创建 TDengine 数据库
  • 创建超级表与子表
  • 创建 IDMP 元素模板
  • 创建属性模板
  • 构建元素树结构

1.2.2 自动生成示例数据

  • 按指定数量生成历史数据
  • 持续生成实时模拟数据
  • 支持批量写入与时间步进

1.2.3 数据清理

  • 一键删除示例相关的:
    • 元素
    • 元素模板
    • 属性模板
    • TDengine 数据库

1.3 典型使用场景

  • 产品 Demo 演示
  • PoC / 场景验证
  • 自动化测试
  • 性能测试
  • 培训与交付环境初始化

2. 使用方式说明

2.1 命令行方式运行

2.1.1 运行环境要求

组件要求
JavaJDK 8 及以上
TDengine已部署并可访问
IDMP已部署并可访问
JSON 配置文件示例数据描述文件

2.1.2 工具位置说明

在 TDasset Docker 容器中:

/app/tda-generator-command.jar

2.1.3 基本运行命令

2.1.3.1 根据 JSON 生成示例数据

java -jar tda-generator-command.jar -f init.json

2.1.3.2 清理示例数据

java -jar tda-generator-command.jar -f init.json -c

⚠️ 仅限测试环境使用

2.2 图形界面方式运行

在 IDMP 管理界面中,进入 示例数据 模块,选择或上传 JSON 配置文件,点击 loadunload 按钮完成操作。

3. 配置说明(JSON 配置文件)

3.1 JSON 整体结构

{
"info": {},
"TDasset": {},
"datasource": {},
"databases": [],
"templates": [],
"tree_root": {},
"trees": []
}

3.2 info - 示例数据场景信息说明

仅在 IDMP 示例数据界面展示。

{
"id": "smart_meters",
"name": "智能电表",
"description": "智能电表示例场景",
"file": "init.json",
"image": "smart_meters.jpg"
}
  • name: 场景名称,保持在示例数据列表中唯一;
  • description: 场景描述;
  • file: 保持与文件名称一致;

3.3 TDasset - IDMP 连接配置

仅在 命令行模式 下生效。

{
"url": "http://localhost:8010/api/v1",
"user": "admin",
"password": "123456"
}
  • url: IDMP 访问地址;
  • user: IDMP 用户名;
  • password: IDMP 登录密码;

3.4 datasource - TDengine 连接配置

{
"db": {
"host": "127.0.0.1",
"port": 6041,
"user": "root",
"password": "taosdata"
},
"max_active": 20,
"min_idle": 3,
"max_lifetime": 1800000,
"idle_timeout": 600000,
"keep_alive_time": 30000,
"connection_timeout": 30000,
"validation_timeout": 5000,
"validation_query": "SELECT 1"
}
  • db: TDengine 连接信息;
  • max_active: 连接池最大连接数;
  • min_idle: 连接池最小空闲连接数;
  • 其他参数请参考 TDengine JDBC 连接池配置说明。

3.5 databases - 数据库定义

{
"name": "idmp_sample_utility",
"drop": "yes",
"vgroups": 1,
"precision": "ms",
"replica": 1,
"duration": "10d",
"keep": 3650
}
  • name: 数据库名称;
  • drop: 是否删除已存在数据库,建议仅测试环境使用;
  • vgroups: 数据库中初始 vgroup 的数目;
  • precision: 时间精度,默认 ms;
  • replica: 副本数量,默认 1;
  • duration: 数据文件存储数据的时间跨度,默认 10d;
  • keep: 数据存储天数,默认 3650 天;
  • 其他参数请参考 TDengine 数据库创建说明;

3.6 templates - 元素模板配置(模型数据)

3.6.1 超级表模板(叶子节点)

{
"name": "智能电表",
"leaf": true,
"namingPattern": "${KEYWORD1}",
"keywordsDesc": {
"KEYWORD1": "child table name"
},
"location": {
"altitude": {
"min": -10985,
"max": 10000
},
"latitude": {
"min": -90,
"max": 90
},
"longitude": {
"min": -180,
"max": 180
}
},
"super_tables": [
{
"db": "idmp_sample_utility",
"name": "electricity_meters",
"start_timestamp": null,
"time_step": 600000,
"non_stop_mode": false,
"insert_rows": 1440,
"batch_insert_num": 500,
"insert_interval": 0,
"metrics": [
{
"name": "current",
"title": "电流",
"description": "电流信息",
"type": "Float",
"tdType": "metric",
"uomClass": "电流",
"uom": "A",
"displayDigits": 2,
"fun": "4*sin(x)+random(2)+4"
}
]
}
],
"tags": [
{
"name": "location",
"title": "地址",
"description": "地址信息",
"namingPattern": "${KEYWORD1}",
"type": "Varchar",
"length": 50,
"location": {
"altitude": {
"min": -10985,
"max": 10000
},
"latitude": {
"min": -90,
"max": 90
},
"longitude": {
"min": -180,
"max": 180
}
},
"tdType": "tag",
"tree": true
}
]
}
  • name: 模板名称,保持唯一;
  • leaf: 是否为叶子节点模板,false 表示路径模板;
  • namingPattern: 命名规则;
  • keywordsDesc: 命名关键字说明;
  • location: 元素位置属性范围配置;通过 altitude、latitude、longitude 三个字段配置;
  • super_tables: 超级表列表配置;
    • db: 所属数据库名称;
    • name: 超级表名称;
    • start_timestamp: 数据写入起始时间戳,null 表示以 4 天前时间开始;
    • time_step: 数据时间步进,单位毫秒;
    • non_stop_mode: no 固定数量数据生成,写满 insert_rows 后停止;yes 持续数据生成(实时模拟);
    • insert_rows: 需要写入的数据总行数;
    • batch_insert_num: 每批次写入数据行数;
    • insert_interval: 每批次写入间隔时间,单位毫秒,0 表示无间隔;
    • metrics: 元素指标列表配置;
      • name: 指标名称;
      • title: 指标标题;
      • description: 指标描述;
      • type: 指标数据类型,支持 Float、Double、Int、BigInt、Varchar 等 TDengine 支持的数据类型;
      • tdType: 数据类型,metric 表示指标,tag 表示标签;
      • uomClass: 单位类别;
      • uom: 单位名称;
      • displayDigits: 显示小数位数;
      • fun: 数据生成函数,支持基本数学函数与 random() 函数,x 表示时间变量;
    • tags: 元素标签列表配置,同指标类似;

3.6.2 路径模板(非叶子节点)

{
"name": "location-#LEVEL-#ID",
"level": 3,
"description": "这是树的路径模板信息",
"namingPattern": "${KEYWORD1}",
"keywordsDesc": {
"KEYWORD1": "name"
}
}
  • name: #LEVEL 由 level 控制创建路径模板数量,#ID 表示引用 info 配置中 id;
  • level: 路径模板层级数;
  • namingPattern: 命名规则;

3.7 tree_root - 元素树根节点

{
"tag_name": "location",
"value": "公共事业",
"visible": "true"
}
  • visible: 根节点是否可见;

3.8 trees - 元素树与子表生成(核心)

{
"template": "location-1-smart_meters",
"values": "北京",
"children": [
{
"template": "location-2-smart_meters",
"values": "海淀",
"children": [
{
"template": "智能电表",
"values": "em[1,5]"
}
]
}
]
}
  • template: 使用的模板名称;与 templates 中定义的模板名称保持一致;
  • values: 为模板中的命名关键字赋值;支持范围生成,如 em[1,5] 表示 em1 至 em5;
  • children: 子节点列表;

作用: - 构建元素树 - 自动创建子表 - 自动绑定 TAG 值

4. 使用建议

  • 一个 JSON 对应一个示例场景
  • 模板名称建议使用统一前缀
  • 持续写入请控制子表数量
  • 清理操作务必确认环境