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

Приветствую. Хелпните плиз. Пишется лог MergeTree - t UInt64, sid UInt32

DEFAULT CAST(0, 'UInt32'),
tid UInt32 DEFAULT CAST(0, 'UInt32'),
event LowCardinality(String),
geo LowCardinality(FixedString(2)),
os LowCardinality(FixedString(2)),
....

Как можно посчитать и слопнуть в MV массив event , geo , os

Что то типа такого было...

CREATE TABLE default.a_1_merge_sum_minuts
(
t DateTime,
sid UInt32 DEFAULT CAST(0, 'UInt32'),
tid UInt32 DEFAULT CAST(0, 'UInt32')
..... ??
}
default.sum_minuts
ENGINE = SummingMergeTree
ORDER BY (t, sid, tid)

CREATE MATERIALIZED VIEW default.mv_minuts TO default.sum_minuts
(
t UInt64,
sid UInt32,
tid UInt32,
desktop_imp UInt64,
mobile_imp UInt64,
desktop_complete UInt64,
mobile_complete UInt64,
) AS
SELECT
toUInt64(toStartOfMinute(toDateTime(t))) AS t,
sid,
tid,
countIf( event = 'impression' AND dt = 'Desktop' ) AS desktop_imp,
countIf( event = 'impression' AND dt != 'Desktop' ) AS mobile_imp,
countIf( event = 'complete' AND dt = 'Desktop' ) AS desktop_complete,
countIf( event = 'complete AND dt != 'Desktop' ) AS mobile_complete,
........
FROM default.log_site
GROUP BY t, sid, tid


geo и event строки .. хотелось бы их обсчитывать и обновлять в одну запись минутную
а не вставлять event X geo X os строк

Как это можно реализовать для MV ?
Чтобы в минутной записи хранилась какая то инфа например вида

'desktop_imp' : { geo: { 'RU' : {'OS': { 'Win': 10, 'US':15 } , { 'US' : {'OS': { 'Win': 4, 'US':3 } .. }
'mobile_imp' : { geo: { 'RU' : {'OS': { 'Win': 1, 'US':2 } , { 'US' : {'OS': { 'Win':2, 'US':1 } .. }

И насколько оправдана такая заморочка для потом быстрой выборки и подсчета значений ?

1 ответов

15 просмотров

если я правильно понял, что вы хотите, то вам нужны ф-ии типа groupArray. не знаю будет ли они работать с движком aggregatingMT (вроде должны, но надо проверить). но если будет, то кмк это единственная возможность использовать MV для схлопывания логов. иначе делать тоже самое но без MV, например, через крон. по поводу второго вопроса, то если вы точно знаете, какие выборки и подсчеты будут - сразу мв по ним и делайте.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта