本文介绍时序引擎使用时的相关示例。

使用时序引擎 SDK 之前,建议您先阅读名词解释HTTP API参考对时序引擎的基本概念和 API 的使用说明进行了解。

写入数据

本段介绍如何使用 SDK 写入数据。操作前提是您已创建出时序引擎对象。

Point 类为时序引擎的时间点类。您可以使用时序引擎对象的 put 方法将 Point 数据写入时序引擎数据库。

示例代码

每秒写入一个 Point(时间点)数据:
package com.aliyun.hitsdb.client.example;
import java.io.IOException;
import com.aliyun.hitsdb.client.TSDB;
import com.aliyun.hitsdb.client.TSDBClientFactory;
import com.aliyun.hitsdb.client.TSDBConfig;
import com.aliyun.hitsdb.client.value.request.Point;

public class TestWrite {    
    public static void main(String[] args) throws InterruptedException, IOException {        
        // 创建时序引擎对象        
        TSDBConfig config = TSDBConfig.address("example.hitsdb.com", 8242).config();        
        TSDB tsdb = TSDBClientFactory.connect(config);        
        // 构造数据并写入时序引擎        
        for (int i = 0; i < 3600; i++) {           
             Point point = Point.metric("test").tag("V", "1.0").value(System.currentTimeMillis(), 123.4567).build(); 
             Thread.sleep(1000);  // 1秒提交1次            
            tsdb.put(point);        
        }        
        // 安全关闭客户端,以防数据丢失。        
        System.out.println("关闭");        
        tsdb.close();    
    }
}

查询数据

本段介绍如何使用 SDK 读取数据。操作前提是您已创建出时序引擎对象。

Query 类为时序引擎的查询类,即于查询条件。查询数据前需要先构造出查询条件。您可以使用时序引擎对象的 query 方法查询符合查询条件的数据。

示例代码

查询一小时的数据:
package com.aliyun.hitsdb.client.example;
import java.io.IOException;
import java.util.List;import com.aliyun.hitsdb.client.TSDB;
import com.aliyun.hitsdb.client.TSDBClientFactory;
import com.aliyun.hitsdb.client.TSDBConfig;
import com.aliyun.hitsdb.client.value.request.Query;
import com.aliyun.hitsdb.client.value.request.SubQuery;
import com.aliyun.hitsdb.client.value.response.QueryResult;
import com.aliyun.hitsdb.client.value.type.Aggregator;

public class TestRead {    
    public static void main(String[] args) throws IOException {        
        // 创建时序引擎对象        
        TSDBConfig config = TSDBConfig.address("example.hitsdb.com", 8242).config();        
        TSDB tsdb = TSDBClientFactory.connect(config);        
        // 构造查询条件并查询数据。        
        long now = System.currentTimeMillis();        
        // 查询一小时的数据        
        Query query = Query.timeRange(now - 3600 * 1000, now)                
            .sub(SubQuery.metric("test").aggregator(Aggregator.NONE).tag("V", "1.0").build()).build();        
        // 查询数据        
        List<QueryResult> result = tsdb.query(query);        
        // 打印输出        
        System.out.println(result);        
        // 安全关闭客户端,以防数据丢失。        
        tsdb.close();    
    }
}