Управление шардами
Вы можете включить шардирование для кластера, а также добавлять и настраивать отдельные шарды.
Включить шардирование
Кластеры Managed Service for ClickHouse создаются с одним шардом. Чтобы начать непосредственно шардирование данных, добавьте еще один или несколько шардов и создайте распределенную таблицу.
Добавить шард
Количество шардов в кластерах Managed Service for ClickHouse ограничено квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты и найдите блок Yandex Managed Service for ClickHouse.
-
В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
-
Нажмите на имя нужного кластера и перейдите на вкладку Шарды.
-
Нажмите кнопку Добавить шард.
-
Укажите параметры шарда:
- имя и вес;
- чтобы скопировать схему со случайной реплики одного из шардов на хосты нового шарда, выберите опцию Копировать схему данных;
- нужное количество хостов.
-
Нажмите кнопку Создать шард.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы добавить шард в кластер, выполните команду (в примере приведены не все доступные параметры):
yc managed-clickhouse shards add <имя нового шарда> \
--cluster-name=<имя кластера> \
--host zone-id=<зона доступности>,`
`subnet-name=<имя подсети>
Где:
<имя нового шарда>
— должно быть уникальным в кластере.
Может содержать латинские буквы, цифры, дефис и нижнее подчеркивание. Максимальная длина — 63 символа.--cluster-name
— имя кластера.
Имя кластера можно запросить со списком кластеров в каталоге.--host
— параметры хоста:zone-id
— зона доступности.subnet-name
— имя подсети.
Примечание
Terraform не позволяет указывать вес шардов.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание ClickHouse-кластера.
-
Добавьте к описанию кластера Managed Service for ClickHouse блок
host
типаCLICKHOUSE
с заполненным полемshard_name
или измените существующие хосты:resource "yandex_mdb_clickhouse_cluster" "<имя кластера>" { ... host { type = "CLICKHOUSE" zone = "<зона доступности>" subnet_id = yandex_vpc_subnet.<подсеть в зоне доступности>.id shard_name = "<имя шарда>" } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Добавить шард в кластер можно с помощью метода addShard.
Чтобы скопировать схему данных со случайной реплики одного из шардов на хосты нового шарда, передайте в запросе параметр copySchema
со значением true
.
Важно
Используйте опцию копирования схемы данных только в том случае, когда схема одинакова на всех шардах кластера.
Получить список шардов в кластере
-
В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
-
Нажмите на имя нужного кластера, затем выберите вкладку Шарды.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список шардов в кластере, выполните команду:
yc managed-clickhouse shards list --cluster-name=<имя кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
Получить список шардов кластера можно с помощью метода listShards.
Изменить шард
Вы можете изменить вес шарда, а также класс хоста и объем хранилища.
- В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
- Нажмите на имя нужного кластера, затем выберите вкладку Шарды.
- Нажмите и выберите пункт Изменить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить шард в кластере:
-
Посмотрите описание команды CLI для изменения шарда:
yc managed-clickhouse shards update --help
-
Запустите операцию, например, изменения веса для шарда:
yc managed-clickhouse shards update <имя шарда> \ --cluster-name=<имя кластера> \ --weight=<вес шарда>
Где:
<имя шарда>
— можно запросить со списком шардов в кластере.--cluster-name
— имя кластера.
Имя кластера можно запросить со списком кластеров в каталоге.--weight
— вес шарда. Минимальное значение —0
.
После успешного завершения операции CLI выведет информацию об измененном шарде.
Изменить настройки шарда можно с помощью метода updateShard.
Удалить шард
Вы можете удалить шард из ClickHouse-кластера, если он не является:
- Единственным шардом.
- Единственным шардом в группе шардов.
Удаление шарда приведет к удалению всех таблиц и данных, которые находятся на этом шарде.
-
В консоли управления перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
-
Нажмите на имя нужного кластера и выберите вкладку Шарды.
-
Нажмите значок в строке нужного хоста и выберите пункт Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы удалить шард из кластера, выполните команду:
yc managed-clickhouse shards delete <имя шарда> \
--cluster-name=<имя кластера>
Имя шарда можно запросить со списком шардов в кластере, имя кластера — со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание ClickHouse-кластера.
-
Удалите из описания кластера Managed Service for ClickHouse блок
host
с описанием шарда. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите удаление ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Удалить шард можно с помощью метода deleteShard.