Kibana Canvas essql数据表查询,在给定几个条件的情况下选择最近的记录
我需要一些帮助来创建一个查询,以便使用Kibana Canvas数据表填充员工状态板。ES索引(prox reader-*)接收来自徽章读取器的日志,该读取器在员工签到或签到时发送事件。这个想法是状态板应该只显示当前在场的员工名单。我的目标是以这样的方式结束:Kibana Canvas essql数据表查询,在给定几个条件的情况下选择最近的记录,sql,
elasticsearch,kibana,Sql,
elasticsearch,Kibana,我需要一些帮助来创建一个查询,以便使用Kibana Canvas数据表填充员工状态板。ES索引(prox reader-*)接收来自徽章读取器的日志,该读取器在员工签到或签到时发送事件。这个想法是状态板应该只显示当前在场的员工名单。我的目标是以这样的方式结束: | Employee | Time In | -------------------------------- | Bob | 8:00 AM | | Alice |
| Employee | Time In |
--------------------------------
| Bob | 8:00 AM |
| Alice | 8:03 AM |
| Jim | 8:06 AM |
| Employee | Time |
--------------------------------
| Bob | 8:00 AM |
| Alice | 8:03 AM |
| Jim | 8:06 AM |
| Jim | 10:06 AM |
| Bob | 11:15 AM |
我可以编写一个查询,创建事件中最近的徽章的数据表(见下文),但我不知道如何添加逻辑,以便只列出员工事件中最近的徽章。我该如何避免列出那些自那以后就被解雇的员工
filters
| essql
query="SELECT
full_name AS Employee,
(\"@timestamp\" - INTERVAL 5 HOUR) AS Time
FROM \"prox-reader-*\"
WHERE \"reader\" LIKE 'Entry Door Reader'
AND \"event\" LIKE '8'
"
| mapColumn "Time" fn={getCell "Time" | formatdate format="hh:mm A"}
| table perPage=15
| render
上面的代码生成如下表:
| Employee | Time In |
--------------------------------
| Bob | 8:00 AM |
| Alice | 8:03 AM |
| Jim | 8:06 AM |
| Employee | Time |
--------------------------------
| Bob | 8:00 AM |
| Alice | 8:03 AM |
| Jim | 8:06 AM |
| Jim | 10:06 AM |
| Bob | 11:15 AM |
“reader”的值可以是几个不同的东西,但我只对他们是否进入或离开大楼感兴趣……所以值可以是“入口门阅读器”或“出口门阅读器”。“事件”字段捕获它们是否成功…“8”是一个成功的标记输入/标记输出,但对于不同类型的故障,还有各种其他代码
我如何编写一个essql查询,提供一个所有员工的列表,这些员工都已注册,但此后没有注册,并且只查看过去10小时内发生的事件?(我想把时间限制在最后10个小时的原因是,如果员工在一天结束时忘记佩戴徽章,那么第二天我们将清除前一天的任何误报。)
提前谢谢