Использовать другие кодеки на столбцы? Сейчас таблица 40 гигов сжатая и 45 разжатая..
Скорей всего у вас не правильный ORDER BY, покажите DDL таблицы ?
порядком колонок в sorting key от low-cardinality значений к higher-cardinality
Идёт дата и идентификатор. Идентификаторов уникальных больше чем уникальных дат
рандомы нельзя сжать, значения вообще могут повторяться в столбцах?? самое простое поставить в конфиге zstd по дефолту
Только даты. Походу придётся менять сжатие. Спасибо
а int / float они коррелируют между собой в столбце? типа растут как датчики или колеблются вокруг чего-то?
Это актив и его коэффициент. По сути все уникально
-- analitics.fct_coefficient definition CREATE TABLE analitics.fct_coefficient ( dttm DateTime, pair_id UInt64, pair_rev_id UInt64, price_coef Nullable(Float64), price_coef_rev Nullable(Float64) ) ENGINE = MergeTree PARTITION BY toYYYYMMDD(dttm) PRIMARY KEY pair_id ORDER BY (pair_id, dttm) SETTINGS index_granularity = 8192;
-- analitics.fct_coefficient definition CREATE TABLE analitics.fct_coefficient ( dttm DateTime, pair_id UInt64, pair_rev_id UInt64, price_coef Nullable(Float64), price_coef_rev Nullable(Float64) ) ENGINE = MergeTree PARTITION BY toYYYYMMDD(dttm) PRIMARY KEY pair_id ORDER BY (pair_id, dttm) SETTINGS index_granularity = 8192;
занятно, вы отвечали, что у вас ключ "дата и идентификатор", т.е. я понял, что сначала идёт значение с меньшим числом уникальных значений а на самом деле у вас "идентификатор и timestamp" )
это текущее состояние. я пробовал и и по другому ничего не поменялось
да просто ZSTD(1) или ZSTD(2) в конфиге, но если там просто числа рандомные, то естественно их не сжать и кодеки не помогут, если там есть что сжимать то ZSTD(2) жмет в среднем лучше чем Codec
Спасибо протестирую
философский вопрос про компрессию zstd, очевидно, лучше жмёт, чем lz4, но это же не бесплатно, и он должен быть более "cpu прожорлив". товарищи из databricks в свое время писали, что иногда лучше недожать — а всё потому что в облачных системах место на диске обходится потребителю дешевле, чем cpu time. не знаете, есть ли какие-нибудь тесты на тему, как полный переезд на zstd в клике влияет на использование (и итоговую стоимость) cpu?
Для Float в новой версии завезли кодек, он хорош когда уникальные значения
у меня в системе 90% CPU свободно, никак не влияет. влияет у пользователей с загруженым CPU и высоким QPS, типа если тысяча запросов в минуту и все реалтайм - 10 мс, то заметна разница между ZSTD(1) и LZ4
хорош? кажется в тестах он всегда хуже чем ZSTD и чем Gorrila
Ну если верить презентации создателя
Какой кодек и в какой версии?
Обсуждают сегодня