Индексы и сжатие - Сжатие
This commit is contained in:
@@ -0,0 +1,39 @@
|
|||||||
|
-- Индексы и сжатие - Сжатие --
|
||||||
|
|
||||||
|
-- #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))
|
||||||
Reference in New Issue
Block a user