【问题标题】:Custom Date queries using Cumulocity API使用 Cumulocity API 的自定义日期查询
【发布时间】:2015-11-05 18:12:27
【问题描述】:

是否可以在标准 dateFrom dateTo 查询之外聚合测量或创建自定义查询?

例如,我的测量时间增量为 1 分钟 (2015-01-01T05:05:00, 2015-01-01T05:05:00, 2015-01-01T05:05:00, . ..) 我想每隔 15 分钟查询一次测量值 (2015-01-01T05:15:00, 2015-01-01T05:30:00, 2015-01-01T05:45:00, ...)

到目前为止,我只提出了以下解决方案:

  1. 使用标准 api 请求,如 https://tenant.cumulocity.com/measurement/measurements?dateFrom=2015-10-01&dateTo=2015-11-05 然后丢弃大部分数据将花费大量时间加载数据。
  2. 使用 cep(积水事件语言)每 15 分钟生成一个新的测量值,使用最接近的 1 分钟测量值似乎有点矫枉过正,而且不是很优雅。
  3. 请求精确分钟的批处理 https://tenant.cumulocity.com/measurement/measurements?dateFrom=2015-11-05T05:15:00%2B01:00&dateTo=2015-11-05T05:16:00%2B01:00 这会产生大量的 API 请求,而且似乎效率也不高。
  4. 使用/measurements/series 端点,它只会为我提供所有系列,甚至是我不想要的系列,并且只有每小时和每天的聚合选项(据我所知)。

有更好的方法吗?

【问题讨论】:

    标签: iot cumulocity


    【解决方案1】:

    您已经掌握了几乎所有当前可用的机制。还有一种可能性——不确定这是否适合您:

    1. 从设备发送时标记第十五次测量,例如使用不同的类型。

    我通常会使用 2。它实际上非常高效,它类似于传统 SQL 中的物化视图,而且您可以在任何地方和所有小部件中使用数据。

    祝你好运:-)

    干杯, 安德烈

    【讨论】:

      【解决方案2】:

      我更喜欢 CEP 解决方案。规则不会那么复杂。然后,您当然会将这些测量值存储两次,这不是很好,但是使用特定类型或片段进行所需的测量将为您提供查询它的最快方法。

      您可以在 CEP 规则中每 15 分钟将一个特殊片段添加到测量中,而不是复制测量。您无法更新测量值,因此您必须每 15 分钟删除一次传入的测量值,然后使用完全相同的值创建一个新的测量值,但添加一个片段(例如“aggregatedMeasurement”:{})。

      您的查询将如下所示: https://tenant.cumulocity.com/measurement/measurements?dateFrom=2015-10-01&dateTo=2015-11-05&fragmentType=aggregatedMeasurement

      第 3 点的另一个想法:

      您可以使用 SmartREST 创建带有查询字符串的模板,并将 dateFrom 和 dateTo 保留为占位符。 然后,您只需从客户端使用 SmartREST 中的批量功能发出一个请求。 在服务器端,这仍然会转换为单个请求,因此您不会获得任何速度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多