ORDER BY pk LIMIT ... Поэтому, если ваш timestamp является одним из первых столбцов в первичном ключе и партиционирование по дате, то можно сделать запрос примерно такого вида: SELECT ... FROM table WHERE date >= yesterday () AND ts >= now() - 300 ORDER BY ts DESC LIMIT N. Соответственно, если за последние 300 секунд у вас достаточно данных для лимита N, то здорово, иначе нужно запрос повторить с другим фильтром по timestamp. К сожалению, лучшего варианта (без создания доп таблиц) я не знаю.
внезапно https://github.com/yandex/ClickHouse/pull/5042
Кстати, какая ишью на реализацию этой оптимизации?
Обсуждают сегодня