管理接口
更新时间:2020-07-02
v0.10.17版本的sdk中,支持用户通过API创建/删除/查询时序数据库实例。
新建TsdbAdminClient
String ACCESS_KEY_ID = <your-access-key-id>; // 用户的Access Key ID
String SECRET_ACCESS_KEY = <your-secret-access-key>; // 用户的Secret Access Key
String ADMIN_ENDPOINT = "tsdb.gz.baidubce.com"; // 注意:与新建TsdbClient时使用的endpoint不同
// 创建配置
BceClientConfiguration config = new BceClientConfiguration()
.withCredentials(new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY))
.withEndpoint(ADMIN_ENDPOINT);
// 初始化一个TsdbAdminClient
TsdbAdminClient tsdbAdminClient = new TsdbAdminClient(config);
BceClientConfiguration中的配置项参考新建TsdbAdminClient。同样的,TsdbAdminClient也支持使用HTTPS,配置方式参考TsdbClient。
创建时序数据库实例
示例代码如下:
String databaseName = "databasename"; // 实例的名字
String description = "description"; // 实例描述,可不填写
int ingestDataPointsMonthly = 1; // 写入额度,单位:百万点/月
int queryUnitsMonthly = 10; // 查询额度,单位:万个/月
int purchaseLength = 1; // 购买时长,单位:月
String couponName = <your-coupon-name>; // 代金券号,可不填写
CreateDatabaseRequest request = new CreateDatabaseRequest()
.withDatabaseName(databaseName)
.withDescription(description)
.withIngestDataPointsMonthly(ingestDataPointsMonthly)
.withQueryUnitsMonthly(queryUnitsMonthly)
.withPurchaseLength(purchaseLength)
.withCouponName(couponName);
String clientToken = <your-client-token>; // ClientToken, 用于保证幂等性,重试发送创建请求时,使用同一个clientToken。
CreateDatabaseResponse response = tsdbAdminClient.createDatabase(request, clientToken);
返回值所包含字段请参考API文档。
删除时序数据库实例
示例代码如下:
String databaseId = <your-database-id>; // 实例的ID
tsdbAdminClient.deleteDatabase(databaseId);
注意,只允许删除到期的时序数据库实例,否则将报错。
获取时序数据库实例
示例代码如下:
String databaseId = <your-database-id>; // 实例的ID
GetDatabaseResponse database = tsdbAdminClient.getDatabase(databaseId);
返回值所包含字段请参考API文档。
获取时序数据库实例列表
示例代码如下:
ListDatabaseResponse database = tsdbAdminClient.listDatabase();
创建删除数据点任务
示例代码如下:
// 假定用户要删除wind和temperature这两个metric下的数据点,并且每个metric都使用tagFilter进行过滤
// windTaskTagFilter是wind这个metric对应的filter
TaskTagFilter windTaskTagFilter = new TaskTagFilter();
windTaskTagFilter.setTagKey("city");
windTaskTagFilter.addIn("bj");
// temperatureTaskTagFilter是temperature这个metric对应的filter
TaskTagFilter temperatureTaskTagFilter = new TaskTagFilter();
temperatureTaskTagFilter.setTagKey("city");
temperatureTaskTagFilter.addIn("gz");
// tags的key为metric, value为metric对应的TagFilter的列表
Map<String, List<TaskTagFilter>> tags = new HashMap<String, List<TaskTagFilter>>();
// 添加wind及其对应的filter
tags.put("wind", Arrays.asList(windTaskTagFilter));
// 添加temperature及其对应的filter
tags.put("temperature", Arrays.asList(temperatureTaskTagFilter));
// 创建删除请求并获取response
DeleteDatapointsRequest deleteRequest = new DeleteDatapointsRequest();
deleteRequest.setDatabaseId("tsdb_sdfd434xxxx");
// 设置需要删除的metric,如果不设置metrics字段或者metricFieldsList字段,则会删除所有metric和field的数据,
// 删除时会去tags中查询metric对应的filter进行过滤
deleteRequest.setMetrics(Arrays.asList("wind", "temperature"));
deleteRequest.setTags(tags);
DeleteDatapointsResponse deleteResponse = tsdbAdminClient.deleteDatapoints(deleteRequest);
创建导出数据点任务
示例代码如下:
// 假定用户要导出wind和temperature这两个metric下的数据点,并且每个metric都使用tagFilter进行过滤
// windTaskTagFilter是wind这个metric对应的filter
TaskTagFilter windTaskTagFilter = new TaskTagFilter();
windTaskTagFilter.setTagKey("city");
windTaskTagFilter.addIn("bj");
// temperatureTaskTagFilter是temperature这个metric对应的filter
TaskTagFilter temperatureTaskTagFilter = new TaskTagFilter();
temperatureTaskTagFilter.setTagKey("city");
temperatureTaskTagFilter.addIn("gz");
// tags的key为metric, value为metric对应的TagFilter的列表
Map<String, List<TaskTagFilter>> tags = new HashMap<String, List<TaskTagFilter>>();
// 添加wind及其对应的filter
tags.put("wind", Arrays.asList(windTaskTagFilter));
// 添加temperature及其对应的filter
tags.put("temperature", Arrays.asList(temperatureTaskTagFilter));
ExportDatapointsRequest exportRequest = new ExportDatapointsRequest();
exportRequest.setDatabaseId("tsdb_sdfd434xxxx");
exportRequest.setBosUrl("bos://iot-tsdb/test/");
exportRequest.setFormat("csv");
exportRequest.setSingleFile(true);
// 设置需要导出的metrics,如果不设置,会导出所有的metric,对于每个需要导出的metric,会去tags中查询对应的filter
// 进行过滤
exportRequest.setMetrics(Arrays.asList("wind", "temperature"));
exportRequest.setTags(tags);
ExportDatapointsResponse exportResponse = tsdbAdminClient.exportDatapoints(exportRequest);
获取任务信息
示例代码如下:
GetTaskRequest getTaskRequest = new GetTaskRequest();
getTaskRequest.setDatabaseId("tsdb_sdfd434xxxx");
getTaskRequest.setTaskId("taskId");
GetTaskResponse response = tsdbAdminClient.getTask(getTaskRequest);