C# Azure时间序列洞察存储桶大小

C# Azure时间序列洞察存储桶大小,c#,azure,azure-timeseries-insights,C#,Azure,Azure Timeseries Insights,我已经实现了时间序列透视聚合API(GA),以获得传感器的聚合值 这是我对已构建的中间API的输入: { "PropertyName": "Prop1", "PropertyValue": "ProVal", "MeasuredValue": "Signal", "FromDateTime": "2020-02-13T04:00:00.000Z", "ToDateTime": "2020-02-13T04:01:00.000Z", "Enviro

我已经实现了时间序列透视聚合API(GA),以获得传感器的聚合值

这是我对已构建的中间API的输入:

{

    "PropertyName": "Prop1",
    "PropertyValue": "ProVal",
    "MeasuredValue": "Signal",
    "FromDateTime": "2020-02-13T04:00:00.000Z",
    "ToDateTime": "2020-02-13T04:01:00.000Z",
    "EnvironmentFqdn": "fqdnvalue.env.timeseries.azure.com",
    "BucketSize":"60s"
}
答复如预期的那样:

[
    {
        "productTimeSeries": [
            {
                "deviceId": "SensorId",
                "deviceAggregateTimeSeries": [
                    {
                        "bucket": "2020-02-13T04:00:00Z",
                        "avg": 296.0,
                        "min": 296.0,
                        "max": 296.0
                    }
                ]
            }
        ]
    }
]
但是,如果我更改起始日期和截止日期时间,然后更新存储桶大小:

{

        "PropertyName": "Prop1",
        "PropertyValue": "ProVal",
        "MeasuredValue": "Signal",
        "FromDateTime": "2020-02-13T04:00:00.000Z",
        "ToDateTime": "2020-02-13T04:01:02.000Z",
        "EnvironmentFqdn": "fqdnvalue.env.timeseries.azure.com",
        "BucketSize":"62s"
    }
以下是我的回应:

[
    {
        "productTimeSeries": [
            {
                "deviceId": "SensorId",
                "deviceAggregateTimeSeries": [
                    {
                        "bucket": "2020-02-13T03:59:20Z",
                        "avg": 296.0,
                        "min": 296.0,
                        "max": 296.0
                    },
                    {
                        "bucket": "2020-02-13T04:00:22Z",
                        "avg": 296.0,
                        "min": 296.0,
                        "max": 296.0
                    }
                ]
            }
        ]
    }
]
现在,由于bucket大小等于from和to date时间之间的时间差,我只希望得到第一种情况下的一个结果,但我得到的是两个结果为什么会发生这种情况?

在内部,它调用实际的时间序列分析聚合API,请求的格式如下:

JObject contentInputPayloadAggregates = new JObject(
                    new JProperty("searchSpan", new JObject(
                        new JProperty("from", getTelemetry.FromDateTime),
                        new JProperty("to", getTelemetry.ToDateTime))),
                     getPredicateSingle(getTelemetry.PropertyName, getTelemetry.PropertyValue),

                     new JProperty("aggregates", new JArray(new JObject(
                        new JProperty("dimension", new JObject(
                            new JProperty("uniqueValues", new JObject(
                                new JProperty("input", new JObject(
                                    new JProperty("property", getTelemetry.PropertyName),
                                    new JProperty("type", "String")
                                    )),
                                new JProperty("take", 100)
                                ))
                            )),
                        new JProperty("aggregate", new JObject(
                            new JProperty("dimension", new JObject(
                            new JProperty("dateHistogram", new JObject(
                                new JProperty("input", new JObject(
                                    new JProperty("builtInProperty", "$ts")

                                    )),
                                new JProperty("breaks", new JObject(
                                        new JProperty("size", getTelemetry.BucketSize)
                                        ))
                                ))
                            )),
                        new JProperty("measures", new JArray(new JObject(
                            new JProperty("avg", new JObject(
                                new JProperty("input", new JObject(
                                    new JProperty("property", getTelemetry.MeasuredValue),
                                    new JProperty("type", "Double")
                                    ))
                                ))
                            ),
                            new JObject(
                            new JProperty("min", new JObject(
                                new JProperty("input", new JObject(
                                    new JProperty("property", getTelemetry.MeasuredValue),
                                    new JProperty("type", "Double")
                                    ))
                                ))
                            ),
                            new JObject(
                            new JProperty("max", new JObject(
                                new JProperty("input", new JObject(
                                    new JProperty("property", getTelemetry.MeasuredValue),
                                    new JProperty("type", "Double")
                                    ))
                                ))
                            )
                            ))

                            ))


                         )))

                    );

Time Series Insights使用一种方法,我们计算历元周期(自0001年1月1日以来经过的毫秒数)并将周期划分为选定的间隔跨度,在您的情况下为60或62秒。我们在内部调整搜索范围,使其与计算的时间间隔一致

根据计算得出的间隔数,您可能会看到1个或2个桶