Действия над индексами
Перемещение в ClickHouse
API для инициации перемещения указанного индекса: POST _ism/move_to_click/<index_name>.
Параметры в пути запроса
| Name | Type | Description |
|---|---|---|
index_name | string | Имя индекса, который требуется перенести |
Параметры в теле запроса
| Name | Type | Description |
|---|---|---|
connection_id | string | Идентификатор соединения для подключения к ClickHouse, через которое будет производиться перемещение |
index_name_pattern | string | Шаблон в виде регулярного выражения для извлечения имени таблицы, обязательно содержащий именованную группу (?<name>) |
fetch_size | integer | Размер пачки обрабатываемых документов. Рекомендуемое значение - от 10000 до 100000 в зависимости от размера документа |
data_scheme_parameters | object | Дополнительные настройки, влияющие на взаимодействие с таблицей в ClickHouse |
Схема data_scheme_parameters
| Name | Type | Description |
|---|---|---|
ttl_interval | string | Интервал времени жизни документов в таблице в формате interval <count> <time unit> Доступные интервалы (устанавливается на всю таблицу при создании) |
ttl_column | string | Имя поля типа datetime, на основе которого будет высчитываться ttl |
cluster_name | string | Имя кластера ClickHouse (обязательное поле при replication = true или distributed = true) |
replication | boolean | Флаг, отвечающий за создание реплицируемой таблицы при переливке (учитывается, если перемещение инициирует создание новой таблицы) |
distributed | boolean | Флаг, отвечающий за создание распределенной таблицы при переливки (учитывается, если перемещение инициирует создание новой таблицы) |
click_server_settings | object | Словарь ключ-значение для "пробрасывание" настроек ClickHouse в клиент, который используется для подключения к ClickHouse при перемещении данных |
view_json_as_string | boolean | Флаг, отвечающий за представление JSON столбцов как String для VIEW. Необходимо для версий ClickHouse, где не поддерживается использование JSON для VIEW |
json_fields | string[] | Список путей, дочерние поля которых будут перемещены в ClickHouse как единый JSON объект. Необходимо для перемещение динамически формируемых полей, например a1, a2, a3 |
blacklist | string[] | Список путей, которые будут проигнорированы и не будут перемещены, можно указывать префиксы путей, например host.* |
whitelist | string[] | Список путей, которые будут будут перемещены, не смотря на совпадение с черным списком, можно указывать префиксы путей, например host.* |
timestamp_field_name | string | Имя поля, где хранится timestamp события. Для случаев, когда имя поля отлично от @timestamp |
codec | string | Название кодека, который будет использоваться для кодека по умолчанию. Например, ZSTD(3) |
table_name_template | string | Шаблон для переименования целевой таблицы. Может использовать извлеченное с помощью index_name_pattern имя, используя токен {{name}}. Например, {{name}}-suffix |
source_read_mode | string | Режим чтения исходного документа. Доступны 3 режима: DEFAULT - режим по умолчанию, исходный документ в обычном json формате; FLAT - если исходный документ был проиндексирован в "плоском" виде, например, {"user.firstname": "ivan", "user.lastname": "ivanov"}; MIXED - если часть полей была сохранена в "плоском" виде, а часть в обычном. |
Пример запроса
POST _ism/move_to_click/clickhouse_test-600006
{
"connection_id": "TestClick",
"index_name_pattern": "(?<name>.*?)-\\d+",
"fetch_size": 100000,
"data_scheme_parameters": {
"ttl_interval": "interval 30 day",
"cluster_name": "sm_cluster",
"replication": true,
"distributed": true,
"click_server_settings": {
"output_format_binary_write_json_as_string": 1,
"input_format_binary_read_json_as_string": 1
},
"view_json_as_string": false,
"json_fields": ["EXECVE"],
"blacklist": ["field1", "field2.*"],
"whitelist": ["field2.subfield1"],
"timestamp_field_name": "timestamp",
"codec": "ZSTD(3)",
"table_name_template": "{{name}}-suffix",
"source_read_mode": "MIXED"
}
}
API для остановки запущенного перемещения указанного индекса: POST _ism/move_to_click/<index_name>/cancel.