Типы дисков в Managed Service for ClickHouse®
Managed Service for ClickHouse® позволяет использовать сетевые и локальные диски для организации хранилища кластеров баз данных. Сетевые диски реализованы на базе сетевых блоков — виртуальных дисков в инфраструктуре Yandex Cloud. Локальные диски физически размещаются в серверах хостов БД.
При создании кластера вы можете выбрать для хранилища следующие типы дисков:
-
Сетевые HDD-диски (
network-hdd
) — самый экономичный вариант для кластеров, не требовательных к скорости записи и чтения. -
Сетевые SSD-диски (
network-ssd
) — компромиссный вариант: медленнее, чем локальные SSD-диски, но, в отличие от них, обеспечивают сохранность данных при выходе из строя оборудования Yandex Cloud. -
Нереплицируемые SSD-диски (
network-ssd-nonreplicated
) — сетевые диски с повышенной производительностью, реализованной за счет устранения избыточности.Объем такого хранилища можно увеличивать только с шагом 93 ГБ.
-
Сверхбыстрые сетевые SSD-диски с тремя репликами (
network-ssd-io-m3
) — сетевые диски с теми же скоростными характеристиками, что и нереплицируемые. Этот тип диска обеспечивает избыточность.Объем таких дисков можно увеличивать только с шагом 93 ГБ.
Доступ к высокопроизводительным SSD-дискам предоставляется по запросу. Обратитесь в техническую поддержку
или к вашему аккаунт-менеджеру. -
Локальные SSD-диски (
local-ssd
) — самые быстрые диски.Объем такого хранилища можно увеличивать:
- для платформ Intel Broadwell и Intel Cascade Lake — только с шагом 100 ГБ;
- для платформы Intel Ice Lake — только с шагом 368 ГБ.
Для кластеров, хосты которых располагаются в зоне доступности
ru-central1-d
, недоступно хранилище на локальных SSD-дисках при использовании платформы Intel Cascade Lake.
Примечание
До 5% дискового пространства резервируется для служебных нужд, поэтому на дисках может быть меньше доступного места, чем заявлено при создании кластера.
Особенности гибридного хранилища
Если при создании или изменении кластера включить настройку Гибридное хранилище, появится возможность распределять данные между хранилищем кластера и объектным хранилищем 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
); - сверхбыстрые сетевые SSD-диски с тремя репликами (
network-ssd-io-m3
).
- сетевые HDD-диски (
Подробнее об ограничениях на количество хостов в кластере см. в разделе Квоты и лимиты.