Типы хранилища
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-дисках не обеспечивает отказоустойчивости хранения данных, а также влияет на тарификацию кластера в целом:
- Такое хранилище в кластере из 1 хоста не обеспечивает отказоустойчивости: при отказе диска данные теряются безвозвратно. Поэтому при создании нового кластера Managed Service for ClickHouse с использованием этого типа хранилища автоматически настраивается отказоустойчивая конфигурация из 2 хостов.
- Кластер с таким хранилищем тарифицируется, даже если он остановлен. Подробнее — в правилах тарификации.
Особенности хранилища на нереплицируемых SSD-дисках
Хранилище на нереплицируемых SSD-дисках в кластере из одного хоста не обеспечивает отказоустойчивости: при отказе диска данные теряются безвозвратно. Поэтому при создании нового кластера с использованием этого типа хранилища автоматически настраивается отказоустойчивая конфигурация из трех хостов.
Особенности гибридного хранилища
Гибридное хранилище обеспечивает для таблиц на движке MergeTree отказоустойчивое хранение данных и управляет их размещением: данные размещаются либо в кластерном, либо в объектном хранилище в зависимости от заданной политики хранения для таблиц.
Важно
Данные таблиц на движках, отличных от MergeTree, будут храниться только в кластерном хранилище.
Чтобы начать использовать гибридное хранилище:
-
Создайте кластер нужного вида. Настройка объектного хранилища не требуется.
-
Добавьте базы данных и таблицы в кластер. Если политика хранения по умолчанию не подходит для некоторых таблиц, задайте нужные политики для этих таблиц:
-
Чтобы указать политику при создании таблицы, задайте настройку
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 (время жизни) для таблиц.Если в кластерном хранилище меньше 20% (неизменяемая настройка
move_factor
для политики хранения) свободного места, часть данных из таблиц с такой политикой начнет перемещаться в объектное хранилище.При достаточном объеме свободного места в кластерном хранилище, перемещение в объектное хранилище выполняется только для тех строк таблицы, для которых истекло значение TTL. Эта операция позволяет переместить часть данных в объектное хранилище, не дожидаясь заполнения кластерного хранилища.
Настроить перемещение строк с истекшим сроком жизни в объектное хранилище и задать значение TTL можно при создании таблицы или позднее.
-
local
— строки таблицы с такой политикой размещаются только в кластерном хранилище. Перемещения данных между хранилищами не происходит. -
object_storage
— строки таблицы с такой политикой размещаются только в объектном хранилище. Перемещения данных между хранилищами не происходит.
Политики хранения не оказывают влияния на операции слияния кусков данных:
- Разрешено выполнять слияние кусков данных, находящихся в хранилищах (настройка политики
prefer_not_to_merge
). - Не накладывается ограничений на максимальный размер итогового куска данных (настройка политики
max_data_part_size_bytes
), который может получиться в результате слияния меньших кусков.
Однако можно влиять на поведение этих операций с помощью доступных в кластере настроек ClickHouse.
Посмотреть актуальные настройки политик можно с помощью запроса:
SELECT *
FROM system.storage_policies;
Подробнее о политиках хранения и их настройках см. в документации ClickHouse.