Skip to content

jerik.olfermann.ext@siemens.com sebastian.haenisch@siemens.com title: MindSphere SDK - IoT Time Series - 开发文档


IoT Time Series Java 客户端

简介

IoT Time Series Java 客户端允许用户与 assets 相关的时间序列数据进行交互。有关该服务的更多信息,请参见 IoT Time Series

提示

在 IoT 环境中,assets 指 entity,aspects 指 propertyset

时间序列操作

客户端名称:TimeseriesClient

读取最新时间序列数据

读取单个实体和属性集的时间序列数据最新值。

// Construct the TimeseriesClient object
TimeseriesClient timeseriesClient = TimeseriesClient.builder()
 .mindsphereCredentials(credentials)
 .restClientConfig(config)
 .build();

TimeseriesData timeseriesData = null;
try {
 timeseriesData = timeseriesClient.getLatestTimeseries(entity, propertySetName);
} catch (MindsphereException e) {
 // Exception handling
}

读取时间序列数据

此操作将调用 IoT Time Series API 以执行下述操作:

  • 读取单个实体和属性集的时间序列数据。
  • 返回指定时间范围内的数据。
  • 如果未提供范围,则返回最新值。
  • 返回所选字段和限制内的时间序列数据。
//Construct TimeseriesClient object as shown above
List<TimeseriesData> timeseriesDataList = null;
try {
 timeseriesDataList = timeseriesClient.getTimeseries(entity, propertySetName, from, to, limit, select);
} catch (MindsphereException e) {
 // Exception handling
}

写入时间序列数据

写入单个实体和属性集的时间序列。该操作将覆盖现有时间序列数据。

说明

最大写入有效载荷为 1 MB。

//Construct TimeseriesClient object as shown above

boolean success = false;
try {
 success = timeseriesClient.putTimeSeries(entity, propertySetName, timeSeriesList, sync);
} catch (MindsphereException e) {
 // Exception handling
}

导入时间序列数据

导入或更新单个实体和属性集的时间序列。该操作将覆盖现有时间序列数据。

//Construct TimeseriesClient object as shown above

boolean success = false;
try {
 success = timeseriesClient.importTimeseries(entity, propertySetName, timeseriesFile, sync);
} catch (MindsphereException e) {
 // Exception handling
}

删除时间序列数据

删除指定时间范围内的时间序列实体和属性集。该操作会同时删除属性集内的所有属性数据。

说明

一次只能删除最多6个月的数据。

//Construct TimeseriesClient object as shown above

boolean success = false;
try {
 success = timeseriesClient.deleteTimeSeries(entity, propertySetName, from, to, sync);
} catch (MindsphereException e) {
 // Exception handling
}

页面迭代器

IoT Time Series API 客户端的页面迭代器 TimeseriesPageIterator 可用于获取特定的数据页、下一页数据或上一页数据。

页面迭代器目前支持以下操作:

  • getPage(Integer pageNumber);
  • next();
  • previous();

需要使用 IoT Time Series API 客户端、实体、属性集名称、数据范围(from 日期和 to 日期)以及页面大小对页面迭代器进行实例化。如未提供页面大小,则该值默认为 2000。

以下示例代码显示了 IoT Time Series 页面迭代器的实例化和使用过程:

try {
 //Create the timeseries client
 TimeseriesClient timeseriesClient = TimeseriesClient.builder()
 .mindsphereCredentials(credentials)
 .restClientConfig(config)
 .build();
 // Create the timeseries page iterator
 TimeseriesPageIterator timeseriesPageIterator =
 new TimeseriesPageIterator(timeseriesClient, entityId, propertySetName, fromDateString, toDateString, pageSize);

 List<TimeseriesData> timseriesDataList = timeseriesPageIterator.getPage(10);
} catch (MindsphereException e) {
 // Exception handling
}

Last update: March 22, 2023