【问题标题】:How to insert historical data into fiware (with correct dates)?如何将历史数据插入固件(日期正确)?
【发布时间】:2019-08-28 13:09:39
【问题描述】:

我有一堆历史数据 (csv),我想通过 sth-comet 访问这些数据。数据是多次反转的水位历史。这些数据不是实时提供的,而是或多或少地每天提供,并且包含多天的所有历史记录。

到目前为止我所做的是:

  1. 将数据转换为带有dateObserved: DateTimewaterlevel : number字段的NGSIv2格式数据模型
  2. 将数据更新/附加到 Fiware orion
  3. 为实体类型创建 sth-comet 订阅
  4. 访问 sth-comet 中的历史数据(时间错误)

有了这个,我现在有一个问题,“rcvTime”当然是sth-cometreceived 数据的时间。有没有办法可以“覆盖”该属性或者有更好的解决方案?我还在插入数据时查看了 cygnus,但我认为根本问题是相同的。 我在可用文档中找不到任何提示。

【问题讨论】:

    标签: fiware-orion fiware-sth-comet


    【解决方案1】:

    在使用 Cygnus NGSIMongoSink 和 NGSISthSink 的情况下,您可以在属性中使用 TimeInstant 元数据,以使用元数据值中给定的时间覆盖接收到的时间。

    看看NGSIMongoSink documentation

    默认情况下,NGSIMongoSink 存储通知接收时间戳。然而,如果(且仅当)在row 模式下工作并通知名为TimeInstant 的元数据,则使用此类元数据值而不是接收时间戳。当想要保持测量生成时间(因此以TimeInstant 元数据通知)而不是接收时间时,这很有用。

    NGSISTHSink documentation中的类似片段:

    默认情况下,NGSISTHSink 存储通知接收时间戳。然而,如果通知了名为TimeInstant 的元数据,则使用此类元数据值而不是接收时间戳。当想要保持测量生成时间(因此以TimeInstant 元数据通知)而不是接收时间时,这很有用。

    【讨论】:

    • 感谢有关TimeInstant 元数据的提示,如果我插入猎户座的数据中存在属性元数据,则发现它也可以直接与 sth-comet 一起使用。
    • 不完全确定...查看 STH 存储库 (github.com/telefonicaid/fiware-sth-comet/…) 似乎文档没有提到这种可能性。但是,代码的某些部分会处理 TimeInstant。你能测试它并告诉它是否有效(在这种情况下我会更新 STH 文档以包含它),请?谢谢!
    • 是的,效果很好。 rcvTime 被 TimeInstant "waterLevel": { "type": "Number", "value": 555, "metadata": { "TimeInstant":{ "type": "DateTime", "value" : "2019-08-21T03:00:00.000Z" } } } 正确覆盖
    • 感谢您的反馈!在 PR github.com/telefonicaid/fiware-sth-comet/pull/517 中完成了文档修改(除其他外)
    猜你喜欢
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    相关资源
    最近更新 更多