Охлаждение данных¶
«Охлаждение данных» подразумевает перенос данных из горячего хранилища (колоночного хранилища TCS в оперативной памяти), которое обеспечивает максимально быстрый доступ к данным, в холодное (хранилище, использующее дисковое пространство для хранения данных), когда данные устаревают. Это позволяет увеличить объем хранимых данных при ограниченном объеме оперативной памяти.
Особенности охлаждения данных в TCS¶
Возможности и ограничения текущей версии TCS:
Охлаждение данных настраивается потаблично, с использованием механизма TTL (Time to Live), который обеспечивает автоматическое удаление или перемещение данных по истечении заданного времени. Охлаждение по количеству записей (объему) и по прочим условиям (например, по триггеру) не поддерживается.
Настройка охлаждения доступна только для новых таблиц. Для уже существующих таблиц эта возможность не поддерживается.
Поддержана работа с данными в формате Parquet и Iceberg.
Не поддержаны некоторые типы данных: логический (bool), знаковые целочисленные до i32 (i16, i8) и все беззнаковые целочисленные (u64, u32, u16, u8).
Охлаждение осуществляется только на локальный диск. Работа с хранилищами S3 не поддерживается. Также пока недоступно изменение существующего локального тома.
Не поддержано партиционирование данных во внешнем хранилище (параметр PARTITION BY в запросах CREATE TABLE и ALTER TABLE).
Охлаждение – однонаправленный процесс. После сброса на диск данные не возвращаются обратно в память.
Данные на диске нельзя менять, в том числе и схему данных.
Вставка данных всегда производится сначала в оперативную память, где данные накапливаются и охлаждаются в соответствии с выбранной стратегией.
Метрики мониторинга для охлаждения данных пока недоступны.
Охлаждение данных работает только в режиме проксирования. В режиме шардирования охлаждение не поддерживается.
Важно
Необходимо заранее создавать внешние тома для перемещения данных.
Необходимо правильно настраивать расписание проверок для оптимальной производительности. Желательно проводить проверки в моменты наименьшей нагрузки.
Управление томами¶
Создание томов для хранения данных¶
Перед настройкой процесса охлаждения данных необходимо создать внешний том (external volume) – специальное описание внешнего хранилища, куда будут вытесняться данные.
Для организации локального хранения используется команда следующего вида:
CREATE EXTERNAL VOLUME my_local_volume AS
'/tmp/AAA'
WITH (
'format' = 'iceberg'
);
где:
(Обязательно) Путь к локальному хранилищу указывается без префикса
file://.(Необязательно) Блок
WITHсодержит параметрformatдля задания формата хранения данных. Поддерживается только одно значение:iceberg.
Получение информации о томах¶
Получение общей информации о томах¶
Для получения общей информации о подключенных внешних томах используется следующая команда:
SELECT * from tcs_volumes_list()
Возвращаемые данные:
имя внешнего тома
формат данных
идентификатор URI (путь хранения данных)
количество таблиц, связанных с этим томом
Пример:
SELECT * from tcs_volumes_list() ORDER BY name
----
volume1 iceberg sqlite:///tmp/A/volume1 42
volume2 iceberg sqlite:///tmp/B/volume2 10
volume3 iceberg sqlite:///tmp/C/volume3 0
Получение детальной информации о томе¶
Для получения расширенной информации о настройках и характеристиках выбранного внешнего тома используется команда следующего вида:
DESCRIBE STORAGE_INTEGRATION my_volume
где:
(Обязательно)
my_volume– имя внешнего тома.
Помимо общей информации, в ответе возвращается:
имя набора реплик, который в случае формата Iceberg используется как пространство имен (namespace) для данных таблиц
список связанных таблиц
тип каталога
Пример:
DESCRIBE STORAGE_INTEGRATION volume1
----
volume1 iceberg sqlite:///tmp/A/volume1 replicaset1 [] local-sqlite
Удаление тома¶
Для удаления внешнего тома используется команда следующего вида:
DROP EXTERNAL VOLUME [ IF EXISTS ] my_volume;
где:
(Необязательно)
IF EXISTS– параметр, который предотвращает возникновение ошибки, если удаляемый том не существует.(Обязательно)
my_volume– имя удаляемого внешнего тома.
При выполнении команды происходит полное удаление указанного внешнего тома, а также освобождение связанных с томом ресурсов и обновление системных записей.
При попытке удалить внешний том, который задействован в процессе охлаждения данных, TCS блокирует операцию удаления, формирует сообщение об ошибке и предоставляет полный список таблиц, зависящих от данного тома.
Чтение охлажденных данных¶
Для чтения определенного вида данных в рамках текущей сессии нужно установить переменную
tcs.volume_read_mode:
SET tcs.volume_read_mode = 'skip'– не читать данные с диска.SET tcs.volume_read_mode = 'fallback'(по умолчанию) – сначала пытаться читать данные из памяти, если там пусто – читать с диска.SET tcs.volume_read_mode = 'union'– читать данные параллельно и из памяти, и с диска.