Поиск в ClickStack и Elastic
argMax, histogram и quantileTiming, которые упрощают выполнение запросов к структурированным журналам, метрикам и трассировкам.
Для простого анализа журналов и трассировок интерфейс ClickStack (HyperDX) предоставляет синтаксис в стиле Lucene для интуитивной текстовой фильтрации по запросам вида поле-значение, диапазонам, подстановочным шаблонам и другим конструкциям. Это сопоставимо с синтаксисом Lucene в Elasticsearch и элементами Kibana Query Language.
Интерфейс поиска поддерживает этот знакомый синтаксис, но за кулисами преобразует его в эффективные SQL-условия WHERE, что делает работу привычной для пользователей Kibana и при этом позволяет при необходимости использовать всю мощь SQL. Это позволяет задействовать весь набор функций поиска по строкам, функций сходства и функций даты и времени в ClickHouse.
Ниже мы сравним языки запросов Lucene в ClickStack и Elasticsearch.
Поисковый синтаксис ClickStack и строка запроса Elasticsearch
Различия между exists/missing
- Для полей
Nullableбудет установлено значениеNULL. - Для полей, не допускающих
NULL(по умолчанию), будет подставлено значение по умолчанию (часто это пустая строка, 0 или эквивалентное значение).
Nullable не рекомендуется.
Это означает, что проверка того, «существует» ли поле, в смысле Elasticsearch напрямую не поддерживается.
Вместо этого можно использовать field:* или field != '', чтобы проверить наличие непустого значения. Таким образом, невозможно отличить действительно отсутствующие поля от явно пустых.
На практике это различие редко вызывает проблемы в сценариях обсервабилити, но о нём важно помнить при переносе запросов между системами.