本段介紹如何使用 SDK 寫入資料。操作前提是您已建立出 TSDB 對象。
建議: 使用 TSDB SDK 之前,建議您先閱讀名詞解釋和《HTTP API 參考》對 TSDB 的基本概念和 API 的使用說明進行瞭解。
Point 類為 TSDB 的時間點類。您可以使用 TSDB 對象的 put 方法或 putSync 方法將 Point 資料寫入 TSDB 資料庫。
範例程式碼
每秒寫入一個 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 {
// 建立 TSDB 對象
TSDBConfig config = TSDBConfig.address("example.hitsdb.com", 8242).config();
TSDB tsdb = TSDBClientFactory.connect(config);
// 構造資料並寫入 TSDB
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.putSync(point);
}
// 安全關閉用戶端,以防資料丟失。
System.out.println("關閉");
tsdb.close();
}
}查詢資料
本段介紹如何使用 SDK 讀取資料。操作前提是您已建立出 TSDB 對象。
Query 類為 TSDB 的查詢類,即於查詢條件。查詢資料前需要先構造出查詢條件。您可以使用 TSDB 對象的 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 {
// 建立 TSDB 對象
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();
}
}