Size: a a a

ClickHouse не тормозит

2020 June 26

R

Rail in ClickHouse не тормозит
Alexander Petrov
Можно наверное какой-нибудь kubernates job приделать чтоб он на всех подах запускал миграции
ага, но пока сделал через создание таблиц в скрипте запуска миграций, где проходим по каждому поду и создаем таблицы
и решил оставить создание kafka engine и mv только в первом поде, а replicatedMT во всех подах
источник

tc

to0n1 ccc in ClickHouse не тормозит
ребят есть вопрос:
есть таблица событий: events
в ней есть типы события, например pageView, sessionActivated, orderMade

вот так выбираю все события активации пользователей
select sa.source, sa.userId
from events sa
where sa.eventType = 'sessionActivated'

пытаюсь сделать запрос
выбрать все события orderMade и добавить атрибутом послений источник из события sessionActivated

вот на псевдокоде как выглядит
источник

tc

to0n1 ccc in ClickHouse не тормозит
select e.eventId, e.amount, e.userId, ACTIVATION_SOURCE from events e
   left join (
       select sa.source, sa.userId
       from events sa
       where sa.eventType = 'sessionActivated'
       order by sa.timestamp desc
   ) ssa on ssa.userId = e.userId  ???? e.timstamp > ssa.timestamp limit 1 ???
where e.eventType = 'orderMade'
источник

tc

to0n1 ccc in ClickHouse не тормозит
подскажите пожалуйста как такой запрос сделать, чтото ума не приложу
источник

tc

to0n1 ccc in ClickHouse не тормозит
select e.eventId, e.amount, e.userId, ( select sa.source, sa.userId
                                       from events sa
                                       where sa.eventType = 'sessionActivated' and sa.userId = e.userId
                                       order by sa.timestamp desc limit 1) ACTIVATION_SOURCE from events e
where e.eventType = 'orderMade'
источник

tc

to0n1 ccc in ClickHouse не тормозит
пробовал еще вот так
источник

tc

to0n1 ccc in ClickHouse не тормозит
но внутри подзапроса нет возможности ссылаться на основной запрос насколько я понял
источник

DT

Dmitry Titov in ClickHouse не тормозит
Ну тут либо делать JOIN, либо попытаться в 1 запрос всю логику поместить, но тогда нужно делать GROUP BY
источник

tc

to0n1 ccc in ClickHouse не тормозит
Dmitry Titov
Ну тут либо делать JOIN, либо попытаться в 1 запрос всю логику поместить, но тогда нужно делать GROUP BY
боюсь не совсем понял как... можете пожалуйста дать минимальный пример
источник

DT

Dmitry Titov in ClickHouse не тормозит
to0n1 ccc
боюсь не совсем понял как... можете пожалуйста дать минимальный пример
пример через join?
источник

tc

to0n1 ccc in ClickHouse не тормозит
да
источник

DT

Dmitry Titov in ClickHouse не тормозит
SELECT * FROM events e1 ANY LEFT JOIN events e2 USING user_id WHERE e1.eventType = 'orderMade' AND e2.eventType = 'sessionActivated'

ну это очень грубо, и тут нужно отталкиваться от соотношений записей таблиц для выбора наилучшего варианта
источник

IS

Ivan Starkov in ClickHouse не тормозит
подскажите какой статистике по запросу лучше верить, в query_log, query_duration_ms для некоторых запросов в 10 раз больше чем поле statistics.elapsed возвращаемое самим запросом.
источник

tc

to0n1 ccc in ClickHouse не тормозит
Dmitry Titov
SELECT * FROM events e1 ANY LEFT JOIN events e2 USING user_id WHERE e1.eventType = 'orderMade' AND e2.eventType = 'sessionActivated'

ну это очень грубо, и тут нужно отталкиваться от соотношений записей таблиц для выбора наилучшего варианта
> добавить атрибутом послений источник из события sessionActivated

основная проблема впихнуть в такой запрос условие e1.timstamp > e2.timestamp
и нигде не нашел информации что any вернет именно первый результат
источник

tc

to0n1 ccc in ClickHouse не тормозит
наверное не правильно выразился:
источник из последнего события sessionActivated которое было перед событием orderMade
источник

DT

Dmitry Titov in ClickHouse не тормозит
to0n1 ccc
> добавить атрибутом послений источник из события sessionActivated

основная проблема впихнуть в такой запрос условие e1.timstamp > e2.timestamp
и нигде не нашел информации что any вернет именно первый результат
ASOF join тогда
источник

DT

Dmitry Titov in ClickHouse не тормозит
источник

K

Kasabian in ClickHouse не тормозит
Здравствуйте Друзья,
столкнулся с проблемой эволюции Avro схем в clickhouse,
* использую AvroConfluent формат для потребления Kafka сообщений
* как и указано в документации - !clickhouse кеширует avro схему после первого резолва!
* но случае персоздания стрима, с использованием новой, более широкой схемы отвергает новые сообщения, жалуясь на то
что в Avro схеме нет нужных полей, что не верно
* при пересоздании стрима, даже под дугими именем или в другой DB ошибка не меняется, помогает только заведения нового топика и новой схемы что для меня неприемлемо

Подскажите есть ли механихм(или воркараунд) для того что бы попросить кликхаус сбросить/обновить avro схема регистри кеш, или метаданные таблицы?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Each Avro message embeds a schema id that can be resolved to the actual schema with help of the Schema Registry.
А что будет, если просто изменить schema id?
источник

K

Kasabian in ClickHouse не тормозит
schema id меняется автоматом при выпуске новой схемы и приходит в каждом кафка сообщении
только  насколько я понимаю что clickhouse не перезапрашивает его если кеше уже есть схема с таким именем

дело в том что пробовал даже чистить старые схемы с регистри по моему тестовому топику, но кликхаус продолжнал жить со старой схемой
источник