184 похожих чатов

Братцы, подскажите как правильнее - Таблица SummingMergeTree скажем

dt Date,
demand_id UInt64,
demand_uid String,,
demand_name String,
group_id UInt64,
group_uid String,,
group_name String,
campaign_id UInt64,
campaign_uid String,
campaign_name String,
...........
PRIMARY KEY (demand_id, dt)
ORDER BY (demand_id, dt, demand_uid, demand_name, group_id, group_uid, group_name, campaign_id, campaign_uid,campaign_name)

Соотв про слиянии надо чтоб группировала.
Нет ли смысла пропускать в ордер все что не id, т.е. делать ORDER BY (demand_id, dt, group_id, campaign_id)
При слиянии скажем каждому demand_id однозначно соответсуют demand_uid, demand_name.
Ну и остальные также
Или все фигня и проще все перечислить и не париться?
Как принято?

3 ответов

5 просмотров

я бы все имена вытащил из ключа сортировки-группиповки и агрегировал функцией anyLast(), этакий SCD Type 1 потому что мы-то знаем, что там соответствие между id и name 1to1, а движок нет, и будет эти имена сравнивать. и чего зря воздух греть. + если вдруг прилетит новое имя, уникальность группировки по id в этом случае не сломается

VячеслаV-Владимиров Автор вопроса
ivan
я бы все имена вытащил из ключа сортировки-группип...

а я так из доке понял что он собсно сам any делает

VячеслаV Владимиров
а я так из доке понял что он собсно сам any делает

возможно, но лично мне по опыту тут больше anyLast() нравится :) новые имена для id всегда прилетают неожиданно, и чаще всего нужно новое имя и использовать в репортинге

Похожие вопросы

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
доброго времени. db, dw и прочие исполняются при трансляции или при выполнении программы?
lutayyy
10
Почему никто не подсказал, что можно объявить свои типы данных, в которых меньше полей, чем в отданном джейсоне, и добавлять их по необходимости?
Strange Rabbit
10
Хтось використовував Vapor на Windows?
Jaroshevskii
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Карта сайта