如何设置 Azure 时序见解以接收和可视化布尔数据?

How to setup Azure Time Series Insights to receive and visualise boolean data?

我目前正在通过 EventHub 发送数据到 Time Series Insight 并借助以下 类 序列化为 JSON

public class DataItemBase
{
    public string VariableName { get; set; }
    public string SystemId { get; set; }
    public string DeviceTimestamp { get; set; }
}

public class DataItemDouble : DataItemBase
{
    public double Value { get; set; }
}

public class DataItemBool : DataItemBase
{
    public bool Value { get; set; }
}

valuedouble 时,数据接收正常且易于查询。但是,当收到的数据为 boolean 时,我无法显示数据。值列标记为 (T/F),这似乎表明 TSI 正确理解接收到的数据格式。

问题是,如何在TSI在线查看器上显示这个布尔数据? 作为参考,这是 Microsoft 的 Contonso 示例环境的 link:https://insights.timeseries.azure.com/preview/samples

我怀疑这完全取决于在环境中为 实例 分配正确的 类型 。我创建了分配给 TSI 实例的 DeviceData 类型。此 DeviceData 类型有一个名为 NumericData 的 属性 和 $event['value'].Double 定义。这按预期工作,但我似乎没有为 boolean 值找到类似的解决方案。

在 TSI Explorer 中只能绘制数字数据,因此为了显示带有布尔值的图表,您可以在时间序列表达式中创建一个带有 conversion 函数的类型变量来转换布尔值长或双 toDouble($event.value.Bool)

您可能想要创建一个 categorical variable 以具有 True/False 标签和 select 自定义颜色

"Status": {
"kind": "categorical",
  "value": {
 "tsx": "toLong($event.value.Bool)"},
  "interpolation": {
    "kind": "step",
    "boundary": {
      "span" : "PT1M"
    }
  },
  "categories": [
    {
      "values": [0],
      "label": "False"
    },
    {
      "values": [1],
      "label": "True"
    }
  ],
  "defaultCategory": {
    "label": "Not Applicable"
  }
}