Создание ClickHouse-кластера

ClickHouse-кластер — это один или несколько хостов базы данных, между которыми можно настроить репликацию.

Важная информация

При создании кластера ClickHouse из 2 и более хостов Managed Service for ClickHouse автоматически создает кластер из 3 хостов ZooKeeper для управления репликацией и отказоустойчивостью. Эти хосты учитываются в расчете использованной квоты ресурсов в облаке , и в расчете стоимости кластера . Подробнее — в разделе о репликации для ClickHouse.

Количество хостов, которые можно создать вместе с ClickHouse-кластером, зависит от выбранного варианта хранилища:

  • При использовании сетевых дисков вы можете запросить любое количество хостов (от 1 до пределов текущей квоты).

  • При использовании SSD-дисков вместе с кластером можно создать не меньше 2 реплик (минимум 2 реплики необходимо, чтобы обеспечить отказоустойчивость). Если после создания кластера доступных ресурсов каталога останется достаточно, вы можете добавить дополнительные реплики.

  1. В консоли управления выберите каталог, в котором нужно создать кластер БД.

  2. Выберите сервис Managed Service for ClickHouse.

  3. Нажмите кнопку Создать кластер.

  4. Введите имя кластера в поле Имя кластера. Имя кластера должно быть уникальным в рамках каталога.

  5. Выберите окружение, в котором нужно создать кластер (после создания кластера окружение изменить невозможно):

    • production — для стабильных версий ваших приложений.
    • prestable — для тестирования, в том числе самого сервиса Managed Service for ClickHouse. Prestable-окружение обновляется чаще, из-за чего в нем раньше исправляются уже известные проблемы, но могут происходить обратно несовместимые изменения.
  6. Выберите класс хостов — он определяет технические характеристики виртуальных машин, на которых будут развернуты хосты БД. Все доступные варианты перечислены в разделе Классы хостов. При изменении класса хостов для кластера меняются характеристики всех уже созданных экземпляров.

  7. В блоке Размер хранилища:

    • Выберите тип хранилища — более гибкое сетевое (network-hdd или network-ssd) или более быстрое локальное SSD-хранилище (local-ssd). Размер локального хранилища можно менять только с шагом 100 ГБ.

    • Выберите объем, который будет использоваться для данных и резервных копий. Подробнее о том, как занимают пространство резервные копии, см. раздел Резервные копии.

  8. В блоке База данных укажите атрибуты БД:

    • Имя БД.
    • Имя пользователя.
    • Пароль пользователя. Минимум 8 символов.
  9. В блоке Хосты укажите параметры хостов БД, создаваемых вместе с кластером (помните, что используя SSD-диски при создании ClickHouse-кластера можно задать не меньше 2 хостов). Чтобы изменить добавленный хост, наведите курсор на строку хоста и нажмите значок image.

  10. Нажмите кнопку Создать кластер.

Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы создать кластер:

  1. Проверьте, есть ли в каталоге подсети для хостов кластера:

    $ yc vpc subnet list
    

    Если ни одной подсети в каталоге нет, создайте нужные подсети в сервисе VPC.

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

    $ yc managed-clickhouse cluster create --help
    
  3. Укажите параметры кластера в команде создания (в примере приведены только обязательные флаги):

    $ yc managed-clickhouse cluster create \
       --name <имя кластера> \
       --environment <окружение, prestable или production> \
       --network-name <имя сети> \
       --host type=<clickhouse или zookeeper>,zone-id=<зона доступности>,subnet-id=<идентификатор подсети> \
       --resource-preset <класс хоста> \
       --clickhouse-disk-type <network-hdd | network-ssd | local-ssd> \
       --clickhouse-disk-size <размер хранилища в гигабайтах> \
       --user name=<имя пользователя>,password=<пароль пользователя> \
       --database name=<имя базы данных>
    

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

Примеры

Создание кластера с одним хостом

Чтобы создать кластер с одним хостом, следует передать один параметр --host.

Допустим, нужно создать ClickHouse-кластер со следующими характеристиками:

  • С именем mych.
  • В окружении production.
  • В сети default.
  • С одним хостом ClickHouse класса s1.nano в подсети b0rcctk2rvtr8efcch64, в зоне доступности ru-central1-c.
  • С сетевым SSD-хранилищем объемом 20 ГБ.
  • С одним пользователем, user1, с паролем user1user1.
  • С одной базой данных, db1.

Запустите следующую команду:

$ yc managed-clickhouse cluster create \
     --name mych \
     --environment=production \
     --network-name default \
     --clickhouse-resource-preset s1.nano \
     --host type=clickhouse,zone-id=ru-central1-c,subnet-id=b0cl69g98qumiqmtg12a \
     --clickhouse-disk-size 20 \
     --clickhouse-disk-type network-ssd \
     --user name=user1,password=user1user1 \
     --database name=db1