Size: a a a

ClickHouse не тормозит

2021 March 14

S

Sulaymon in ClickHouse не тормозит
в одном заказе может быть от 1 до 5-6 подстрочных заказов (items)
источник

DT

Dmitry Titov in ClickHouse не тормозит
Sulaymon
в одном заказе может быть от 1 до 5-6 подстрочных заказов (items)
в случае, когда их 5-6 как кх должен понять какая цена соответствует quantity?
источник

AZ

Anton Zhuravsky in ClickHouse не тормозит
Sulaymon
правильно заметили у определенного price есть строго соответствующее quantity
храню данные в виде
orderInternalId, metricType, metricValue,  metricSectionValue

и группирую по metricSectionValue что говорит о том что price соответствует quantity
емнип groupArray не обещает, что собранный массив будет содержать элементы в каком-либо определенном порядке
источник

DT

Dmitry Titov in ClickHouse не тормозит
Anton Zhuravsky
емнип groupArray не обещает, что собранный массив будет содержать элементы в каком-либо определенном порядке
если есть ORDER BY то обещает, и два groupArray(key_x),groupArray(key_y) соберут правильны пары key_x->key_y
источник

S

Sulaymon in ClickHouse не тормозит
Dmitry Titov
в случае, когда их 5-6 как кх должен понять какая цена соответствует quantity?
по полю metricSectionValue (сори у меня немного по другому названы поля чем стандартных аля itemId и orderId может запутал таким образом)
источник

DT

Dmitry Titov in ClickHouse не тормозит
Sulaymon
по полю metricSectionValue (сори у меня немного по другому названы поля чем стандартных аля itemId и orderId может запутал таким образом)
если metricSectionValue учавствует в GROUP BY ключе, то это не возможно(разные metricSectionValue окажутся в разных группировках)
источник

AZ

Anton Zhuravsky in ClickHouse не тормозит
Dmitry Titov
если есть ORDER BY то обещает, и два groupArray(key_x),groupArray(key_y) соберут правильны пары key_x->key_y
в доке написано слегка другое: In some cases, you can still rely on the order of execution. This applies to cases when SELECT comes from a subquery that uses ORDER BY.

Подозреваю, собака в слиянии данных из дистрибьютед таблиц
источник

DT

Dmitry Titov in ClickHouse не тормозит
Anton Zhuravsky
в доке написано слегка другое: In some cases, you can still rely on the order of execution. This applies to cases when SELECT comes from a subquery that uses ORDER BY.

Подозреваю, собака в слиянии данных из дистрибьютед таблиц
Да, конечно ORDER BY должен быть в подзапросе
источник

S

Sulaymon in ClickHouse не тормозит
мне кажется мы друг друга не до поняли - у меня все хорошо отработал sql запрос и вычисляет как нужно, спасибо за arrayMap - помогло
источник

AZ

Anton Zhuravsky in ClickHouse не тормозит
Sulaymon
мне кажется мы друг друга не до поняли - у меня все хорошо отработал sql запрос и вычисляет как нужно, спасибо за arrayMap - помогло
Мы все еще переживаем, ибо если порядок элементов недетерменирован, то оно может у вас работать-работать, а потом перестанет - и заметить это может быть сложно
источник

S

Sulaymon in ClickHouse не тормозит
хмм, я тоже начал переживать - только до меня дошло о чем шла речь когда говорили о порядке
источник

YY

Yuriy Yurkiv in ClickHouse не тормозит
Приветствую! Подскажите, пожалуйста:

Есть таблица со следующими колонками: user_id, session_id, event_id
Нужно вывести сколько ивентов имел каждый пользователь в первую, вторую и т.д. сессию

Примерный аналог запроса в постгрис:

SELECT
   user_id,
   row_number() OVER(PARTITION BY user_id ORDER BY session_id) AS session_number,
   count(event_id) AS events_count
FROM table_1
GROUP BY user_id, session_id
источник

AB

Andrey Bystrov in ClickHouse не тормозит
Yuriy Yurkiv
Приветствую! Подскажите, пожалуйста:

Есть таблица со следующими колонками: user_id, session_id, event_id
Нужно вывести сколько ивентов имел каждый пользователь в первую, вторую и т.д. сессию

Примерный аналог запроса в постгрис:

SELECT
   user_id,
   row_number() OVER(PARTITION BY user_id ORDER BY session_id) AS session_number,
   count(event_id) AS events_count
FROM table_1
GROUP BY user_id, session_id
arrayEnumerate, groupArray, arrayJoin
источник

K

Konstantin Ilchenko in ClickHouse не тормозит
SELECT user_id, numbers, counts
FROM
 (
   SELECT
     user_id,
     groupArray(c) AS counts,
     arrayEnumerate(counts) AS numbers
   FROM
     (
       SELECT
         user_id,
         session_id,
         count() AS c
       FROM table_1
       GROUP BY
         user_id,
         session_id
       ORDER BY
         user_id ASC,
         session_id ASC
     )
   GROUP BY user_id
 )
 ARRAY JOIN
   counts,
   numbers
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Yuriy Yurkiv
Приветствую! Подскажите, пожалуйста:

Есть таблица со следующими колонками: user_id, session_id, event_id
Нужно вывести сколько ивентов имел каждый пользователь в первую, вторую и т.д. сессию

Примерный аналог запроса в постгрис:

SELECT
   user_id,
   row_number() OVER(PARTITION BY user_id ORDER BY session_id) AS session_number,
   count(event_id) AS events_count
FROM table_1
GROUP BY user_id, session_id
Начиная с 21.3 в кх тоже так можно
источник

S

Sulaymon in ClickHouse не тормозит
Есть таблица где хранятся заказы со статусами изменений в хронологическом порядке, можно ли как-то делать селект заказов по их последним статусам  ?
наподобие этого, но чтобы только статус был последним добавленным
select orderId
from Metric
where metricType = 'status' and metricValue = 10
group by orderId;
источник

S

Sulaymon in ClickHouse не тормозит
пробовал вот так, но sql синтаксически неправильно получается
select orderId
from Metric
where metricType = 'status' and metricValue = 10
group by orderId
having max(eventDateTime);
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Sulaymon
Есть таблица где хранятся заказы со статусами изменений в хронологическом порядке, можно ли как-то делать селект заказов по их последним статусам  ?
наподобие этого, но чтобы только статус был последним добавленным
select orderId
from Metric
where metricType = 'status' and metricValue = 10
group by orderId;
order by id, time desc limit 1 by id

или argMax( status, time)
источник

S

Sulaymon in ClickHouse не тормозит
cool. сработал, спасибо большое
источник

АФ

Александр Филиппенко... in ClickHouse не тормозит
нашёл баг в csv парсере, куда лучше отписать? Issue на Гитхабе?
источник