Size: a a a

ClickHouse не тормозит

2020 August 05

A

Alexander in ClickHouse не тормозит
Dj
SELECT IPv4StringToNum('192.168.3.2') between IPv4CIDRToRange(toIPv4('192.168.5.2'), 16).1 and IPv4CIDRToRange(toIPv4('192.168.5.2'), 16).2;
да, пришел к такому же решению, спасибо
источник

SB

Serge Bash in ClickHouse не тормозит
Привет!
Когда прилетают запросы к distributed таблице на прошерстить большие объёмы данных, проседает загрузка в кластер КХ. Какие-то общие рекомендации по разруливанию такой проблемы можете дать?
источник

過酸化水素 in ClickHouse не тормозит
Pavel L
Всем привет.
Как вы проводите миграции? По ответам вижу, что у всех что-то самописное, но может появилась уже версия flyway или liquibase с поддержкой КХ?
вижу пр https://github.com/flyway/flyway/pull/2640, но он не вмержен пока что.
Туда в flyway кто-то пытался добавить поддержку, но ее разработчики flyway не одобрили
источник

SZ

Sergey Zelenskiy in ClickHouse не тормозит
Всем привет, обновили версию кх с 19.14 на 20.3, раньше делали запросы такого вида ALTER TABLE default.table2 REPLACE PARTITION FROM default.table1 и все работало, структура таблиц одинаковая, ключ партицирования toYYYYMMDD(dt), сейчас такой запрос отдает Syntax error: failed at position: FROM default.table1. Expected one of: AND, OR, token, NOT, BETWEEN, LIKE, IS, NOT LIKE, IN, NOT IN, GLOBAL IN, GLOBAL NOT IN, QuestionMark (version 20.3.12.112), если сделать запрос такого вида ALTER TABLE default.table2 REPLACE PARTITION 20200526 FROM default.table1 работает, также работает запрос  SELECT toYYYYMMDD(toDate('2020.05.26')) в чем может быть проблема?
источник

PL

Pavel L in ClickHouse не тормозит
過酸化水素
Туда в flyway кто-то пытался добавить поддержку, но ее разработчики flyway не одобрили
В общем централизованного способа проводить миграции пока нет и все используют что-то самописное?
источник

A

Andrey in ClickHouse не тормозит
Serge Bash
Привет!
Когда прилетают запросы к distributed таблице на прошерстить большие объёмы данных, проседает загрузка в кластер КХ. Какие-то общие рекомендации по разруливанию такой проблемы можете дать?
Обратите внимание на количество потоков которое выделяется для выполнения запроса. Можно немного уменьшить, тогда запрос будет медленее, но менее деструктивен. Искать по слову threads
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Sergey Zelenskiy
Всем привет, обновили версию кх с 19.14 на 20.3, раньше делали запросы такого вида ALTER TABLE default.table2 REPLACE PARTITION FROM default.table1 и все работало, структура таблиц одинаковая, ключ партицирования toYYYYMMDD(dt), сейчас такой запрос отдает Syntax error: failed at position: FROM default.table1. Expected one of: AND, OR, token, NOT, BETWEEN, LIKE, IS, NOT LIKE, IN, NOT IN, GLOBAL IN, GLOBAL NOT IN, QuestionMark (version 20.3.12.112), если сделать запрос такого вида ALTER TABLE default.table2 REPLACE PARTITION 20200526 FROM default.table1 работает, также работает запрос  SELECT toYYYYMMDD(toDate('2020.05.26')) в чем может быть проблема?
https://github.com/ClickHouse/ClickHouse/issues/10212

tuple(toYYYYMMDD(toDate('2020.05.26')))
источник

SZ

Sergey Zelenskiy in ClickHouse не тормозит
Спасибо
источник

AK

Andrii Kakoichenko in ClickHouse не тормозит
Всем привет
Сильно не пинайте, КХ пробую впервые.
Рассматриваю, как альтернативу для MSSQL с колоночным индексом на объёме 10+ ТБ для уже имеющегося хранилища.  

Попробовал несколько простых запросов в песочнице play.clickhouse.tech

И на вот таком запросе, который ищет топ пользователей с наименьшей медианой между соседними хитами, песочница думает 1 минуту, после чего отдает ошибку.

SELECT o1.UserID, median(dateDiff('second', o1.EventTime, o2.EventTime, 'UTC')), count(1)
FROM hits_100m_obfuscated as o1
asof join hits_100m_obfuscated
 as o2 on o1.UserID = o2.UserID and o1.WatchID < o2.WatchID
group by o1.UserID
ORDER BY median(dateDiff('second', o1.EventTime, o2.EventTime, 'UTC'))
limit 100

Скажите, какой бест практис решения подобных задач (для наших потребностей достаточно типовая). Как можно посчитать то же, но вложиться в минуту и 10ГБ памяти песочницы, и возможно ли?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Andrii Kakoichenko
Всем привет
Сильно не пинайте, КХ пробую впервые.
Рассматриваю, как альтернативу для MSSQL с колоночным индексом на объёме 10+ ТБ для уже имеющегося хранилища.  

Попробовал несколько простых запросов в песочнице play.clickhouse.tech

И на вот таком запросе, который ищет топ пользователей с наименьшей медианой между соседними хитами, песочница думает 1 минуту, после чего отдает ошибку.

SELECT o1.UserID, median(dateDiff('second', o1.EventTime, o2.EventTime, 'UTC')), count(1)
FROM hits_100m_obfuscated as o1
asof join hits_100m_obfuscated
 as o2 on o1.UserID = o2.UserID and o1.WatchID < o2.WatchID
group by o1.UserID
ORDER BY median(dateDiff('second', o1.EventTime, o2.EventTime, 'UTC'))
limit 100

Скажите, какой бест практис решения подобных задач (для наших потребностей достаточно типовая). Как можно посчитать то же, но вложиться в минуту и 10ГБ памяти песочницы, и возможно ли?
через GROUP BY и массивы
источник

K

Kos in ClickHouse не тормозит
подскажите пожалуйста по zookeper  для чего нужны в файле в  jaas.conf  логины пароли, если у меня  почему то  можно под любой комбинацией логин/пароль создать ноду  и работать с ней.
можно ли вообще ограничить списком пользователей, кто может работать с zoo ?
источник

DT

Dmitry Titov in ClickHouse не тормозит
JOIN в clickhouse нужно избегать, особенно с большими таблицами, правая часть поднимается в память
источник

AK

Andrii Kakoichenko in ClickHouse не тормозит
Спасибо, то есть, надо делать промежуточный результат со строками вида

UserID, массив с нужными полями всех хитов юзера

И потом как-то уже на каждом отдельном массиве находить пары соседних хитов и считать медиану?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Andrii Kakoichenko
Спасибо, то есть, надо делать промежуточный результат со строками вида

UserID, массив с нужными полями всех хитов юзера

И потом как-то уже на каждом отдельном массиве находить пары соседних хитов и считать медиану?
да, можно через лямбды
источник

DT

Dmitry Titov in ClickHouse не тормозит
делаешь два массива один нормальный, второй со сдвигом в единицу и считаешь что хочешь
источник

DT

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

DT

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

AK

Andrii Kakoichenko in ClickHouse не тормозит
Интересно.
А как быть, когда надо таки использовать два датасета в запросе. Например, есть таблица с покупками и таблица с хитами. И надо для каждой покупки посчитать поведенческие метрики. Например, сколько страниц посетил перед покупкой, на какой дольше всего задержался, и так далее. Тоже имеет смысл думать, как без джойна обойтись?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Andrii Kakoichenko
Интересно.
А как быть, когда надо таки использовать два датасета в запросе. Например, есть таблица с покупками и таблица с хитами. И надо для каждой покупки посчитать поведенческие метрики. Например, сколько страниц посетил перед покупкой, на какой дольше всего задержался, и так далее. Тоже имеет смысл думать, как без джойна обойтись?
ну clickhouse-way это иметь одну таблицу: с покупками, хитам и тд
источник

AK

Andrii Kakoichenko in ClickHouse не тормозит
Хм
источник