Типы дисков
Managed Service for ClickHouse позволяет использовать сетевые и локальные диски для организации хранилища кластеров баз данных. Сетевые диски реализованы на базе сетевых блоков — виртуальных дисков в инфраструктуре Yandex Cloud. Локальные диски физически размещаются в серверах хостов БД.
При создании кластера вы можете выбрать для хранилища следующие типы дисков:
-
Сетевые HDD-диски (
network-hdd
) — самый экономичный вариант для кластеров, не требовательных к скорости записи и чтения. -
Сетевые SSD-диски (
network-ssd
) — компромиссный вариант: медленнее, чем локальные SSD-диски, но, в отличие от них, обеспечивают сохранность данных при выходе из строя оборудования Yandex Cloud. -
Нереплицируемые SSD-диски (
network-ssd-nonreplicated
) — сетевые SSD-диски с повышенной производительностью, реализованной за счет устранения избыточности.Объем такого хранилища можно увеличивать только с шагом 93 ГБ.
-
Локальные SSD-диски (
local-ssd
) — самые быстрые диски.Объем такого хранилища можно увеличивать:
- для платформ Intel Broadwell и Intel Cascade Lake — только с шагом 100 ГБ;
- для платформы Intel Ice Lake — только с шагом 368 ГБ.
Если при создании или изменении кластера включить настройку Гибридное хранилище, то появится возможность распределять данные между хранилищем кластера и объектным хранилищем Yandex Object Storage. Например, часто используемые «горячие» данные можно разместить в хранилище кластера, а редко используемые «холодные» данные — в более дешевом и медленном объектном хранилище. Подробнее см. Особенности гибридного хранилища.
Особенности хранилища на локальных SSD-дисках
Хранилище на локальных SSD-дисках не обеспечивает отказоустойчивости хранения данных, а также влияет на тарификацию кластера в целом:
- Такое хранилище в кластере из одного хоста не обеспечивает отказоустойчивости: при отказе диска данные теряются безвозвратно. Поэтому при создании нового кластера Managed Service for ClickHouse с использованием этого типа дисков автоматически настраивается отказоустойчивая конфигурация из двух хостов.
- Кластер с таким хранилищем тарифицируется, даже если он остановлен. Подробнее — в правилах тарификации.
Особенности хранилища на нереплицируемых SSD-дисках
Хранилище на нереплицируемых SSD-дисках в кластере из одного хоста не обеспечивает отказоустойчивости: при отказе диска данные теряются безвозвратно. Поэтому при создании нового кластера с использованием этого типа диска автоматически настраивается отказоустойчивая конфигурация из трех хостов.
Особенности гибридного хранилища
Гибридное хранилище обеспечивает для таблиц на движке MergeTree отказоустойчивое хранение данных и управляет их размещением: данные размещаются либо в кластерном, либо в объектном хранилище в зависимости от заданной политики хранения для таблиц.
Важно
Данные таблиц на движках, отличных от MergeTree, будут храниться только в кластерном хранилище.
Чтобы начать использовать гибридное хранилище:
-
Создайте кластер нужного вида с версией ClickHouse не ниже 22.8. Настройка объектного хранилища не требуется.
-
Добавьте базы данных и таблицы в кластер. Если политика хранения по умолчанию не подходит для некоторых таблиц, задайте нужные политики для этих таблиц:
-
Чтобы указать политику при создании таблицы, задайте настройку
storage_policy
:CREATE TABLE table_with_non_default_policy ( <схема_таблицы> ) ENGINE = MergeTree ... SETTINGS storage_policy = '<тип политики хранения>';
-
Чтобы задать или изменить политику для уже существующей таблицы, используйте запрос:
ALTER TABLE table_with_non_default_policy MODIFY SETTING storage_policy = '<тип политики хранения>';
-
Пример см. в разделе Использование гибридного хранилища.
Доступные политики хранения
Примечание
Создавать новые политики хранения или изменять уже существующие нельзя.
В кластере Managed Service for ClickHouse с включенным гибридным хранилищем предустановлены следующие политики хранения:
-
default
(по умолчанию) — кластер автоматически управляет размещением данных в зависимости от:- настроек гибридного хранилища;
- настроек TTL для таблиц (время жизни).
При достаточном объеме свободного места в кластерном хранилище, перемещение в объектное хранилище выполняется только для тех строк таблицы, для которых истекло значение TTL. Эта операция позволяет переместить часть данных в объектное хранилище, не дожидаясь заполнения кластерного хранилища.
Настроить перемещение строк с истекшим сроком жизни в объектное хранилище и задать значение TTL можно при создании таблицы или позднее.
-
local
— строки таблицы с такой политикой размещаются только в кластерном хранилище. Перемещения данных между хранилищами не происходит. -
object_storage
— строки таблицы с такой политикой размещаются только в объектном хранилище. Перемещения данных между хранилищами не происходит.
Политики хранения не оказывают влияния на операции слияния кусков данных:
- Разрешено выполнять слияние кусков данных, находящихся в хранилищах (настройка политики
prefer_not_to_merge
). - Не накладывается ограничений на максимальный размер итогового куска данных (настройка политики
max_data_part_size_bytes
), который может получиться в результате слияния меньших кусков.
Однако можно влиять на поведение этих операций с помощью доступных в кластере настроек ClickHouse.
Посмотреть актуальные настройки политик можно с помощью запроса:
SELECT *
FROM system.storage_policies;
Подробнее о политиках хранения и их настройках см. в документации ClickHouse.
Настройки гибридного хранилища
В кластере Managed Service for ClickHouse с включенным гибридным хранилищем доступны следующие настройки:
-
data_cache_enabled
— разрешает временное хранение в кластерном хранилище данных, запрошенных из объектного хранилища. По умолчанию —true
(разрешено).При таком подходе запрашиваемые из объектного хранилища
холодные
данные попадают на быстрые диски, где их обработка будет занимать меньше времени. -
data_cache_max_size
— определяет максимальный объем памяти (в байтах), выделяемый в кластерном хранилище для временного хранения данных, запрошенных из объектного хранилища. По умолчанию —1073741824
(1 ГБ). -
move_factor
— устанавливает минимальную долю свободного места в кластерном хранилище. Если доля свободного места меньше этого значения, данные переносятся в Yandex Object Storage. Минимальное значение —0
, максимальное —1
, по умолчанию —0.01
.Куски данных для переноса выстраиваются в очередь от большего к меньшему, затем переносится такое количество кусков, при котором будет выполняться условие
move_factor
.
Задать настройки гибридного хранилища можно при создании или изменении кластера.
Подробнее о настройках гибридного хранилища см. в документации ClickHouse.
Выбор типа дисков при создании кластера
Количество хостов, которые можно создать вместе с ClickHouse-кластером, зависит от выбранного типа дисков:
- При использовании локальных SSD-дисков (
local-ssd
) вы можете создать кластер из двух или более хостов (минимум два хоста необходимо, чтобы обеспечить отказоустойчивость). - При использовании сетевых HDD-дисков (
network-hdd
) или сетевых SSD-дисков (network-ssd
) вы можете добавить любое количество хостов в пределах текущей квоты. - При использовании сетевых нереплицируемых SSD-дисков (
network-ssd-nonreplicated
) вы можете создать кластер из трех или более хостов (минимум три хоста необходимо, чтобы обеспечить отказоустойчивость).
Подробнее об ограничениях на количество хостов в кластере см. в разделе Квоты и лимиты в Managed Service for ClickHouse.