Cancel
Showing results for 
Search instead for 
Did you mean: 

Record Recovery 功能简介

Enthusiast
Enthusiast
<Record Recovery 功能简介>

 

  • Record Recovery(记录 恢复)的由来:

提到Record Recovery 就不得不提起数据无法查询的话题。这里的数据无法找查询是特指成功上传到MindSphere 平台的数据,无法通过IOT 相关的API查询得到,或者通过Fleet manager APP显示出来。在解释这个问题之前我们先来了解一下MindSphere的数据上传: time series 数据通常用两种方式传入MindSphere;一种是调用MindConnect exchange API上传数据,我们通常称之为南端(south gate)上传;另一种则是调用IOT Timer series API 上传数据,我们称之北端(north gate)上传。而本文的数据上传是特指调用MindConnect exchange API上传数据。那么是成功上传就是:每一次的Mindconnect exchange 数据上传请求得到了MindSphere 返回200的响应,说明这次上传成功,数据被MindSphere 成功接收;如果响应返回值非200,则上传失败,数据没有被MindSphere 接收。接着我们来了解一下,当数据成功上传后,MindSphere要做什么处理:简单来说,就是通过Mindconnect exchange 上传的数据MindSphere 平台会根据agent以及asset的配置进行数据校验,校验成功会写入对应的Time Series service 进行存储。这里会涉及到MindSphere的两个重要服务Connectivity service IOT service, Connectivity是主要功能是根据agent asset的配置进行数据接收缓存拆分校验,IOT service主要则这是根据asset 配置进行数据存储查询。那么这里就可以解释数据成功上传而又无法在IOT 查询到:数据不能通过Connectivity service的校验而无法写入IOT service

下面为数据无法通过校验的情况:

  1. Payload 有无效结构,Connectivity service 无法解析。详细结构参考https://developer.mindsphere.io/howto/howto-agent-upload-data.html。这里不再做详细解释。
  2. 请求包含了无法识别的数据类型。
  3. Agent 配置的Data Point 类型与实际上传的不一致。
  4. Connectivity service与IOT service 服务出错。
  5. Agent 配置的 data point Id 与上传的data point Id不一致。
  6. Agent 没有和Assetdata mapping
  7. 上传的Data Point 值为空
  8. 无效时间戳
  9. 无效的quality code

如果上传的数据出现了上面的几种情况,Connectivity service 如何处理?这里有两种处理方式:出现上面12789情况,Connectivity service 会放弃掉数据。其它情况数据会暂时保留下来(暂存15天),需要手动更改agent或者asset 的配置后再在手动恢复数据。为了恢复这些被缓存下来的数据,这就有了Record Recovery

  • 了解Record Recovery的由来,接下来问题就是怎么使用:
  1. 先要知道有哪些数据是没有写入IOT而被缓存下来了,Record Recovery 提供了GET方法。主要目的是拿到id 值。这样才能做后续操作。下图为发送GET请求获得的部分内容:

    Record1.png详细内容参见 

    https://developer.mindsphere.io/apis/connectivity-mindconnect/api-mindconnect-api.html
  2. 取得了id信息后,可以下载数据查看详细内容。使用MindConnect API 提供了/recoverableRecords/{id}/downloadLink{id}GET请求响应内容中Id 的值)获得下载地址。下图为获得的下载地址:Record2.png
  3. 更改agent 或者asset的 配置后,可以尝试着把数据再次写入IOT。(最常见的是没有做agent asset mapping就开始上传数据导致数据无法写入IOT,这一类情况只需要在agent asset mapping 以后就可以恢复数据)。使用MindConnect API 提供的/recoverableRecords/{id}/replay。({id}GET请求响应内容中Id 的值)。如果请求响应为200 ,那么说明MindSphere 校验数据成功,开始写入IOT。如果不是返回200,则意味着写入失败。需要再次查看写入失败原因。

    详细内容参见

     https://developer.mindsphere.io/apis/connectivity-mindconnect/api-mindconnect-api.html

 

Publisher:

  • Zhong Ming

Author(s):

  • <Free text>

Author's company:

  • Siemes

Product(s):

  • MindSphere