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

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

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

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

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

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

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

  • С помощью SQL-запросов. Так можно задать любые настройки ClickHouse® на уровне запроса. Способ, как установить настройки, зависит от их типа:

    • Настройки пользователей. В SQL-запросах CREATE USER и ALTER USER вы можете передать настройки в условии SETTINGS. В результате настройки применятся только к указанному пользователю.

      Чтобы воспользоваться этим способом, при создании или изменении кластера включите опцию Управление пользователями через SQL. После этого нельзя будет управлять пользователями через интерфейсы Yandex Cloud: управление пользователями через SQL невозможно выключить.

    • Настройки на уровне профиля. В ClickHouse® профиль настроек содержит их значения и ограничения, а также список ролей и пользователей, к которым применяется профиль. Настройки ClickHouse® передаются в SQL-запросах CREATE SETTINGS PROFILE и ALTER SETTINGS PROFILE.

      Чтобы воспользоваться этим способом, при создании или изменении кластера включите опцию Управление пользователями через SQL.

    • Настройки сессии. Во время сессии можно передать настройки ClickHouse® с помощью SQL-запроса SET. Так можно задать настройки в кластере с любой конфигурацией, но они будут действовать только для текущей сессии.

      Способ подходит не для всех SQL-редакторов: в некоторых из них каждый запрос выполняется в отдельной сессии. Проверьте параметры своего SQL-редактора, прежде чем настраивать сессию.

    • Настройки подключения. Когда вы подключаетесь к базе данных с помощью утилиты clickhouse-client, в команде для подключения можно передать настройки ClickHouse® с помощью флагов. Так можно задать настройки в кластере с любой конфигурацией, но они будут действовать только для установленного подключения.

      Вы можете также указать настройки подключения в различных драйверах для ClickHouse® либо передать настройки в виде URL-параметров при отправке запросов HTTP API ClickHouse®. Подробнее об этих способах см. в документации ClickHouse®.

Получить список настроек ClickHouse® на уровне запросаПолучить список настроек ClickHouse® на уровне запроса

SQL
  1. Подключитесь к БД в кластере.

  2. Выполните запрос:

    SELECT name, description, value FROM system.settings;
    

    Результат содержит названия, описания и значения настроек ClickHouse® на уровне запроса. Результат показывает значения для текущей сессии и пользователя, установившего эту сессию.

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

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

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

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

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

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

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

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

    yc managed-clickhouse user get <имя_пользователя> <имя_или_идентификатор_кластера>
    
  2. Посмотрите описание команды CLI для изменения настроек пользователя:

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

    yc managed-clickhouse user update <имя_пользователя> \
       --cluster-name=<имя_кластера> \
       --settings="<имя_параметра_1>=<значение_1>,<имя_параметра_2>=<значение_2>,..."
    

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

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

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

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

    resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
      ...
      user {
        name = <имя_пользователя>
        ...
        settings {
          <имя_параметра1> = <значение1>
          <имя_параметра2> = <значение2>
          ...
        }
      }
      ...
    }
    
  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. Воспользуйтесь методом User.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/<идентификатор_кластера>/users/<имя_пользователя>' \
        --data '{
                  "updateMask": "<перечень_изменяемых_настроек>",
                  "settings": { <настройки_ClickHouse®> }
                }'
    

    Где:

    • updateMask — перечень изменяемых параметров в одну строку через запятую.

    • settings — нужные настройки ClickHouse® с новыми значениями.

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

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

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

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

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

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

  3. Воспользуйтесь вызовом UserService.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/user_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "user_name": "<имя_пользователя>",
              "update_mask": {
                "paths": [
                  <перечень_изменяемых_настроек>
                ]
              },
              "settings": { <настройки_ClickHouse®> }
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.clickhouse.v1.UserService.Update
    

    Где:

    • update_mask — перечень изменяемых параметров в виде массива строк paths[].

    • settings — нужные настройки ClickHouse® с новыми значениями.

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

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

Задать настройки ClickHouse® в учетной записи пользователяЗадать настройки ClickHouse® в учетной записи пользователя

Передать настройки ClickHouse® можно при добавлении нового пользователя или изменении настроек уже созданного пользователя.

Добавить нового пользователя с настройками ClickHouse®Добавить нового пользователя с настройками ClickHouse®

SQL
  1. Подключитесь к БД в кластере под учетной записью admin.

  2. Создайте пользователя:

    CREATE USER <имя_пользователя>
       IDENTIFIED WITH sha256_password BY '<пароль_пользователя>'
       SETTINGS <список_настроек_ClickHouse®>;
    

    Примечание

    Имя пользователя может содержать латинские буквы, цифры, дефис и подчеркивание, но должно начинаться с буквы или подчеркивания.

    Длина пароля от 8 до 128 символов.

    В параметре SETTINGS помимо значения настройки можно указать ее минимальное и максимальное значение. Пример для настройки idle_connection_timeout:

    CREATE USER <имя_пользователя>
       IDENTIFIED WITH sha256_password BY 'password'
       SETTINGS idle_connection_timeout = 60 MIN 5 MAX 120;
    

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

Изменить настройки ClickHouse® у пользователяИзменить настройки ClickHouse® у пользователя

SQL
  1. Подключитесь к БД в кластере под учетной записью admin.

  2. Измените учетную запись пользователя:

    ALTER USER <имя_пользователя> SETTINGS <список_настроек_ClickHouse®>;
    

    Подробнее об изменении учетных записей см. в документации ClickHouse®.

Задать настройки ClickHouse® в профиле настроекЗадать настройки ClickHouse® в профиле настроек

Передать настройки ClickHouse® можно при создании или изменении профиля настроек.

Создать профиль с настройками ClickHouse®Создать профиль с настройками ClickHouse®

SQL
  1. Подключитесь к БД в кластере под учетной записью admin.

  2. Создайте профиль настроек:

    CREATE SETTINGS PROFILE <название_профиля_настроек>
       SETTINGS <список_настроек_ClickHouse®>;
    

    В параметре SETTINGS помимо значения настройки можно указать ее минимальное и максимальное значение. Пример для настройки idle_connection_timeout:

    CREATE SETTINGS PROFILE <название_профиля_настроек>
       SETTINGS idle_connection_timeout = 60 MIN 5 MAX 120;
    

    Профиль настроек можно привязать к пользователю:

    CREATE SETTINGS PROFILE <название_профиля_настроек>
       SETTINGS <список_настроек_ClickHouse®>
       TO <имя_пользователя>;
    

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

Изменить настройки ClickHouse® в профиле настроекИзменить настройки ClickHouse® в профиле настроек

SQL
  1. Подключитесь к БД в кластере под учетной записью admin.

  2. Измените профиль настроек:

    ALTER SETTINGS PROFILE <название_профиля_настроек>
       SETTINGS <список_настроек_ClickHouse®>;
    

    В этом запросе можно задать граничные значения настроек и привязать профиль к пользователю. Подробнее об изменении профилей настроек см. в документации ClickHouse®.

Задать настройки ClickHouse® в сессииЗадать настройки ClickHouse® в сессии

SQL
  1. Подключитесь к БД в кластере.

  2. Выполните запрос:

    SET <имя_пользователя> SETTINGS <список_настроек_ClickHouse®>;
    

    Примененные настройки будут действовать только во время открытой сессии.

  3. Убедитесь, что настройки применились:

    SELECT value FROM system.settings;
    

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

    SELECT value FROM system.settings WHERE name='<название_настройки>';
    

Задать настройки ClickHouse® при подключении к БД через командную строкуЗадать настройки ClickHouse® при подключении к БД через командную строку

SQL
  1. Установите зависимости, необходимые для подключения к БД.

  2. Посмотрите описание команды для подключения к БД:

    clickhouse-client --help
    

    Большинство флагов в выводе команды — это расширенные настройки ClickHouse®.

  3. Выберите флаги с нужными настройками. Для этого соотнесите названия флагов с названиями настроек ClickHouse®.

  4. Укажите выбранные флаги в команде на подключение к БД:

    • Подключение без SSL:

      clickhouse-client --host <FQDN_любого_хоста_ClickHouse®> \
                        --user <имя_пользователя> \
                        --database <имя_БД> \
                        --port 9000 \
                        --ask-password \
                        <флаги_с_настройками_ClickHouse®>
      
    • Подключение с SSL:

      clickhouse-client --host <FQDN_любого_хоста_ClickHouse®> \
                        --secure \
                        --user <имя_пользователя> \
                        --database <имя_БД> \
                        --port 9440 \
                        --ask-password \
                        <флаги_с_настройками_ClickHouse®>
      
    • Пример подключения без SSL с настройкой idle_connection_timeout:

      clickhouse-client --host rc1a-goh2a9tr********.mdb.yandexcloud.net \
                        --user user1 \
                        --database db1 \
                        --port 9440 \
                        --ask-password \
                        --idle_connection_timeout 60
      
  5. Убедитесь, что настройки применились:

    SELECT value FROM system.settings;
    

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

    SELECT value FROM system.settings WHERE name='<название_настройки>';
    

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

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

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