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

Действия над индексами

Перемещение в ClickHouse

API для инициации перемещения указанного индекса: POST _ism/move_to_click/<index_name>.

Параметры в пути запроса

NameTypeDescription
index_namestringИмя индекса, который требуется перенести

Параметры в теле запроса

NameTypeDescription
connection_idstringИдентификатор соединения для подключения к ClickHouse, через которое будет производиться перемещение
index_name_patternstringШаблон в виде регулярного выражения для извлечения имени таблицы, обязательно содержащий именованную группу (?<name>)
fetch_sizeintegerРазмер пачки обрабатываемых документов. Рекомендуемое значение - от 10000 до 100000 в зависимости от размера документа
data_scheme_parametersobjectДополнительные настройки, влияющие на взаимодействие с таблицей в ClickHouse

Схема data_scheme_parameters

NameTypeDescription
ttl_intervalstringИнтервал времени жизни документов в таблице в формате interval <count> <time unit> Доступные интервалы (устанавливается на всю таблицу при создании)
ttl_columnstringИмя поля типа datetime, на основе которого будет высчитываться ttl
cluster_namestringИмя кластера ClickHouse (обязательное поле при replication = true или distributed = true)
replicationbooleanФлаг, отвечающий за создание реплицируемой таблицы при переливке (учитывается, если перемещение инициирует создание новой таблицы)
distributedbooleanФлаг, отвечающий за создание распределенной таблицы при переливки (учитывается, если перемещение инициирует создание новой таблицы)
click_server_settingsobjectСловарь ключ-значение для "пробрасывание" настроек ClickHouse в клиент, который используется для подключения к ClickHouse при перемещении данных
view_json_as_stringbooleanФлаг, отвечающий за представление JSON столбцов как String для VIEW. Необходимо для версий ClickHouse, где не поддерживается использование JSON для VIEW
json_fieldsstring[]Список путей, дочерние поля которых будут перемещены в ClickHouse как единый JSON объект. Необходимо для перемещение динамически формируемых полей, например a1, a2, a3
blackliststring[]Список путей, которые будут проигнорированы и не будут перемещены, можно указывать префиксы путей, например host.*
whiteliststring[]Список путей, которые будут будут перемещены, не смотря на совпадение с черным списком, можно указывать префиксы путей, например host.*
timestamp_field_namestringИмя поля, где хранится timestamp события. Для случаев, когда имя поля отлично от @timestamp
codecstringНазвание кодека, который будет использоваться для кодека по умолчанию. Например, ZSTD(3)
table_name_templatestringШаблон для переименования целевой таблицы. Может использовать извлеченное с помощью index_name_pattern имя, используя токен {{name}}. Например, {{name}}-suffix
source_read_modestringРежим чтения исходного документа. Доступны 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.