Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for ClickHouse®
  • Начало работы
    • Все инструкции
      • Информация об имеющихся кластерах
      • Создание кластера
      • Изменение настроек кластера
        • На уровне сервера
        • На уровне запроса
      • Обновление версии ClickHouse®
      • Остановка и запуск кластера
      • Управление резервными копиями
      • Удаление кластера
  • Управление доступом
  • Справочник Terraform
  • Метрики Yandex Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Задать настройки ClickHouse® через интерфейсы Yandex Cloud
  • Проверить настройки таблицы MergeTree
  • Задать настройки таблиц MergeTree с помощью SQL-запросов
  • Изменить настройки при создании таблицы MergeTree
  • Изменить настройки существующей таблицы MergeTree
  • Вернуть настройку таблицы MergeTree к значению по умолчанию
  1. Пошаговые инструкции
  2. Кластеры
  3. Изменение настроек ClickHouse®
  4. На уровне сервера

Изменение настроек ClickHouse® на уровне сервера

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 24 апреля 2025 г.
  • Задать настройки ClickHouse® через интерфейсы Yandex Cloud
  • Проверить настройки таблицы MergeTree
  • Задать настройки таблиц MergeTree с помощью SQL-запросов
    • Изменить настройки при создании таблицы MergeTree
    • Изменить настройки существующей таблицы MergeTree
    • Вернуть настройку таблицы MergeTree к значению по умолчанию

Вы можете задать настройки ClickHouse® на уровне сервера, чтобы настроить поведение баз данных или отдельных таблиц в кластере Managed Service for ClickHouse®. Указать настройки можно несколькими способами:

  • С помощью интерфейсов Yandex Cloud. Так можно задать только настройки ClickHouse®, доступные в Yandex Cloud.

  • С помощью SQL-запросов. Так задаются настройки для таблиц MergeTree. Вы можете:

    • задать настройки при создании таблицы;
    • задать настройки существующей таблицы;
    • вернуть значения по умолчанию для настроек существующей таблицы.

Задать настройки ClickHouse® через интерфейсы Yandex Cloud

Изменение некоторых настроек сервера приводит к перезапуску серверов ClickHouse® на хостах кластера.

Примечание

Значение настройки Max server memory usage нельзя изменять напрямую. Managed Service for ClickHouse® выставляет для нее значение автоматически в зависимости от объема оперативной памяти хостов ClickHouse®. Чтобы изменить значение настройки, измените класс хостов ClickHouse®. Подробнее см. в разделе Управление памятью.

Консоль управления
CLI
Terraform
REST API
gRPC API

Чтобы задать настройки ClickHouse®:

  1. В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Выберите кластер и нажмите кнопку Редактировать на панели сверху.
  3. В блоке Настройки СУБД нажмите кнопку Настроить.
  4. Задайте настройки ClickHouse®.
  5. Нажмите кнопку Сохранить изменения.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы задать настройки ClickHouse®:

  1. Посмотрите полный список настроек, установленных для кластера:

    yc managed-clickhouse cluster get <имя_или_идентификатор_кластера> --full
    
  2. Посмотрите описание команды CLI для изменения конфигурации кластера:

    yc managed-clickhouse cluster update-config --help
    
  3. Установите нужные значения параметров:

    yc managed-clickhouse cluster update-config <имя_или_идентификатор_кластера> \
       --set <имя_параметра_1>=<значение_1>,...
    

Чтобы задать настройки ClickHouse®:

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. В описании кластера Managed Service for ClickHouse®, в блоке clickhouse.config, измените значения параметров:

    resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
      ...
      clickhouse {
        ...
    
        config {
          # Общие настройки СУБД
          ...
    
          merge_tree {
            # Настройки движка MergeTree
            ...
          }
    
          kafka {
            # Общие настройки получения данных из Apache Kafka
            ...
          }
    
          kafka_topic {
            # Настройки отдельного топика Apache Kafka
            ...
          }
    
          rabbit_mq {
            # Настройки получения данных из RabbitMQ
            username = "<имя_пользователя>"
            password = "<пароль>"
          }
    
          compression {
            # Настройки сжатия данных
            method              = "<метод_сжатия>"
            min_part_size       = <размер_куска_данных>
            min_part_size_ratio = <отношение_размеров>
          }
    
          graphite_rollup {
            # Настройки движка GraphiteMergeTree для прореживания, агрегирования и усреднения (rollup) данных Graphite.
            ...
          }
        }
        ...
      }
      ...
    }
    

    Где:

    • method — метод сжатия: LZ4 или ZSTD.
    • min_part_size — минимальный размер куска данных таблицы в байтах.
    • min_part_size_ratio — отношение размера наименьшего куска данных в таблице к полному размеру таблицы.
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:

  • создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
  • изменение — 90 минут;
  • удаление — 30 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

    curl \
       --request PATCH \
       --header "Authorization: Bearer $IAM_TOKEN" \
       --header "Content-Type: application/json" \
       --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>' \
       --data '{
                  "updateMask": "configSpec.clickhouse.config.<настройка_1>,...,configSpec.clickhouse.config.<настройка_N>",
                  "configSpec": {
                     "clickhouse": {
                        "config": {
                           "<настройка_1>": "<значение_1>",
                           "<настройка_2>": "<значение_2>",
                           ...
                           "<настройка_N>": "<значение_N>"
                        }
                     }
                  }
               }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.
    • configSpec.clickhouse.config — настройки ClickHouse® на уровне сервера. Возможные параметры и их значения см. в описании метода.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью gRPCurl:

    Важно

    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре update_mask (в виде массива строк paths[]).

    Формат перечисления настроек
    "update_mask": {
        "paths": [
            "<настройка_1>",
            "<настройка_2>",
            ...
            "<настройка_N>"
        ]
    }
    
    grpcurl \
       -format json \
       -import-path ~/cloudapi/ \
       -import-path ~/cloudapi/third_party/googleapis/ \
       -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \
       -rpc-header "Authorization: Bearer $IAM_TOKEN" \
       -d '{
              "cluster_id": "<идентификатор_кластера>",
              "update_mask": {
                 "paths": [
                    "configSpec.clickhouse.config.<настройка_1>",
                    "configSpec.clickhouse.config.<настройка_2>",
                    ...
                    "configSpec.clickhouse.config.<настройка_N>"
                 ]
              },
              "config_spec": {
                 "clickhouse": {
                    "config": {
                       "<настройка_1>": "<значение_1>",
                       "<настройка_2>": "<значение_2>",
                       ...
                       "<настройка_N>": "<значение_N>"
                    }
                 }
              }
           }' \
       mdb.api.cloud.yandex.net:443 \
       yandex.cloud.mdb.clickhouse.v1.ClusterService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].
    • config_spec.clickhouse.config — настройки ClickHouse® на уровне сервера. Возможные параметры и их значения см. в описании метода.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Проверить настройки таблицы MergeTree

SQL
  1. Подключитесь к базе данных в кластере.

  2. Чтобы посмотреть все настройки, заданные на уровне таблицы, выполните запрос:

    SHOW CREATE TABLE <название_таблицы>;
    

    Важно

    Выдача SHOW CREATE TABLE содержит только переопределенные пользователем настройки. Если заданное пользователем значение настройки совпадает со значением по умолчанию, эта настройка тоже отображается в выдаче.

Задать настройки таблиц MergeTree с помощью SQL-запросов

Изменить настройки при создании таблицы MergeTree

SQL
  1. Подключитесь к базе данных в кластере.

  2. Создайте таблицу. Чтобы задать ее настройки, перечислите их через запятую в параметре SETTINGS:

    CREATE TABLE <название_таблицы>
       (
       <описание_колонок_таблицы>
       )
       ENGINE = MergeTree
       PRIMARY KEY (<столбец_или_группа_столбцов>)
       SETTINGS
       <название_настройки> = <значение_настройки>,
       <название_настройки> = <значение_настройки>;
    

    Пример запроса для настроек merge_with_ttl_timeout и merge_with_recompression_ttl_timeout:

    CREATE TABLE <имя_таблицы>
       (
       user_id UInt32,
       message String,
       )
       ENGINE = MergeTree
       PRIMARY KEY (user_id)
       SETTINGS merge_with_ttl_timeout = 15000,
       merge_with_recompression_ttl_timeout = 15000;
    

Подробнее о создании таблиц MergeTree см. в документации ClickHouse®.

Изменить настройки существующей таблицы MergeTree

SQL
  1. Подключитесь к базе данных в кластере.

  2. Чтобы изменить настройки для существующей таблицы, выполните запрос:

    ALTER TABLE <имя_таблицы> MODIFY SETTING <название_настройки> = <новое_значение_настройки>;
    

    Вы можете изменить несколько настроек в одном запросе. Для этого перечислите пары <название_настройки> = <новое_значение_настройки> через запятую.

Вернуть настройку таблицы MergeTree к значению по умолчанию

SQL
  1. Подключитесь к базе данных в кластере.

  2. Чтобы вернуть настройку существующей таблицы к значению по умолчанию, выполните запрос:

    ALTER TABLE <имя_таблицы> RESET SETTING <название_настройки>;
    

    Вы можете вернуть к значениям по умолчанию несколько настроек в одном запросе. Для этого перечислите названия настроек через запятую.

ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc.

Была ли статья полезна?

Предыдущая
Изменение настроек кластера
Следующая
На уровне запроса
Проект Яндекса
© 2025 ООО «Яндекс.Облако»