@clickhouse_ru

Страница 497 из 723
Evgeny
13.04.2018
16:07:10
вот это запрос

Валерия
13.04.2018
16:16:11
Друзья, кто-нибудь реализовывал на КХ аналог aggregation() over (partition by ...) оракла? Функция runningAccumulate() не спасает :(

prll
13.04.2018
16:17:13
я напечатал это в терминале и случайно вызвал Ктулху, не делайте так!
Ктулху это хорошо - много свежей кальмарятины! а проблему воспроизвести всеравно надо

Ivan
13.04.2018
16:18:53
Я бы попробовал поочерёдно изнути наружу избавляться от джоинов и в теории можно будет понять на каком этапе тормозит. А вообще накой вам такая сложная структура? Сделайте одну огромную таблицу и будет счастье

Google
Vsevolod
13.04.2018
16:20:26
@proller Iä! Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!

Andrey
13.04.2018
16:31:40
Ребят, а что означает ошибка? 2018.04.13 19:30:11.427727 [ 22 ] <Error> HTTPHandler: Cannot send exception to client: Code: 24, e.displayText() = DB::Exception: Cannot write to ostream, e.what() = DB::Exception, Stack trace: убрал трейс для читаемости

LeiDruid
13.04.2018
16:32:35
У меня такое когда клиент отвалился, по таймауту, например

Александр
13.04.2018
16:53:54
а что такое CloM8CwMR2
Это локальные файлы

Которые как временные таблицы используются

Andrey
13.04.2018
16:59:00
Ребят, а можно выдать права доступа только на 1 базу?

Alexey
13.04.2018
17:18:08
Но суть не в этом. Суть в том, что почему то на разных версиях этот запрос отрабатывает по разному. На текущей стабильной он работает капец как долго. Причем он примерно 160 секунд валит в логи вот такую строчку, что я скинул и потом за 1мс выполняет запрос.
Есть регрессия производительности при анализе запросов с большим количеством подзапросов в FROM. Я имел её ввиду ещё когда готовил релиз, но решил что это пока не очень важно, так как она начинает иметь значение на цепочках из хотя бы десятков подзапросов. Исправить можно.

Ваш запрос красиво выглядит в клиенте, надеюсь вы писали его не вручную.

Александр
13.04.2018
17:18:40
Ваш запрос красиво выглядит в клиенте, надеюсь вы писали его не вручную.
Нет конечно :) У нас генератор таких запросов существует )

Ваш запрос красиво выглядит в клиенте, надеюсь вы писали его не вручную.
Это на самом деле маленький запрос. Мы собираем гораздо бОльшие запросы, да такие, что пришлось пилить транспорт через CLI клиент, т.к. использовались временные таблицы из локальных файлов + запрос на столько большой, что в URL не помещается из-за ограничения по длине :(

Будем ждать фикс! :) Надеюсь, что в чейнджлоге появится информация об исправлении!

Александр
13.04.2018
17:24:57
Google
Александр
13.04.2018
17:25:50
Мы даже хотели напилить фикс под это дело, что бы при отправке файлов на сервер по HTTP для запроса, можно было постом так же и запрос передать, но у нас спецов в плюсах не нашлось ( Просили знакомого сделать, но он предпочел не тратить на это время :(

Alexey
13.04.2018
17:26:20
Александр
13.04.2018
17:28:09
Действительно, помню о таком.
Просто CLI не позволяет из PHP делать асинхронные запрос. Точнее это можно сделать, но блин...там будут кейсы когда останутся зомби процессы, а возиться с ними не хочется. Асинхронщина по HTTP давала нам не плохую скорость :) Но это не критично. Мы все тешим себя надеждой, либо дождаться официальной фичи, либо найти все таки разработчика на плюсах, который это поправит

Александр
13.04.2018
17:36:15
Мы дали эту задачу незнакомому энтузиасту с улицы.
Даже не знаю как на это реагировать, но я посмеялся от души )))

Надеюсь, что сделает!

Vsevolod
13.04.2018
17:40:04
Энтузиаст, поди, мелочь просил, а вы с ним так жестоко

Kirill
13.04.2018
20:58:43
Ребят, а можно выдать права доступа только на 1 базу?
Да, можно. Для пользователя указывается список баз в allow_databases, например: <users> <username> <password></password> <allow_databases> <database>test</database> </allow_databases> </username> </users>

Andrey
13.04.2018
20:59:30
Да, можно. Для пользователя указывается список баз в allow_databases, например: <users> <username> <password></password> <allow_databases> <database>test</database> </allow_databases> </username> </users>
Спасибо! А может быть тогда есть возможность пойти дальше и сделать для части баз RO доступ, а для части RW? Может быть есть дока по этому поводу?

Kirill
13.04.2018
21:01:11
Спасибо! А может быть тогда есть возможность пойти дальше и сделать для части баз RO доступ, а для части RW? Может быть есть дока по этому поводу?
Нет, так сделать нельзя. На данный момент в ClickHouse очень упращенный механизм разграничения прав

Константин
13.04.2018
21:04:27
Телеграмм бот «Telegram Proxy (SOCKS5) Bot» в списке сайта Telegram-store.com https://ru.telegram-store.com/catalog/bots/proxy_socks5_bot/

Konstantin
14.04.2018
09:15:56
Народ, кто нить решал подобную проблему? https://github.com/yandex/ClickHouse/issues/2070

mephistopheies
14.04.2018
09:36:01
господа, нужно мне было сделать cumsum внутри групп, поискал я тут в группе и нашел только такое t.me/clickhouse_ru/2430 по аналогии сделал для своих данных https://gist.github.com/mephistopheies/971769aec94162da9314d86e3cc9bf45 имхо это какой то изврат дичайший, сообщение то на которое я ориентировался слегка старое, может с тех пор появился какой то более кошерный способ считать камсум? upd: ессесно такой изврат вышел за пределы памяти -)

prll
14.04.2018
09:46:33
Народ, кто нить решал подобную проблему? https://github.com/yandex/ClickHouse/issues/2070
а можно воспроизведение этой проблемы поместить в скрипт чтоб запустить и упало? тогда было бы легче решить

prll
14.04.2018
09:59:17
да

Slava
14.04.2018
17:32:29
парни, привет. поделитесь как можно максимально быстро заджоинить справочник к distibuted таблице, либо нужно эту таблицу-справочник подключать как-то по другому. Ситуация следующая, есть 2 ноды, distributed таблица c ключом rand(), на первой ноде есть справочник, с которым пытаюсь заджоиниться, естественно получается медленно, тк, данным из второй ноды нужно джоиниться с этим справочником по сети

papa
14.04.2018
17:36:50
а может его на обоих нодах держать?

Slava
14.04.2018
18:43:25
а может его на обоих нодах держать?
у меня была такая идея,еще не пробовал, возможно есть более быстрые способы в виде подключения внешних словарей или чего-нибудь похожего

antuan
14.04.2018
19:17:21
мне недавно подсказали про global join, может, вам тоже подойдет?

Google
antuan
14.04.2018
19:18:36
https://clickhouse.yandex/docs/ru/query_language/queries/#join

При использовании GLOBAL ... JOIN-а, сначала, на сервере-инициаторе запроса, выполняется подзапрос для вычисления "правой" таблицы, и затем эта временная таблица передаётся на каждый удалённый сервер, и на них выполняются запросы, с использованием этих переданных временных данных. Следует быть аккуратным при использовании GLOBAL JOIN-ов. Подробнее читайте в разделе "Распределённые подзапросы" ниже.

Konstantin
14.04.2018
20:01:56
да
Положил ссылку на скрипт в изис https://github.com/yandex/ClickHouse/issues/2070. КХ падает даже без сообщений в топике Кафки. Как только вьюха подключается … сервер КХ умирает.

Slava
14.04.2018
20:15:13
Спасибо

Sergei
15.04.2018
17:58:49
Добрый вечер! Подскажите плиз что с этим можно сделать: <Warning> ConnectionPoolWithFailover: Connection failed at try №1, reason: Code: 209, e.displayText() = DB::NetException: Timeout exceeded while reading from socket (...), e.what() = DB::NetException

prll
15.04.2018
20:25:25
а с сетью все норм?

Kirill
15.04.2018
21:09:46
Интересно чем это начинание закончится? ? https://github.com/yandex/ClickHouse/issues/2218

Slach
16.04.2018
04:10:59
Интересно чем это начинание закончится? ? https://github.com/yandex/ClickHouse/issues/2218
а чувак TABIX то смотрел? ;) чем оно ему не угодило?

Konstantin
16.04.2018
04:42:20
смотрел, судя по тексту > For the tools of interaction with ClickHouse are very bad and full of bug (like Tabix).

Sergei
16.04.2018
05:20:02
а с сетью все норм?
Да, все норм. 3 реплики, запрос простой ~3/10 раз подвисает с такой на несколько секунд.

Все реплики рядышком физически

Wolf
16.04.2018
05:23:14
Посмотрите логи кх, посмотрите логи syslog посмотрите dmesg

Ощущение что не хватает файлов или сокетов или соединений в фаерволе

Aleksandr
16.04.2018
06:58:18
Приветствую. Подскажите пожалуйста, обновояю сейчас версию clickhouse и смотрю что раньше использовался метод сжатия данных lz4 а сейчас zstd , вопрос в следующим что бы перейти на новый вид сжатия достаточно указать просто новый метод или же нужно как то переливать данные? Спасибо.

Aleksandr
16.04.2018
07:01:41
т.е. достаточно просто в конфиг файле изменить метод сжатия и все?

Kirill
16.04.2018
07:02:38
т.е. достаточно просто в конфиг файле изменить метод сжатия и все?
Да, этого должно хватить, но нужно понимать зачем оно вам

Aleksandr
16.04.2018
07:04:56
спасибо, для экономии места ?

Google
Aleksandr
16.04.2018
07:05:37
а с zstd просядет скорость выборки?

Kirill
16.04.2018
07:06:08
Для сжатых данных конечно просядет

Но, у КХ еще есть кэш расжатых блоков, если он у вас неплохо справляется то сильно оно вас не зацепит

Aleksandr
16.04.2018
07:08:23
просто нашел сравнение lz4 и zstd сжатия и вижу что zstd в плане выборки медленее, я так понимаю за счет того что данные больше сжаты

оставлю я наверное lz4 тогда ? но спасибо за информацию

Sergei
16.04.2018
07:20:21
Aleksandr
16.04.2018
07:56:34
Подскажите пожалуйста такой момент, можно ли как то делать подзапрос с другой таблицы? в mysql можно сделать что то типа такого: select t1.id, (select count table2 where event_date = t1.event_date and field2 = t1.field2) as cnt from table1 as t1 where t1.event_date = curdate() and field2 = 5

смотрел что можно через any left join но там идет сравнение по 1 полю, а нужно по двум

Артемий
16.04.2018
07:58:20
Aleksandr
16.04.2018
07:58:35
о, спасибо, сейчас попробую

а если название полей разное то уже никак?

в t1 - event_date в t2 - date поля

papa
16.04.2018
08:01:40
Подскажите пожалуйста такой момент, можно ли как то делать подзапрос с другой таблицы? в mysql можно сделать что то типа такого: select t1.id, (select count table2 where event_date = t1.event_date and field2 = t1.field2) as cnt from table1 as t1 where t1.event_date = curdate() and field2 = 5
1. коррелированные подзапросы не поддерживаются. 2. конкретно этот запрос можно переписать в виде select t1.id, cnt from table1 join (select field2,event_date,count() as cnt from table2 join ( select field2,event_date from table1 where event_date=curdate()) using field2,event_date group by field2,event_date) using field2 может получиться что-то рабочее.

а если название полей разное то уже никак?
select x as y в подзапросе - будут одинаковые

Igor
16.04.2018
08:19:13
Интересно чем это начинание закончится? ? https://github.com/yandex/ClickHouse/issues/2218
Спасибо за ссылку, понаблюдаю, интересно что получится )

Andrew
16.04.2018
08:31:00
А это не тот же чувак который metabase драйвер последним обещался разработать?

Igor
16.04.2018
08:35:31
Вроде он же

Victor
16.04.2018
08:44:27
подскажите пожалуйста, как правильно посчитать количество уникальных кортежей параметров есть таблица вида create table hits(url String,params Nested (Name String,Value String)) хочется отфильтровать часть параметров по params.Name 1.arrayFilter(x -> x not in ('bad name1','bad name2'),params.Name) 2.из результата сделать тупл my_tuple 3.посчитать количество уникальных туплов на каждый url select my_tuple,url,count from hits group by my_tuple,url group by my_tuple,url

papa
16.04.2018
08:50:19
uniqArray(arrayFilter((n, v) -> 1, p.Name, p.Value), arrayFilter((v, n) -> 1, p.Value, p.Name)) group by url

где вместо 1 фильтр по имени или значению.

Google
Victor
16.04.2018
09:11:06
uniqArray(arrayFilter((n, v) -> 1, p.Name, p.Value), arrayFilter((v, n) -> 1, p.Value, p.Name)) group by url
если не ошибаюсь,это будет количество уникальных элементов в кортеже на каждый url а мне хотелось бы количество уникальных кортежей

papa
16.04.2018
09:16:07
ну вы посмотрите, вдруг подойдет.

хотя.. а вы в данном случае что считаете кортежом? пару name-value?

M
16.04.2018
09:26:51
Добрый день, поднял старые бекапы. Но выборки перестали работать. Запрос падает с DB::Exception: Size of filter doesn't match size of column. Версия 1.1.54370. Подскажите, что можно сделать? Кастование полей к их типу поможет? Думается мне что в той партиции были альтеры по ресайзу колонки в большую сторону.. но точно сказать не могу

Victor
16.04.2018
09:27:57
хотя.. а вы в данном случае что считаете кортежом? пару name-value?
да. и мне хочется результат вида url, (name,value),count()

papa
16.04.2018
10:06:34
да. и мне хочется результат вида url, (name,value),count()
и count() означает что, количество раз которое была такая комбинация url,name,value?

M
16.04.2018
10:06:49
Мне помогло добавление полей в where, так что бы они при этом ни на что не влияли
пробовал. выбрало чуточку больше, но итог все равно Exception. Позже попробую все поля что есть добавить в Where с условиями...

Ilia
16.04.2018
10:07:44
У меня кстати тоже с 70ой проявилось

Andrey
16.04.2018
10:22:11
Коллеги, привет! Подскажите, пожалуйста, есть ли где -то сравнение кликхауса с BigQuery?

Alexey
16.04.2018
10:39:40
https://clickhouse.yandex/presentations/uwdc/#29

Страница 497 из 723