Перенесення застарілиз даних з диску ClickHouse на S3 із TTL
ClickHouse має можливість зберігати частину будь-якої таблиці в S3. Приклад запиту до бази даних ClickHouse, для створення таблиці з автоматичним переміщенням даних, які старші заданий період часу.
Зазвичай, основним правилом для перенесення даних в S3 є дата їх створення(хоча підтримуються й інші типи основних полів). Наприклад, коли вам не потрібно часто і швидко звертатися до логів старше 14 днів. Ви можете перенести ці дані на S3, але при цьому мати доступ до них так само, як коли вони були на диску. Очевидно, що швидкість буде нижчою, але в таких випадках це не має великого значення. Ви можете розглядати це як холодне зберігання ваших даних.
Перед цим переконайтеся, що ви підключили S3 bucket до вашого сервера ClickHouse:
Підключення S3, як сховища даних до ClickHouseHere is the query to create new table with TTL to S3 Volume:
CREATE TABLE table_name
(
`someField` String,
`value` String,
`offset` UInt64,
`partition` UInt16,
`timestamp` DateTime64(3)
)
ENGINE = MergeTree
PARTITION BY toDate(timestamp)
ORDER BY (offset, timestamp, someField)
TTL toStartOfDay(timestamp, 'UTC') + toIntervalDay(14) TO VOLUME 's3'
SETTINGS storage_policy = 'tiered', index_granularity = 8192У наведеному вище випадку дані, які старші за 14 днів (на основі поля timestamp), будуть переміщені до S3.
Якщо вам потрібно оновити існуючу таблицю, скористайтеся наступним сценарієм.
Спочатку потрібно змінити політику зберігання для існуючої таблиці:
А потім змінити таблицю, щоб включити підтримку S3:
Last updated