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

Привет. Забираю данные с кафки и пишу в таблицу CREATE TABLE

device_os_queue (
device_os String,
os Int8,
stop timestamp,
min_time timestamp,
max_time timestamp,
count UInt32,
cnt UInt32,
time UInt64
) ENGINE = Kafka('10.0.3.10:9092', 'device_os', 'group1', 'JSONEachRow');
CREATE TABLE device_os_1d (
device_os String,
os Int8,
stop timestamp,
min_time AggregateFunction (min, DateTime('Europe/Moscow')),
max_time AggregateFunction (max, DateTime('Europe/Moscow')),
count SimpleAggregateFunction (sum, UInt64),
cnt SimpleAggregateFunction (sum, UInt64),
time SimpleAggregateFunction (sum, UInt64)
) ENGINE = AggregatingMergeTree()
PARTITION BY toDate(toDateTime(stop))
ORDER BY (device_os, os, stop);
CREATE MATERIALIZED VIEW device_os TO device_os_1d
AS SELECT device_os, os, toDate(toDateTime(stop)) AS stop, minState(toDateTime(min_time)) AS min_time, maxState(toDateTime(max_time)) AS max_time, toUInt32(sum(count)) AS count, toUInt32(sum(cnt)) AS cnt, sum(time) AS time
FROM device_os_queue GROUP BY device_os, os, stop;

Все ок, кроме агрегации min_time и max_time

┌─device_os─────┬─os─┬────────────────stop─┬─min_time─┬─max_time─┬─count─┬─cnt─┬─time─┐
│ Mac OS 10.9.5 │ 0 │ 2020-01-01 00:00:00 │ S�
^ │ ��
^ │ 5 │ 0 │ 0 │
└───────────────┴────┴─────────────────────┴──────────┴──────────┴───────┴─────┴──────┘
Как правильно преобразовывать?

3 ответов

13 просмотров

ну minMerge НО !!!!! ВАМ ЭТО НЕ НУЖНО ВАМ НУЖНО, используйте SimpleAggregateFunction min_time SimpleAggregateFunction (min, DateTime('Europe/Moscow')), max_time SimpleAggregateFunction (max, DateTime('Europe/Moscow')),

Yarlan-Zey Автор вопроса
Denny [Altinity]
ну minMerge НО !!!!! ВАМ ЭТО НЕ НУЖНО ВАМ НУЖНО, ...

про minMerge дошел да, за Simple спасибо. такая большая разница в производительности?

Yarlan Zey
про minMerge дошел да, за Simple спасибо. такая бо...

до двух раз, в два раза меньше байт в памяти надо перекладывать

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта