所有文档

          时序时空数据库 TSDB

          管理接口

          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);
          上一篇
          写入数据点的gzip压缩说明
          下一篇
          版本说明