выражение.
Было ORDER BY (dt, id_1, id_2)
Нужно ORDER BY (dt, id_1, id_2, id_3, id_4)
Я нашла доку но не очень понятно как реализовать, по чату посмотрела есть такой же вопрос, но там пример мне не подходит.
ALTER TABLE [db.]name ADD INDEX name expression TYPE type GRANULARITY value [FIRST|AFTER name]
и еще вопрос можно ли на всех партициях материализовать?
ALTER TABLE [db.]table MATERIALIZE INDEX name IN PARTITION partition_name
если не писать IN PARTITION partition_name то будет на всех?
1. вам нужен minmax https://clickhouse.tech/docs/ru/engines/table-engines/mergetree-family/mergetree/#table_engine-mergetree-data_skipping-indexes 2.судя по доке указывать партицию обязательно, но лучше проверить самостоятельно на тестовой таблице и если это не так, то отправить пуллреквест на изменение документации
Спасибо! а где звять index_name? все же не очень понимаю как это будет выглядеть ALTER TABLE ADD INDEX index_name expr??? TYPE minmax((dt, restore_type, restore_user_id, restore_device_id, unauth_id, admin_id, check_admin_id, event_id)) GRANULARITY 8192
если надо добавить новую колонку в конец order by есть modify order by ALTER TABLE default.users_online ADD COLUMN version Int32, MODIFY ORDER BY (uid, when, version)
там же где и в постгресе - из головы. придумайте название сами, вот вам для примера my_test_index_1
полезная штука. спасибо
правда работает только для новых колонок, для уже существующих только индексы
сейчас попробую на тестовой таблице, спасибо!
да, обычно полезно если добавляется новая группировка в summing/aggregating таблицу
это работает только при добавлении новых колонок
да, мы это уже обсудили тремя сообщениями выше :)
Обсуждают сегодня