elasticsearch,kibana,Sql,elasticsearch,Kibana" /> elasticsearch,kibana,Sql,elasticsearch,Kibana" />

Kibana Canvas essql数据表查询,在给定几个条件的情况下选择最近的记录

Kibana Canvas essql数据表查询,在给定几个条件的情况下选择最近的记录,sql,elasticsearch,kibana,Sql,elasticsearch,Kibana,我需要一些帮助来创建一个查询,以便使用Kibana Canvas数据表填充员工状态板。ES索引(prox reader-*)接收来自徽章读取器的日志,该读取器在员工签到或签到时发送事件。这个想法是状态板应该只显示当前在场的员工名单。我的目标是以这样的方式结束: | Employee | Time In | -------------------------------- | Bob | 8:00 AM | | Alice |

我需要一些帮助来创建一个查询,以便使用Kibana Canvas数据表填充员工状态板。ES索引(prox reader-*)接收来自徽章读取器的日志,该读取器在员工签到或签到时发送事件。这个想法是状态板应该只显示当前在场的员工名单。我的目标是以这样的方式结束:

|   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个小时的原因是,如果员工在一天结束时忘记佩戴徽章,那么第二天我们将清除前一天的任何误报。)

提前谢谢