首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个术语用于查询数据库中对象的最近已知状态,如elasticsearch/kibana或powerbi?

是否有一个术语用于查询数据库中对象的最近已知状态,如elasticsearch/kibana或powerbi?
EN

Stack Overflow用户
提问于 2021-04-23 03:52:51
回答 1查看 73关注 0票数 0

因此,此示例适用于任何交互式仪表板,如Kibana或PowerBI。

假设我的车队中有一辆556辆车。在08:41:50,所述车辆发出警报(发动机过热)

2021-04-21T08:41:50 Priority 2 alarm - Vehicle 556 - Engine overheating

然后,我希望能够单击此警报,并获得一个仪表板,它将显示事件发生时车辆的已知状态。例如,车辆速度、加速百分比、制动百分比和来自其他数据源的偏离路线数据,如天气信息、驾驶员等。

因此,从仪表板上,我预计会根据以下日志看到以下内容:

代码语言:javascript
复制
Vehicle: 556
Datetime: 2021-04-21 08:41:50
Speed: 42mph
Accelaration: 70%
Braking: 65%
Weather: Sunny, 80 deg
Other alarms: Engine fan stalled
代码语言:javascript
复制
2021-04-21T06:35:50 info - Weather - Sunny 75 deg
2021-04-21T07:35:50 info - Weather - Sunny 78 deg
2021-04-21T08:34:23 Priority 1 alarm - Vehicle 556 - Engine fan stalled
2021-04-21T08:35:50 info - Weather - Sunny 80 deg
2021-04-21T08:41:38 info - Vehicle 556 - Acceleration: 100%
2021-04-21T08:41:38 info - Vehicle 556 - Braking: 40%
2021-04-21T08:41:38 info - Vehicle 556 - Speed 24 mph
2021-04-21T08:41:42 info - Vehicle 556 - Acceleration: 97%
2021-04-21T08:41:42 info - Vehicle 556 - Braking: 50%
2021-04-21T08:41:42 info - Vehicle 556 - Speed 38 mph
2021-04-21T08:41:45 info - Vehicle 556 - Acceleration: 70%
2021-04-21T08:41:45 info - Vehicle 556 - Braking: 65%
2021-04-21T08:41:45 info - Vehicle 556 - Speed 42 mph
2021-04-21T08:41:50 Priority 2 alarm - Vehicle 556 - Engine overheating

对于“奖励积分”,能够点击最后一次已知的速度,并查看显示最后10个关于车辆速度的日志也很好。

但这是在任何数据库中,还是在powerbi或elasticsearch/kibana中,或者这需要自定义创建的应用程序仪表板。或者仅仅是因为我不知道正确的搜索词

EN

回答 1

Stack Overflow用户

发布于 2021-04-26 19:51:36

对于Power BI,有一个有用的函数LASTNONBLANKVALUE可以处理这个问题。最好的文档来源(DAX指南)如下所示,它包括产品文档和一个实时沙坑:

https://dax.guide/lastnonblankvalue/

对于您的场景,我设想将时间戳用于第一个参数(ColumnName),然后将日志文本的第三段(例如,具有类似"Speed 42 mph“的值的派生列)用于第二个参数。

我将构建一组DAX列来准备数据,使用CALCULATE来限制所考虑的行集。DAX度量可能更灵活和动态,但开发起来要抽象得多,如果它们太复杂,查询性能可能会受到影响。

下面是获取每个非info日志行的Last Speed的示例。我假设进行一些数据转换,以获得Vehicle等的helper列。

代码语言:javascript
复制
Last Speed = 
VAR v_Timestamp_Max = LogTable[Timestamp]
VAR v_Vehicle = LogTable[Vehicle]
RETURN
IF ( LogTable[Level] <> "info" , 
    CALCULATE (
        LASTNONBLANKVALUE ( LogTable[Timestamp], MAX ( LogTable[Value] ) ),
        ALL ( LogTable ),
        LogTable[Timestamp] < v_Timestamp_Max,
        LogTable[Vehicle] = v_Vehicle,
        LogTable[Value Type] = "Speed"
    )
) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67219904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档