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

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

  • Включить шардирование
  • Создать шард
  • Получить список шардов в кластере
  • Изменить шард
  • Удалить шард
  1. Пошаговые инструкции
  2. Шардирование
  3. Управление шардами

Управление шардами в кластере ClickHouse®

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 13 февраля 2026 г.
  • Включить шардирование
  • Создать шард
  • Получить список шардов в кластере
  • Изменить шард
  • Удалить шард

Вы можете включить шардирование для кластера, а также добавлять и настраивать отдельные шарды.

Включить шардированиеВключить шардирование

Кластеры Managed Service for ClickHouse® создаются с одним шардом. Чтобы начать непосредственно шардирование данных, добавьте еще один или несколько шардов и создайте распределенную таблицу.

Создать шардСоздать шард

Количество шардов в кластерах Managed Service for ClickHouse® ограничено квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты и найдите блок Managed Service for ClickHouse.

Вы можете создать сразу несколько шардов в кластере.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. В консоли управления выберите каталог, в котором находится кластер.

  2. Перейдите в сервис Managed Service for ClickHouse.

  3. Нажмите на имя нужного кластера и перейдите на вкладку Шарды.

  4. Нажмите кнопку Создать шарды.

  5. Нажмите на значок в строке нового шарда, чтобы изменить его параметры:

    • имя и вес;
    • конфигурацию хостов шарда.
  6. (Опционально) Нажмите кнопку Добавить шард, чтобы добавить дополнительные шарды, и укажите их параметры.

  7. (Опционально) Нажмите кнопку Добавить хост, чтобы добавить дополнительные хосты, и укажите их параметры.

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

    Важно

    Используйте копирование схемы данных, только если схема одинакова на всех шардах кластера.

  9. Нажмите кнопку Создать шард.

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

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

Чтобы создать один или несколько шардов:

  1. Посмотрите описание команды CLI для создания шардов:

    yc managed-clickhouse shards add --help
    
  2. Выполните команду создания шардов.

    Укажите в команде один или несколько параметров --shard: по одному параметру на каждый шард, который нужно создать.

    Пример команды для создания одного шарда (приведены не все доступные параметры):

    yc managed-clickhouse shards add \
      --cluster-name=<имя_кластера> \
      --shard name=<имя_нового_шарда>,`
             `weight=<вес_шарда> \
      --host zone-id=<зона_доступности>,`
            `subnet-name=<имя_подсети>,`
            `shard-name=<имя_шарда> \
      --copy-schema
    

    Где:

    • --cluster-name — имя кластера.

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

    • --shard — параметры шарда:

      • name — имя шарда. Должно быть уникальным в кластере.

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

      • weight — вес шарда.

    • --host — параметры хоста, который будет добавлен в шард:

      • zone-id — зона доступности.

      • subnet-name — имя подсети.

      • shard-name — имя шарда, в который будет добавлен хост.

    • --copy-schema — опциональный параметр, который инициирует копирование схемы данных со случайной реплики одного из шардов на хосты нового шарда.

      Важно

      Используйте копирование схемы данных, только если схема одинакова на всех шардах кластера.

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

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

  2. Добавьте к описанию кластера Managed Service for ClickHouse® один или несколько блоков shard и блоков host типа CLICKHOUSE с заполненным полем shard_name:

    resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
      ...
      shard {
        name   = "<имя_шарда>"
        weight = <вес_шарда>
      }
    
      host {
        type       = "CLICKHOUSE"
        zone       = "<зона_доступности>"
        subnet_id  = yandex_vpc_subnet.<подсеть_в_зоне_доступности>.id
        shard_name = "<имя_шарда>"
      }
    }
    
  3. (Опционально) Чтобы скопировать схему со случайной реплики одного из шардов на хосты новых шардов, добавьте к описанию кластера поле copy_schema_on_new_hosts со значением true.

    Важно

    Используйте копирование схемы данных, только если схема одинакова на всех шардах кластера.

  4. Проверьте корректность настроек.

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

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

      terraform validate
      

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

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

    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.AddShards и выполните запрос, например с помощью cURL:

    1. Создайте файл body.json и добавьте в него следующее содержимое:

      {
        "shardSpecs": [
          {
            "name": "<имя_шарда>",
            "configSpec": {
              "clickhouse": {
                "resources": {
                  "resourcePresetId": "<класс_хостов>",
                  "diskSize": "<размер_хранилища_в_байтах>",
                  "diskTypeId": "<тип_диска>"
                },
                "weight": "<вес_шарда>"
              }
            }
          }
        ],
        "hostSpecs": [
          {
            "zoneId": "<зона_доступности>",
            "type": "CLICKHOUSE",
            "subnetId": "<идентификатор_подсети>",
            "assignPublicIp": <публичный_доступ_к_хосту>,
            "shardName": "<имя_шарда>"
          }
        ],
        "copySchema": <копирование_схемы_данных>
      }
      

      Где:

      • shardSpecs — настройки шардов, которые будут добавлены в кластер. Настройки представлены в виде массива элементов. Каждый элемент соответствует отдельному шарду и имеет следующую структуру:

        • name — имя шарда.

        • configSpec.clickhouse.resources — ресурсы хостов, которые добавляются в создаваемый шард:

          • resourcePresetId — идентификатор класса хостов. Список доступных классов хостов с их идентификаторами можно запросить с помощью метода ResourcePreset.List.
          • diskSize — размер диска в байтах.
          • diskTypeId — тип диска.
      • configSpec.clickhouse.weight — вес шарда.

        По умолчанию каждому шарду назначается вес 1. Если какому-либо шарду назначить вес больше, данные будут распределены между шардами в соответствии с весами.

        При расчете приоритета шарда при распределении данных складываются веса всех шардов, далее вес каждого шарда делится на полученную сумму. Например, если у одного шарда вес 1, а у другого — 3, то у первого шарда приоритет 1/4, а у второго — 3/4. Чем выше приоритет, тем больше данных окажется на шарде.

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

      • hostSpecs — настройки хостов, которые будут добавлены в шард. Настройки представлены в виде массива элементов. Каждый элемент соответствует отдельному хосту и имеет следующую структуру:

        • zoneId — зона доступности.
        • type — тип хоста. В шарды добавляются только хосты CLICKHOUSE.
        • subnetId — идентификатор подсети.
        • assignPublicIp — доступность хоста из интернета по публичному IP-адресу: true или false.
        • shardName — имя шарда.
      • copySchema — копирование схемы данных со случайной реплики одного из шардов на хосты нового шарда. Возможные значения: true или false.

        Важно

        Используйте копирование схемы данных, только если схема одинакова на всех шардах кластера.

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

      curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>/shards:batchCreate' \
        --data '@body.json'
      

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

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

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

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

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

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

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

    1. Создайте файл body.json и добавьте в него следующее содержимое:

      {
        "cluster_id": "<идентификатор_кластера>",
        "shard_specs": [
          {
            "name": "<имя_шарда>",
            "config_spec": {
              "clickhouse": {
                "resources": {
                  "resource_preset_id": "<класс_хостов>",
                  "disk_size": "<размер_хранилища_в_байтах>",
                  "disk_type_id": "<тип_диска>"
                },
                "weight": "<вес_шарда>"
              }
            }
          }
        ],
        "host_specs": [
          {
            "zone_id": "<зона_доступности>",
            "type": "CLICKHOUSE",
            "subnet_id": "<идентификатор_подсети>",
            "assign_public_ip": <публичный_доступ_к_хосту>,
            "shard_name": "<имя_шарда>"
          }
        ],
        "copy_schema": <копирование_схемы_данных>
      }
      

      Где:

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

      • shard_specs — настройки шардов, которые будут добавлены в кластер. Настройки представлены в виде массива элементов. Каждый элемент соответствует отдельному шарду и имеет следующую структуру:

        • name — имя шарда.

        • config_spec.clickhouse.resources — ресурсы хостов, которые добавляются в создаваемый шард:

          • resource_preset_id — идентификатор класса хостов. Список доступных классов хостов с их идентификаторами можно запросить с помощью метода ResourcePresetService.List.
          • disk_size — размер диска в байтах.
          • disk_type_id — тип диска.
        • config_spec.clickhouse.weight — вес шарда.

          По умолчанию каждому шарду назначается вес 1. Если какому-либо шарду назначить вес больше, данные будут распределены между шардами в соответствии с весами.

          При расчете приоритета шарда при распределении данных складываются веса всех шардов, далее вес каждого шарда делится на полученную сумму. Например, если у одного шарда вес 1, а у другого — 3, то у первого шарда приоритет 1/4, а у второго — 3/4. Чем выше приоритет, тем больше данных окажется на шарде.

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

      • host_specs — настройки хостов, которые будут добавлены в шард. Настройки представлены в виде массива элементов. Каждый элемент соответствует отдельному хосту и имеет следующую структуру:

        • zone_id — зона доступности.
        • type — тип хоста. В шарды добавляются только хосты CLICKHOUSE.
        • subnet_id — идентификатор подсети.
        • assign_public_ip — доступность хоста из интернета по публичному IP-адресу: true или false.
        • shard_name — имя шарда.
      • copy_schema — копирование схемы данных со случайной реплики одного из шардов на хосты нового шарда. Возможные значения: true или false.

        Важно

        Используйте копирование схемы данных, только если схема одинакова на всех шардах кластера.

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

      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 @ \
        mdb.api.yandexcloud.kz:443 \
        yandex.cloud.mdb.clickhouse.v1.ClusterService.AddShards \
        < body.json
      
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Получить список шардов в кластереПолучить список шардов в кластере

Консоль управления
CLI
REST API
gRPC API
  1. В консоли управления выберите каталог, в котором находится кластер.
  2. Перейдите в сервис Managed Service for ClickHouse.
  3. Нажмите на имя нужного кластера, затем выберите вкладку Шарды.

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

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

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

yc managed-clickhouse shards list --cluster-name=<имя_кластера>

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

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

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

    curl \
      --request GET \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>/shards'
    

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

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

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

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

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

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

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

    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": "<идентификатор_кластера>"
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.clickhouse.v1.ClusterService.ListShards
    

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

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

Изменить шардИзменить шард

Вы можете изменить вес шарда, а также класс хоста, тип диска и размер хранилища.

Важно

При изменении типа диска хосты кластера пересоздаются. Данные реплицированных таблиц сохраняются автоматически. Данные нереплицированных таблиц будут потеряны. Перед изменением типа диска преобразуйте нереплицированные таблицы в реплицированные или создайте резервную копию данных.

Примечание

Чтобы изменить тип диска на local-ssd, обратитесь в техническую поддержку.

Консоль управления
CLI
REST API
gRPC API
  1. В консоли управления выберите каталог, в котором находится кластер.
  2. Перейдите в сервис Managed Service for ClickHouse.
  3. Нажмите на имя нужного кластера, затем выберите вкладку Шарды.
  4. Нажмите и выберите пункт Редактировать.

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

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

Чтобы изменить шард в кластере:

  1. Посмотрите описание команды CLI для изменения шарда:

    yc managed-clickhouse shards update --help
    
  2. Передайте в команде параметры, которые вы хотите изменить:

    yc managed-clickhouse shards update <имя_шарда> \
      --cluster-name <имя_кластера> \
      --weight <вес_шарда> \
      --clickhouse-resource-preset <класс_хостов> \
      --clickhouse-disk-size <размер_хранилища> \
      --clickhouse-disk-type <тип_диска>
    

    Где:

    • --cluster-name — имя кластера. Его можно запросить со списком кластеров в каталоге.
    • --weight — вес шарда. Минимальное значение — 0.
    • --clickhouse-resource-preset — класс хостов.
    • --clickhouse-disk-size — размер хранилища в гигабайтах.
    • --clickhouse-disk-type — тип диска.

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

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

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

    Важно

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

    curl \
        --request PATCH \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>/shards/<имя_шарда>' \
        --data '{
                  "updateMask": "configSpec.clickhouse.config.<настройка_ClickHouse®>,configSpec.clickhouse.resources,configSpec.clickhouse.weight",
                  "configSpec": {
                    "clickhouse": {
                      "config": {
                        <настройки_ClickHouse®>
                      },
                      "resources": {
                        "resourcePresetId": "<класс_хостов>",
                        "diskSize": "<размер_хранилища_в_байтах>",
                        "diskTypeId": "<тип_диска>"
                      },
                      "weight": "<вес_шарда>"
                    }
                  }
                }'
    

    Где:

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

    • configSpec.clickhouse — изменяемые параметры шарда:

      • config — настройки ClickHouse®. Список доступных настроек приведен в описании метода.

      • resources — ресурсы хостов, которые добавляются в создаваемый шард:

        • resourcePresetId — идентификатор класса хостов. Список доступных классов хостов с их идентификаторами можно запросить с помощью метода ResourcePreset.List.
        • diskSize — размер диска в байтах.
        • diskTypeId — тип диска.
      • weight — вес шарда.

        По умолчанию каждому шарду назначается вес 1. Если какому-либо шарду назначить вес больше, данные будут распределены между шардами в соответствии с весами.

        При расчете приоритета шарда при распределении данных складываются веса всех шардов, далее вес каждого шарда делится на полученную сумму. Например, если у одного шарда вес 1, а у другого — 3, то у первого шарда приоритет 1/4, а у второго — 3/4. Чем выше приоритет, тем больше данных окажется на шарде.

        Подробнее см. в документации 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.UpdateShard и выполните запрос, например с помощью 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": "<идентификатор_кластера>",
            "shard_name": "<имя_шарда>",
            "update_mask": {
              "paths": [
                "config_spec.clickhouse.config.<настройка_ClickHouse®>",
                "config_spec.clickhouse.resources",
                "config_spec.clickhouse.weight"
              ]
            },
            "config_spec": {
              "clickhouse": {
                "config": {
                  <настройки_ClickHouse®>
                },
                "resources": {
                  "resource_preset_id": "<класс_хостов>",
                  "disk_size": "<размер_хранилища_в_байтах>",
                  "disk_type_id": "<тип_диска>"
                },
                "weight": "<вес_шарда>"
              }
            }
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.clickhouse.v1.ClusterService.UpdateShard
    

    Где:

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

    • config_spec.clickhouse — изменяемые параметры шарда:

      • config — настройки ClickHouse®. Список доступных настроек приведен в описании метода.

      • resources — ресурсы хостов, которые добавляются в создаваемый шард:

        • resource_preset_id — идентификатор класса хостов. Список доступных классов хостов с их идентификаторами можно запросить с помощью метода ResourcePreset.List.
        • disk_size — размер диска в байтах.
        • disk_type_id — тип диска.
      • weight — вес шарда.

        По умолчанию каждому шарду назначается вес 1. Если какому-либо шарду назначить вес больше, данные будут распределены между шардами в соответствии с весами.

        При расчете приоритета шарда при распределении данных складываются веса всех шардов, далее вес каждого шарда делится на полученную сумму. Например, если у одного шарда вес 1, а у другого — 3, то у первого шарда приоритет 1/4, а у второго — 3/4. Чем выше приоритет, тем больше данных окажется на шарде.

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

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

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

Удалить шардУдалить шард

Вы можете удалить шард из кластера ClickHouse®, если он не является:

  • Единственным шардом.
  • Единственным шардом в группе шардов.

Удаление шарда приведет к удалению всех таблиц и данных, которые находятся на этом шарде.

Консоль управления
CLI
Terraform
REST API
gRPC API
  1. В консоли управления выберите каталог, в котором находится кластер.
  2. Перейдите в сервис Managed Service for ClickHouse.
  3. Нажмите на имя нужного кластера и выберите вкладку Шарды.
  4. Удалите один или несколько шардов:
    • Чтобы удалить один шард, нажмите на значок в строке нужного шарда и выберите пункт Удалить.
    • Чтобы удалить несколько шардов сразу, выберите нужные шарды и нажмите Удалить в нижней части экрана.
  5. В открывшемся окне включите опцию Я удаляю шарды и нажмите кнопку Удалить.

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

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

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

Команда для удаления одного шарда имеет вид:

yc managed-clickhouse shards delete \
  --cluster-name=<имя_кластера> \
  <имя_шарда>

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

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

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

  2. Удалите из описания кластера Managed Service for ClickHouse® нужные блоки shard и host.

  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

  4. Введите слово yes и нажмите Enter.

    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.DeleteShards и выполните запрос, например с помощью cURL:

    curl \
      --request DELETE \
      --header "Authorization: Bearer $IAM_TOKEN" \
      --url 'https://mdb.api.yandexcloud.kz/managed-clickhouse/v1/clusters/<идентификатор_кластера>/shards:batchDelete' \
      --data '{
                "shardNames": [
                  <перечень_имен_шардов>
                ]
              }'
    

    Где shardNames — массив строк. Каждая строка — имя шарда, который нужно удалить. Имена шардов можно запросить со списком шардов в кластере.

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

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

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

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

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

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

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

    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": "<идентификатор_кластера>",
            "shard_names": [
              <перечень_имен_шардов>
            ]
          }' \
      mdb.api.yandexcloud.kz:443 \
      yandex.cloud.mdb.clickhouse.v1.ClusterService.DeleteShards
    

    Где shard_names — массив строк. Каждая строка — имя шарда, который нужно удалить. Имена шардов можно запросить со списком шардов в кластере.

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

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

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

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

Предыдущая
Настройка доступа к Object Storage
Следующая
Управление группами шардов
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»