39 lines
1.2 KiB
SQL
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)) |