Мне нужна помощь в создании запроса для заполнения доски состояния сотрудников с использованием таблицы данных холста Kibana. Индекс ES (prox-reader- *) получает журналы от устройства чтения значков, которое отправляет события, когда сотрудник входит или выходит из системы. Идея заключается в том, что на панели состояния должен отображаться только список сотрудников, которые в настоящее время присутствуют. Моя цель - получить что-то вроде этого:
| Employee | Time In |
--------------------------------
| Bob | 8:00 AM |
| Alice | 8:03 AM |
| Jim | 8:06 AM |
Я могу написать запрос, который создает таблицу данных о последних событиях входа в систему (см. Ниже), но я не знаю, как добавить logi c, чтобы в списке отображался только самый последний случай входа сотрудника. И как мне избежать перечисления сотрудников, которые с тех пор вышли из системы?
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 |
--------------------------------
| Bob | 8:00 AM |
| Alice | 8:03 AM |
| Jim | 8:06 AM |
| Jim | 10:06 AM |
| Bob | 11:15 AM |
Значение «reader» может быть несколько разных вещей, но мне просто интересно, если они входили в здание или выходили из него ... поэтому значение может быть «Считыватель входной двери» или «Считыватель выходной двери». Поле 'event' определяет, были ли они успешными ... '8' - это успешный вход / выход, но существует множество других кодов для различных типов отказов.
Как мне написать запрос es sql, который предоставляет список всех сотрудников, которые прошли регистрацию, которые с тех пор не вышли из системы, и который смотрит только на события за последние 10 часов? (Причина, по которой я хочу ограничить его последними 10 часами, заключается в том, что в случае, если сотрудник забудет выполнить разметку в конце дня, на следующий день мы удалим все ложные срабатывания за день до этого.)
Заранее спасибо!