
Zo zo
17.01.2018
12:58:09
Есть рекламный сервис, хотим переезжать на clickhouse, уже поиграли на тестовом кластере, впечатлились, но пока не очень понятно как его правильно приминить у нас.
В частности, у нас такая специфика, что бывают хиты без кликов. Т.е. сначала идет хит (решаем какую рекламу показать), а потом может быть клик. Понятное дело, что потом на освное этих кликов существует много репортов. Вот как это правильно подружить с КХ?

Andrew
17.01.2018
12:59:10


Roman
17.01.2018
12:59:49
Есть рекламный сервис, хотим переезжать на clickhouse, уже поиграли на тестовом кластере, впечатлились, но пока не очень понятно как его правильно приминить у нас.
В частности, у нас такая специфика, что бывают хиты без кликов. Т.е. сначала идет хит (решаем какую рекламу показать), а потом может быть клик. Понятное дело, что потом на освное этих кликов существует много репортов. Вот как это правильно подружить с КХ?
У нас примерно та же история, и две отдельные таблицы под показы и клики. В репортах джоин, на 1тб данных и двух репликах работает норм.

Zo zo
17.01.2018
13:00:10
джоин по hit_id?

Google

Roman
17.01.2018
13:01:40
Да, по нему родимому

Zo zo
17.01.2018
13:01:59
а первичный ключ при этом другой, типа user_id?

Roman
17.01.2018
13:04:41
В нашем случае у нас развесистый первичный ключ и AggregatedMergeTree для дедупликации. Но смысл тот же. Кликов обычно сильно меньше чем показов, плюс у нас не бывает репортов, где все показы джойнятся ко всем кликам
Но при желании можно сделать матвью, если сильно хочется всех на всех

Zo zo
17.01.2018
13:08:06
понял, будем крутить этот момент дальше
и такой вопрос: как вообще можно удалить старое? Нам нет нужды хранить все за годы - 3х месяцев достаточно, а распухания базы конечно хотелось бы избежать

Дмитрий
17.01.2018
13:10:05
https://clickhouse.yandex/docs/en/query_language/queries.html#manipulations-with-partitions-and-parts

Zo zo
17.01.2018
13:11:54
? спсб

Aliaksandr
17.01.2018
13:25:31

Zo zo
17.01.2018
13:26:49
не совсем понял, как это помгло избежать join on hit_id

Roman
17.01.2018
13:26:49
А что делать, если между показом и кликом проходит полчаса? Это надо как-то события буферизовать

Aliaksandr
17.01.2018
13:27:35
В основной таблице события хранятся несколько месяцев, а не несколько минут :)

Zo zo
17.01.2018
13:30:10
правильно понимаю, что это как @feriat выже предложил с ENUM hit/click?

Google

Aliaksandr
17.01.2018
13:30:55