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