Охлаждение данных | Tcs

Версия:

1.x
Руководство пользователя Охлаждение данных

Охлаждение данных

«Охлаждение данных» подразумевает перенос данных из горячего хранилища (колоночного хранилища 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' – читать данные параллельно и из памяти, и с диска.

Управление таблицами с TTL (Time To Live)

См. Вытеснение данных по времени.

Нашли ответ на свой вопрос?
Обратная связь