Files
homework/dsolovianov/clickhouse/Homework/Индексы и сжатие - Сжатие.sql
2026-05-04 09:15:50 +04:00

39 lines
1.2 KiB
SQL

-- Индексы и сжатие - Сжатие --
-- #1 Создай таблицу logs с колонкой message CODEC(ZSTD(3)).
-- #2 Добавь created_at CODEC(Delta, ZSTD) — это улучшит хранение по времени.
DROP TABLE IF EXISTS dsolovianov.logs ON CLUSTER clickhouse_cluster SYNC;
CREATE TABLE dsolovianov.logs
ON CLUSTER clickhouse_cluster
(
id UInt64,
level String,
message String CODEC(ZSTD(3)),
created_at DateTime CODEC(Delta, ZSTD)
)
ENGINE = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/dsolovianov/logs',
'{replica}'
)
ORDER BY (created_at, id)
PARTITION BY toYYYYMM(created_at);
INSERT INTO dsolovianov.logs (id, level, message, created_at) VALUES
(1, 'INFO', 'User logged in', '2024-07-01 10:00:00'),
(2, 'WARN', 'Request took too long', '2024-07-01 10:05:00'),
(3, 'ERROR', 'Unable to connect to server', '2024-07-01 10:10:00');
-- #3 Посмотри статистику сжатия:
SELECT
column,
compression_codec
FROM system.columns
WHERE table = 'logs';
-- Стата вот так выглядит:
column | compression_codec
id
level
message CODEC(ZSTD(3))
created_at CODEC(Delta(4), ZSTD(1))