Как структурировать дополнительный запрос, чтобы сгенерировать количество событий, в которых поле является либо нулевым, либо ненулевым? - PullRequest
0 голосов
/ 08 января 2020

Я работаю с некоторыми журналами доступа, которые могут иметь или не иметь поле user_name. Мне не нужно делать ничего особенного, я просто хотел бы сгенерировать один запрос, который возвращает таблицу статистики, содержащую количество событий, где это поле либо нулевое, либо не нулевое. Например, мой журнал имеет следующую структуру:

<timestamp><field1><field2><user_name><field4>

Для анонимных подключений имя пользователя не регистрируется, поэтому эти значения равны нулю. Я могу легко получить все ненулевые значения:

<base_query> user_name="*" | stats count

Это дает мне хорошую таблицу из ненулевого поля user_name:

count
------
812093

Я также могу получить количество пустых полей с небольшим количеством работы, но это кажется грязным:

<base_query> | fillnull user_name value=NULL| search user_name=NULL | stats count

А затем я получаю количество записей с пустым полем user_name.

count
-----
31215

Однако, что мне действительно нужно, так это один запрос, который объединяет оба этих запроса в одну таблицу статистики, в идеале:

not_null | null
----------------
812093   | 31215

Спасибо!

1 Ответ

0 голосов
/ 08 января 2020

Существует функция "isNull (поле)", которую вы можете использовать для оценки этого и затем подсчитать

index=indxname search_condition
| eval countByFieldExists=if(isnull(field),"notExist","Exists") 
| stats count by countByFieldExists

Что-то подобное должно работать для вас

...