上云无忧 > 文档中心 > 天翼云时间序列数据库 TSDB 数据插入
时间序列数据库 TSDB
天翼云时间序列数据库 TSDB 数据插入

文档简介:
SDB写数据有同步阻塞写数据和异步非阻塞写数据。 同步阻塞写数据 假设我们现在需要构建 500 个时间点提交给 TSDB。 示例代码
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

数据插入


TSDB写数据有同步阻塞写数据和异步非阻塞写数据。


同步阻塞写数据

假设我们现在需要构建 500 个时间点提交给 TSDB。
示例代码

1.     List<DataPoint> dataPoints=   new ArrayList< DataPoint   >();

2.     构建   DataPoint

3.   for(int i   = 0; i<500; i++) {

4.   long timestamp = System.currentTimeMillis();

5.   DataPoint   dataPoint = DataPoint.metric("test1")

6.   .tag("tagk1",   "tagv1")

7.   .value(timestamp, Math.random())

8.   .build();

9.   // 手动打包数据

10. dataPoints.add(dataPoint);

11. }

12.  

13. // 手动打包后提交数据

14. tsdb.put(dataPoints)

PutResult result = tsdb.put(ps);

返回提交概述。包含成功数和返回数。本质是调用POST /api/put?summary=true

PutSummaryResult summaryResult = tsdb.put(ps,   PutSummaryResult.class);

返回提交概述。包含成功数、返回数和失败原因。本质是调用POST /api/put?details=true

PutDetailsResult detailsResult =   tsdb.put(ps, PutDetailsResult.class);



异步非阻塞写数据

异步写数据的方式比较简单,只要有 DataPoint 就可以提交数据。Client 会自动帮助您批量地提交数据,不需要您手动打包。如果没有特殊需求,推荐您使用异步非阻塞的写数据的方式。

示例代码

1.   DataPoint   dataPoint   = DataPoint.metric("test1")

2.   .tag("tagk1", "tagv1")

3.   .value(timestamp, Math.random())

4.   .build();

5.   // 直接提交数据

6.   tsdb. putAsynch (dataPoint);



异步非阻塞写数据回调设置

当您使用异步写数据的方式时,若需要获取 Put 接口的响应结果,则需要设置回调接口。

示例代码

1.    final   AtomicLong num = new AtomicLong();

2.    //   回调对象

3.    PostDataCallback  cb = new PostDataCallback () {

4.    @Override

5.    public   void response(String address, List< DataPoint> input, Result output) {

6.    long   afterNum = num.addAndGet(input.size());

7.    System.out.println("成功处理" + input.size() +   ",已处理"   + afterNum);

8.    }

9.    @Override

10. public   void failed(String address, List< DataPoint> input, Exception ex) {

11.   ex.printStackTrace();

12.   long afterNum =   num.addAndGet(input.size());

13.   System.out.println("失败处理" + input.size() +   ",已处理"   + afterNum);

14. }

15. CtyunTsdbRequestConfig   config = CtyunTsdbRequestConfig

16. .address("www.example.com   ", 8585)

17. .listenBatchPut(cb)   // 设置回调接口

18. .config();

19. tsdb =   CtyunTsdbRequestFactory.connect(config);

TSDB Client 提供了以下三种类型的 PutCallback 接口:
•PostDataCallback,即调用POST /api/put
•PostDataSummaryCallback,即调用POST /api/put?summary=true
•PostDataDetailsCallback,即调用POST /api/put?details=true
您可以通过设置不同类型的 Callback 来根据需要选择返回的数据内容。不要在回调方法中做耗时操作。若有此需要,可以在把操作交给其他工作线程执。

相似文档
  • 首先需要构造Query对象,一个Query对象即是一个查询条件: 示例代码 SubQuery subQuery = SubQuery.metric("test.com").aggregator(AggregatorType.AVG).build();
  • 使用 query 方法同步的查询数据,并通过设置回调来设置异步查询后的行为 示例代码 QueryCallback cb = new QueryCallback() { @Override public void response(Query input, List result) {
  • 值过滤是针对特定时间线过滤出指定范围的值。使用方法就是在指定的子查询里面指定一组特定的过滤器。 值过滤类型类型有图有以下几种: 1.eq 等于 2.ge 大于等于 3.gt 大于 4.le 小于等于
  • 过滤器的类型有以下几种: •iliteral_or 和literal类似,但不区分大小写 •wildcard 通配符 •not_literal_or 和literal_or相反 •not_iliteral_or 和iliteral_or相反 •iwildcard 同wildcard相同,但不区分大小写
  • 查询最新的时间点有2个接口,一个是利用tsdb原生的api/query/last接口进行查询最新时间点的数据。第二个是为了查找最新的多个数据点而扩展的功能接口。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部