так.
create table hits (
ad_id UInt64,
user_id UInt64,
created_at datetime,
event_id String,
event_type String,
source String,
category_id UInt64,
status String
) ENGINE = MergeTree order by (ad_id, created_at);
Запросы по ad_id быстро работает,
select toDate(created_at), event_type, count(*) from hits
where ad_id = 55622
group by toDate(created_at), event_type
а когда хочу использывать вместо ad_id, user_id или category_id очень медлит. Что советуете делать? Как могу оптимизировать запросы, что по другим колонкам тоже работало быстро как ad_id?
Добавьте их в ORDER BY
хорошо попробую , а создать индекс , т.д. не требуется?
ORDER BY, это и так индекс прочтите https://clickhouse.com/docs/ru/engines/table-engines/mergetree-family/mergetree Чтобы изменить ORDER BY нужно будет пересоздать таблицу и данные в ней залить.
спасибо, сейчас попробую, еще заметил, что при поступлении новых данных они сразу пишутся не в очередь, а просто добавляются в конец, каждый раз нужно делать это вручную с командой OPTIMIZE TABLE или есть другой путь? 2 миллиона записей в день
Нет, кликхаус сам всё сделает.
Интересно вчера просто сделал ручной инсерт, но он попал в конец. Есть какой-то джоб который выполняется определенное время?
Он всегда будет попадать в конец, потом сам кликхаус вызывает "мержи" - система соединение разных файлов и пересортировки и многого другого ...
ORDER BY (ad_id,user_id,category_id, created_at) Сделал но не помог(( Есть другие предложение? 🙁
что уникальней у вас ? user_id или category_id ?
В этой таблице мы планируем логировать просмотры по объявлениям.У объявления есть (ad_id, user_id и category_id). У объявления есть 1 владелец и 1 категория. А пользователя может быть несколько объявление который находится в нескольких категориях. Так как одному объявлению можно несколько раз посмотреть, ни одно из данных уникальным не будет. Несколько раз может попасть в таблицу.Ежедневно будет приниматься около 2 миллионов данных.
Если сортировать по user медленно работает запросы по номеру объявлению (ad_id) и наоборот. Сделать так что по двум параметрам тоже работало быстро не получается(
Обсуждают сегодня