本文档主要介绍如何通过SDK连接并使用时序引擎。目前时序引擎新推出TSQL,推荐使用JDBC Driver来访问:通过JDBC Driver连接使用

获取SDK

您可以通过以下两种方式获取SDK:
  • 通过Maven依赖获取
    如果您使用Maven做项目构建工具,请在 pom.xml文件的 <dependencies>标签中添加 hitsdb-client依赖。示例代码如下:
    <dependency>
         <groupId>com.aliyun</groupId>
         <artifactId>hitsdb-client</artifactId>
         <version>{version}</version>
    </dependency>
    说明 其中的 {version}为版本号(建议使用SDK的最新版本)。关于最新的SDK版本号和相关说明,请参见SDK 版本说明
  • 下载SDK包
    如果您不使用Maven,或者不能访问Maven仓库,可直接下载SDK添加依赖包使用,步骤如下:
    1. 下载下述链接中的JAR包:
    2. 下载时序引擎客户端的JAR 包(推荐选择最新版本),请参见SDK版本说明
    3. 将这些JAR包放到工程下,即可使用时序引擎客户端SDK进行后续开发。

创建时序引擎客户端

使用SDK前必须先创建时序引擎客户端,TSDB对象(时序引擎客户端)是一个可用的客户端对象,线程安全。本章节将介绍如何使用TSDB类创建时序引擎客户端。

TSDB类是时序引擎客户端的操作类。对时序引擎的读写及其他操作,都需要使用到该类的对象。创建TSDB类对象需要使用以下两个类:
  • TSDBConfig 类:时序引擎客户端的基础配置类。
  • TSDBClientFactory 类:TSDB 类的工厂类。
通过TSDBConfig类进行配置,然后放入TSDBClientFactory类的connect方法中即可产生一个TSDB对象。
说明 在创建TSDB对象前,需要先创建TSDBConfig对象。
创建TSDB对象(时序引擎客户端)的代码示例如下:
//为TSDBConfig配置参数,并创建TSDBConfig实例。
TSDBConfig config = TSDBConfig.address("example.tsdb.com",8242).config();  //example.tsdb.com表示域名或地址,8242表示TSDB的网络端口。您实际的域名地址和网络端口可到控制台获取。
//通过TSDBClientFactory生成一个TSDB对象。
TSDB tsdb = TSDBClientFactory.connect(config);

使用时序引擎

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

写入数据

本章节介绍如何使用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();    
    }
}