写入操作

时序时空数据库 TSDB

  • 功能发布记录
  • 产品描述
    • 名词解释
    • 产品概述
    • 数据结构
    • 产品优势
    • 产品功能
    • 系统限制
  • Python-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的Gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 安装SDK工具包
    • 概述
  • 申请邀请
    • 申请成为邀测用户
  • Java-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 快速入门
    • 安装SDK工具包
    • 概述
  • SQL参考
    • 支持SQL查询
    • 对接hive-sql
    • 支持MySQL协议
    • 对接spark-sql
  • 快速入门
    • 使用API入门
    • 创建数据库
    • 通过查询面板生成图表
    • 连接数据库
    • 概述
  • 典型实践
    • 物联网设备状态监控存储分析
    • 互联网业务性能监控服务
  • 操作指南
    • 多用户访问控制
    • 数据预处理
    • 时空服务
    • 数据管理
    • 与天工产品对接
    • 数据可视化
    • 数据库管理
    • 插值查询
  • 服务等级协议SLA
    • 时序数据库TSDB服务等级协议SLA(V2.0)
  • Node-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 快速入门
    • 安装SDK工具包
    • 错误码
    • 概述
  • API参考
    • 介绍
    • 聚合函数
    • 时间单位
    • 附录
    • 更新历史
    • 数据API接口说明
    • 管理API接口说明
    • 分组方式
  • 常见问题
    • 数据库创建及设置
    • 数据点查询
    • 数据管理
    • 用量提示
    • 常见问题总览
    • 数据点写入
  • 产品定价
    • 到期停服处理
    • 预付费
所有文档
menu
没有找到结果,请重新输入

时序时空数据库 TSDB

  • 功能发布记录
  • 产品描述
    • 名词解释
    • 产品概述
    • 数据结构
    • 产品优势
    • 产品功能
    • 系统限制
  • Python-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的Gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 安装SDK工具包
    • 概述
  • 申请邀请
    • 申请成为邀测用户
  • Java-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 快速入门
    • 安装SDK工具包
    • 概述
  • SQL参考
    • 支持SQL查询
    • 对接hive-sql
    • 支持MySQL协议
    • 对接spark-sql
  • 快速入门
    • 使用API入门
    • 创建数据库
    • 通过查询面板生成图表
    • 连接数据库
    • 概述
  • 典型实践
    • 物联网设备状态监控存储分析
    • 互联网业务性能监控服务
  • 操作指南
    • 多用户访问控制
    • 数据预处理
    • 时空服务
    • 数据管理
    • 与天工产品对接
    • 数据可视化
    • 数据库管理
    • 插值查询
  • 服务等级协议SLA
    • 时序数据库TSDB服务等级协议SLA(V2.0)
  • Node-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 快速入门
    • 安装SDK工具包
    • 错误码
    • 概述
  • API参考
    • 介绍
    • 聚合函数
    • 时间单位
    • 附录
    • 更新历史
    • 数据API接口说明
    • 管理API接口说明
    • 分组方式
  • 常见问题
    • 数据库创建及设置
    • 数据点查询
    • 数据管理
    • 用量提示
    • 常见问题总览
    • 数据点写入
  • 产品定价
    • 到期停服处理
    • 预付费
  • 文档中心
  • arrow
  • 时序时空数据库TSDB
  • arrow
  • Java-SDK
  • arrow
  • 写入操作
本页目录
  • 写入单域数据点
  • 写入多域数据点

写入操作

更新时间:2025-08-22

写入单域数据点

用户可以参考如下代码写入单域数据点:

注意:当写入的metric、field、tags、timestamp都相同时,后写入的value会覆盖先写入的value。

Plain Text
1String METRIC = "wind";                                            // metric
2String TAG_KEY = "city";                                           // 标签名称
3String TAG_VALUE = "ShangHai";                                     // 标签值
4String FIELD = "direction";                                        // 域
5 
6// 创建数据点
7List<Datapoint> datapoints = Arrays.asList(new Datapoint()
8                .withMetric(METRIC)                                  // 设置Metric
9                .withField(FIELD)                                    // 设置数据点域,可选,不填使用默认域名 value
10                .addTag(TAG_KEY, TAG_VALUE)                          // 设置Tag
11                .addDoubleValue(System.currentTimeMillis(), 0.1));   // 添加一个数据点
12 
13 
14tsdbClient.writeDatapoints(datapoints);

一个Datapoint对象可以同时添加多个数据点,这些数据点使用相同的metric和标签,相同的域。多个相同metric和标签的数据放入同一个Datapoint对象,可以减少payload。

Plain Text
1Datapoint datapoint = new Datapoint()
2              .withMetric(METRIC)                                      // 设置Metric
3              .withField(FIELD)                                        // 设置数据点域,可选,不填使用默认域名 value
4              .addTag(TAG_KEY, TAG_VALUE)                              // 设置Tag
5              .addDoubleValue(System.currentTimeMillis(), 0.1)         // 添加一个数据点
6              .addDoubleValue(System.currentTimeMillis() + 1, 0.2);    // 再添加一个数据点

Datapoint对象可以添加double,long和String类型的数据点。对于同一个field,如果写入了某个数据类型的value之后,相同的field不允许写入其他数据类型。

Plain Text
1// 添加Double类型数据点
2Datapoint datapoint1 = new Datapoint()
3              .withMetric("wind")                                     // 设置Metric
4              .withField(FIELD)                                       // 设置数据点域,可选,不填使用默认域名 value
5              .addTag(TAG_KEY, TAG_VALUE)                             // 设置Tag
6              .addDoubleValue(System.currentTimeMillis(), 0.1);       // 添加Double类型数据点
7 
8// 添加Long类型数据点
9Datapoint datapoint2 = new Datapoint()
10              .withMetric("temperature")                              // 设置Metric
11              .addTag(TAG_KEY, TAG_VALUE)                             // 设置Tag
12              .addLongValue(System.currentTimeMillis(), 10L);         // 添加Long类型数据点
13 
14// 添加String类型数据点
15Datapoint datapoint3 = new Datapoint()
16              .withMetric("humidity")                                 // 设置Metric
17              .addTag(TAG_KEY, TAG_VALUE)                             // 设置Tag
18              .addStringValue(System.currentTimeMillis(), "string");  // 添加String类型数据点
19              
20// 添加BigDecimal类型数据点
21Datapoint datapoint4 = new Datapoint()
22              .withMetric("metric")                                                        // 设置Metric
23              .addTag(TAG_KEY, TAG_VALUE)                                                  // 设置Tag
24              .addBigDecimalValue(System.currentTimeMillis(), BigDecimal.valueOf(1.234));  // 添加BigDecimal类型数据点                  

写入多域数据点

不同的域并不需要同时写入,可以认为不同的域都是独立的。但如果查询时要用一条语句查出来,需要保证metric、所有的tag、时间戳都是一致的。

可以参考以下代码写入多域数据点:

Plain Text
1String METRIC = "wind";                                              // metric
2String TAG_KEY = "city";                                             // 标签名称
3String TAG_VALUE = "ShangHai";                                       // 标签值
4String FIELD_1 = "direction";                                        // 域1
5String FIELD_2 = "speed";                                            // 域2
6long TIME = System.currentTimeMillis();                              // 时间
7
8// 添加FIELD_1的数据点
9Datapoint datapoint1 = new Datapoint()
10              .withMetric(METRIC)                                     // 设置Metric
11              .withField(FIELD_1)                                     // 设置域1
12              .addTag(TAG_KEY, TAG_VALUE)                             // 设置Tag
13              .addDoubleValue(TIME, 0.1);                             // 指定时间写入Double类型数据点
14
15// 添加FIELD_2的数据点
16Datapoint datapoint2 = new Datapoint()
17              .withMetric(METRIC)                                     // 设置Metric,需要和FIELD1的一样
18              .withField(FIELD_2)                                     // 设置域2      
19              .addTag(TAG_KEY, TAG_VALUE)                             // 设置Tag,需要和FIELD1的一样         
20              .addLongValue(TIME, 10L);                               // 指定时间添加Long类型数据点,时间需要和FIELD_1的一样
21tsdbClient.writeDatapoints(Arrays.asList(datapoint1, datapoint2));

上一篇
查询操作
下一篇
创建TsdbClient