FIWARE 实体作为一组 KPI 属性

FIWARE entity as a group of KPI attributes

需要 return 几个 KPI 分组到不同的 主题:

据我了解,每个 主题 都有一个实体,每个 KPI 都是 KeyPerformanceIndicator属性。例如:这可能类似于:

{
    "description": "Census Information system",
    "dataProvided": {
        "entities": [
            {
                "idPattern": ".*"
            }
        ],
        "attrs":[    //THIS SEEMS AN INTERESTING APPROACH, BUT SADLY ALSO INVALID
            {
                "name": "citizens",
                "type": "KeyPerformanceIndicator"
            },
            {
                "name": "citizens_without_studies",
                "type": "KeyPerformanceIndicator"
            },
            //...
        ]
    },
    "provider": {
        "http": {
            "url": "http://myhost/v2/census"
        }
    }
}

(TL;DR: "attrs" 只支持字符串,所以不能 return complex/data 建模 类型,比如 KPI )

抛开这个好主意解决这个问题的好方法是什么?

每个 KPI 都必须是一个实体吗?

我要找的是 NGSI-LD 吗?

我认为你的情况可以在 NGIv2 中得到解决。让我试着解释一下。

每个KPI都必须是一个实体吗?

是的。这是根据 KPIs datamodel 对 KPI 进行建模的常用方法。每个 KPI 都建模为 KeyPerformanceIndicator.

类型的实体

KPI可以分类吗?

是的。您可以使用 category 属性来做到这一点。

例如,您可以通过以下方式建模“税务信息”类别的 KPI“在线支付”:

{  
  "id": "OnlinePayments",  
  "type": "KeyPerformanceIndicator",  
  ...
  "category": ["taxInformation"],  
  ...
}  

请注意,category 是一个数组,因此给定的 KPI 可能属于多个类别(尽管在您的用例中似乎每个 KPI 都属于一个类别,因此您不需要这个特征)

如何获得属于给定类别的 KPI?

您可以为此使用常规的 Orion Context Broker 过滤功能。例如,要获取类别 taxInformation 中的所有 KPI,您可以使用此键:

GET /v2/entitites?type=KeyPerformanceIndicator&q=category:taxInformation

或订阅中的这个表达式:

{
    "subject": {
        "entities": [
            {
                "idPattern": ".*",
                "type": "KeyPerformanceIndicator"
            }
        ],
        "condition": {
            ...
            "expression": {
               "q": "category:taxInformation"
            }
         }
    },
    ...
}

我猜 smart data models initiative for a keyPerformanceIndicators

中有一些关于如何为 KPI 创建负载的见解

您可以在 key values format and in normalized format 中看到一些 NGSI v2 的有效负载。 (也有用于 NGSI LD 的)

specification of the key performance indicator data model and the json schema for the validation也可以。

如果您想要完成的是为您的 KPI 数据提供一个 NGSI 接口,您可以在您的数据库之上创建您自己的适配器,提供一个与 NGSI-LD 兼容的 REST 接口,这样的服务可以return 个类型 KeyPerformanceIndicator 的实体。然后,您可以通过简单的注册将其联合到上下文代理,即对于 KeyPerformanceIndicator 类型的实体。仅此而已。

关联数据的使用也是值得推荐的,所以我会选择 NGSI-LD,因为它已被 ETSI 正式认可。