Перейти к основному содержимому
Версия: 4.0

Основы поиска Clickhouse

Синтаксис

Поиск по хранилищу Clickhouse выполняется при помощи команды source. Общий синтаксис запроса:

source clk:<connection_name>:<database_name>.<table_name>:<qsize>
ПараметрСинтаксисПо умолчаниюОписание
connection_name<string>См. соединение по умолчанию.Название Search Anywhere соединения.
database_name<string>defaultНазвание базы данных, в которой находится таблица
table_name<string>Название таблицы, из которой запрашиваются данные.
qsize<int>1000000, при запросе через web-интерфейс 1000.Максимальное количество выбираемых данных.
Опциональные аргументы

Источник Clickhouse поддерживает следующие опциональные аргументы:

  • qsize - максимальное количество выбираемых данных
  • timefield - имя поля в котором хранится временная метка
  • earliest - начальная временная метка поиска
  • latest - конечная временная метка поиска

Подробное описание см. в команде source.

Соединение по умолчанию

Название соединения по умолчанию хранится в _cluster/settings в поле sme.sa.click.default_connection.

Примеры запросов данных из Clickhouse

Пример 1

Запрос 150 событий из таблицы default.sysmon при помощи соединения click.

source clk:click:sysmon:150

Пример 2

Запрос 1000 событий из таблицы default.zabbix при помощи соединения по умолчанию.

примечание

Если размер выборки не указан явно, то при запросе через Web-интерфейс будет установлен лимит 1000, а при запросе через rest api - 1000000.

source clk:zabbix

Пример 3

Запрос 2000 событий из таблицы server.logs при помощи соединения по умолчанию в промежутке два дня назад и час назад, временная метка хранится в поле timestamp.

Пример №3
source clk:server.logs qsize = 2000 timefield=timestamp earliest=-2d latest=-1h

Особенности смешивания источников

При помощи команды source можно запрашивать несколько источников в рамках одного запроса. Это могут быть как несколько таблиц из Clickhouse, так и комбинация запросов к OpenSearch, Clickhouse и другим источникам. Для запроса нескольких источников нужно указать их через запятую. Объединение результатов при запросе к Clickhouse выполняется при помощи механизмов команды append.

Подробное описание см. в команде source.

Примеры запросов из нескольких источников

Пример 1

Запрос 1000 событий из таблицы zabbix и 1000 событий из таблицы sysmon.

source clk:zabbix, clk:sysmon

Пример 2

Запрос 100 событий из таблицы sysmon, 250 событий из таблицы zabbix в промежутке 1 день назад и сейчас и 2000 событий из индекса OpenSearch sysmon_operational.

source clk:sysmon:100, (clk:zabbix qsize=250 earliest=-1d), sysmon_operational qsize=2000

Timeline

Источник Clickhouse поддерживает расчет Timeline при помощи внутренних механизмов хранилища. В таком случае Timeline будет рассчитан для всех событий в запрашиваемом временном промежутке.

Если расчет Timeline при помощи Clickhouse невозможен, то он будет выполнен на основе событий, попавших в итоговую выборку.

Условия для расчета Timeline

Timeline может рассчитываться при помощи внутренних механизмов хранилища только если запрашивается одна таблица, а команды не изменяют количество событий в итоговой выборке.

Список доступных команд для расчета timeline при помощи Clickhouse:

Пример расчета Timeline при помощи Clickhouse:

Расчет timeline при помощи Clickhouse

Источник Clickhouse поддерживает расчет Sidebar при помощи внутренних механизмов хранилища. В таком случае на боковой панели будут выведены названия полей и их тип, а по нажатию будет выполняться расчет статистики для данного поля для всех событий в запрашиваемом временном промежутке.

Если расчет Sidebar при помощи Clickhouse невозможен, то он будет выполнен на основе событий, попавших в итоговую выборку.

Условия для расчета Sidebar

Sidebar может рассчитываться при помощи внутренних механизмов хранилища только если запрашивается одна таблица, а команды не изменяют поля в итоговой выборке.

Список доступных команд для расчета Sidebar при помощи Clickhouse:

Пример расчета Sidebar при помощи Clickhouse:

Расчет sidebar при помощи Clickhouse

Пример расчета значений поля при помощи Clickhouse:

Расчет значений поля при помощи Clickhouse

Nullable

Для того чтобы при отсутствии значения поля в него записался null, или чтобы присвоить полю значение null необходимо, чтобы поле имело свойство Nullable. В противном случае поле может принимать значение по умолчанию в зависимости от его типа:

  • Int - 0
  • String - ""
  • Datetime - 1970-01-01 00:00:00