Типы дисков в Managed Service for ClickHouse®
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 ГБ.
Примечание
Для кластеров, хосты которых располагаются в зоне доступности
ru-central1-d
, недоступно хранилище на локальных SSD-дисках при использовании платформы Intel Cascade Lake.
Особенности гибридного хранилища
Если при создании или изменении кластера включить настройку Гибридное хранилище, появится возможность распределять данные между хранилищем кластера и объектным хранилищем Yandex Object Storage. Тогда данные будут размещаться либо в кластерном, либо в объектном хранилище в зависимости от заданной политики хранения. Например, часто используемые горячие
данные размещаются в хранилище кластера, а редко используемые холодные
данные — в более дешевом и медленном объектном хранилище.
Важно
Гибридное хранилище доступно для таблиц только на движке MergeTree
В объектном хранилище используется служебный бакет с неограниченным объемом памяти. Класс такого хранилища — стандартный, изменить его нельзя. Для объектного хранилища применяются лимиты сервиса Object Storage.
Чтобы начать использовать гибридное хранилище:
-
Создайте кластер нужного вида. Настройка объектного хранилища не требуется.
-
Добавьте базы данных и таблицы в кластер. Если политика хранения по умолчанию не подходит для некоторых таблиц, задайте нужные политики для этих таблиц:
-
Чтобы указать политику при создании таблицы, задайте настройку
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 = '<тип_политики_хранения>';
-
Пример см. в практическом руководстве Использование гибридного хранилища.
Чтобы отслеживать, какой объем занимают куски таблиц MergeTreech_s3_disk_parts_size
в сервисе Yandex Monitoring. Она доступна только для кластеров Managed Service for ClickHouse® с настроенным гибридным хранилищем.
Доступные политики хранения
Примечание
Создавать новые политики хранения или изменять уже существующие нельзя.
В кластере Managed Service for ClickHouse® с включенным гибридным хранилищем предустановлены следующие политики хранения:
-
default
(по умолчанию) — кластер автоматически управляет размещением данных в зависимости от:- настроек гибридного хранилища;
- настроек TTL
для таблиц (время жизни).
При достаточном объеме свободного места в кластерном хранилище, перемещение в объектное хранилище выполняется только для тех строк таблицы, для которых истекло значение TTL. Эта операция позволяет переместить часть данных в объектное хранилище, не дожидаясь заполнения кластерного хранилища.
Настроить перемещение строк с истекшим сроком жизни в объектное хранилище и задать значение TTL можно при создании таблицы или позднее.
-
local
— строки таблицы с такой политикой размещаются только в кластерном хранилище. Перемещения данных между хранилищами не происходит. -
object_storage
— строки таблицы с такой политикой размещаются только в объектном хранилище. Перемещения данных между хранилищами не происходит.
Политики хранения не оказывают влияния на операции слияния
- Включать и выключать настройку
prefer_not_to_merge
, которая выполняет слияние кусков данных в хранилищах. Настройка доступна в CLI и API. - Задавать любое значение настройке
max_data_part_size_bytes
, которая устанавливает максимальный размер итогового куска данных после слияния меньших кусков.
Однако можно влиять на поведение этих операций с помощью доступных в кластере настроек.
Посмотреть актуальные настройки политик можно с помощью запроса:
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
. -
prefer_not_to_merge
— отключает слияние кусков данных в кластерном и объектном хранилищах. По умолчанию слияние включено.После вставки данных в таблицу они сохраняются в виде куска данных и сортируются по первичному ключу. Затем в фоновом режиме куски одной партиции сливаются в более крупный кусок через 10–15 минут после вставки. Вы можете использовать системную таблицу system.parts
, чтобы посмотреть слитые куски данных и партиции.
Задать настройки гибридного хранилища можно при создании или изменении кластера.
Подробнее о настройках гибридного хранилища см. в документации ClickHouse®
Выбор типа дисков при создании кластера
Количество хостов, которые можно создать вместе с кластером ClickHouse®, зависит от выбранного типа дисков:
-
При использовании локальных SSD-дисков (
local-ssd
) вы можете создать кластер из двух или более хостов.Такой кластер будет отказоустойчивым.
Хранилище на локальных SSD-дисках влияет на тарификацию кластера: он тарифицируется, даже если остановлен. Подробнее в правилах тарификации.
-
При использовании сетевых нереплицируемых SSD-дисков (
network-ssd-nonreplicated
) вы можете создать кластер из трех или более хостов.Такой кластер будет отказоустойчивым.
-
При использовании сетевых HDD-дисков (
network-hdd
) или сетевых SSD-дисков (network-ssd
) вы можете добавить любое количество хостов в пределах текущей квоты.
Подробнее об ограничениях на количество хостов в кластере см. в разделе Квоты и лимиты.