@clickhouse_ru

Страница 591 из 723
Евгений
17.07.2018
11:36:29
Раскидайте по разным таблицам, старую не убирайте, посравнивайте
Тогда не совсем понимаю. Если в одном запросе надо получить столбцы из двух таблиц, то это делается не Join?

Alexey
17.07.2018
11:37:55
почему, можно и джойн

просто если у вас есть таблица1, в которой например 100 строк по вашим условиям, и вы заджойните ее на таблицу2 без условий, а в ней например 10000000 строк, то сначала в подзапросе обработается полностью таблица2, ее результат в оперативу, и заджойнится на таблицу1

Евгений
17.07.2018
11:39:56
Спасибо за помощь. Попробую

Google
Alexey
17.07.2018
11:41:09
насколько я помню, JOIN с пробросом условий, аналог sql, обещали сделать, планировали в разработку

Vsevolod
17.07.2018
11:41:40
есть такой глупый вопрос по distributed: допустим, у меня есть 100-200 нод (без реплик), в каждой 100к записей за сутки примерно, и я хочу сделать ко всему этому запрос с group by (в результате выборки будет 100-1000 записей). вопрос заключается в том, как будет расходоваться память на ноде, которая будет делать аггрегацию с этой distributed таблицы

Vsevolod
17.07.2018
11:42:56
то есть, оценка примерно n_groups * n_nodes?

Alex
17.07.2018
11:43:04
и "прожорливость" будет зависеть от того, сколько уникальных ключей агрегации будет, и насколько тяжелые до памяти там агрегатные функции

Vsevolod
17.07.2018
11:43:36
но основная тяжесть ляжет на ноды distributed, а не на ноду, которая эти данные аггрегирует - так?

Alex
17.07.2018
11:43:38
например select count() from distributed group by uint8_typed_field до памяти не жручая

Vsevolod
17.07.2018
11:44:08
у меня проблема усугубляется тем, что я храню данные в нескольких таблицах и иногда нужен join / array join

Alex
17.07.2018
11:44:18
Vsevolod
17.07.2018
11:44:27
понятно, спасибо

Антон
17.07.2018
11:44:47
Ребят, подскажите пожалуйста, как транспонировать таблицу?

Vladimir
17.07.2018
11:47:09


Stanislav
17.07.2018
11:48:26
Вы получаете результат сжатым потоком в http, curl разжимает. Хотите архива - архивируйте самостоятельно.

Google
Vladimir
17.07.2018
11:50:21
Вы получаете результат сжатым потоком в http, curl разжимает. Хотите архива - архивируйте самостоятельно.
А как я могу проверить, что действительно по сети передаются сжалые данные?

Stanislav
17.07.2018
11:50:30
опция curl -v

Ну или через tcpdump словить

Vladimir
17.07.2018
11:51:38
опция curl -v
Спасибо, попробую из терминала сделать (на скрине постман)

опция curl -v
Да, в терминал возвращается кракозябра.. Значит это постман сам разжимает. Спасибо!

Kirill
17.07.2018
11:54:00
или tcpdump'ом поиграйтесь если недоверяете

Александр
17.07.2018
14:11:20
Запрос болтался в system.process а потом пропал но консольный client который его выполнял не отвалился - куда смотреть что случилось не так ?

в system.query_log его нет

Anton
17.07.2018
14:23:55
Всем привет! Есть сложности с подключением Talend Open Studio (Data Integration) к КХ: в error message видно только java.lang.NoSuchMethodError: java.nio. На этом же .jar через jdbc нормально подключается DBeaver. Кто-нибудь сталкивался с таким?

Daniel
17.07.2018
16:12:04
Что случается при превышении max_memory_usage_for_all_queries или max_memory_usage_for_user ? Или КХ просто не даст до такого дойти, будет порционно обрабатывать данные?

GithubReleases
17.07.2018
16:22:54
yandex/ClickHouse was tagged: v1.1.54394-stable Link: https://github.com/yandex/ClickHouse/releases/tag/v1.1.54394-stable Release notes: Auto version update to [54394]

Vladimir
17.07.2018
16:24:44
привет. а никаких идей для обхода использования констант в функциях при работе со строками нет?

Alexey
17.07.2018
16:43:07
в system.query_log его нет
system.query_log по-умолчанию выключен. Включается отдельно - настройкой log_queries уровня пользователя. Эту настройку можно прописать для всех - в users.xml в профиле default.

Evgeny
18.07.2018
07:47:03
Добрый день Скажите пожалуйста, а можно как-то сделать выборку с match, где регулярку брать из поля, не константой?

Alexander
18.07.2018
07:49:03
добрый день Да, можно

просто вместо регулярки делаете select

результатом SELECT должен быть текст регулярного выражения

Google
Evgeny
18.07.2018
07:51:25
А как потом передать это в матч?

Alexander
18.07.2018
07:55:07
Evgeny
18.07.2018
07:56:47
А, я понял, спасибо. Я думал выбрать из таблицы с условием match(column1, joinedColumn)

molo4ko
18.07.2018
09:35:18
а почему IN требует GLOBAL, если во вложенном запросе выбирать колонку, которая является ключом шардирования?

Denis
18.07.2018
09:38:34
так вам нужны все результаты или с шарда только?

molo4ko
18.07.2018
09:45:46
все, но логично предположить, что каждый шард можем сам целиком посчитать для себя

Firej
18.07.2018
10:00:45
товарищи, а вот у меня если есть пара таблиц, в каждой по миллиарду записей, есть смысл делать запросы с джойнами этих таблиц? 1-к-1

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

Tima
18.07.2018
10:08:13
поле по которому джойнить называется в двух таблицах по разному, поэтому интересно до того как буду приниматься за переименование - есть ли смысл
Переименуйте в рамках запроса. Вообще вопрос странный, уточните что вас беспокоит? Будет ли быстро работать или что?

Firej
18.07.2018
10:08:38
ну да, будет ли работать за адекватное время - за пару минут хотя бы

Tima
18.07.2018
10:18:39
Пробуйте, без дополнительных вводных ничем помочь не сможем

Ivan
18.07.2018
11:08:16
Привет! Хочу соптимизировать подключения к ClickHouse приложение работает на базе SpringBoot и использует последнюю сборку jdbc драйвера, но на сколько я понимаю - все запросы все равно выполняются по шттп? думаю как быть с коннекшен пулом. имеет смысл что то химичить или смысла нет

Antony
18.07.2018
11:45:32
Всем привет! Есть ли возможность в запросе написать нечто вроде - any(*), что бы не оборачивать каждый аргумент пр агрегированных запросах??

Denis
18.07.2018
12:06:28
посмотрите на https://github.com/Vertamedia/chproxy
а к нему самому надо пул соединений держать?

Tima
18.07.2018
12:37:25
Есть таблица a1 в mysql, есть таблица a2 в КХ, которая смотрит на таблицу a1 в mysql. И в a1 есть поле типа Enum, которое может быть Null. При попытки обратиться к таблице a2 пишет ошибку Unsupported type Enum8('promo' = 1, 'flashPromo' = 2) Попытался при создании таблицы a2 обернуть поле в Nullable, поиграться со значениями самого enum - не помогает. Есть вариант обойти?

Denis
18.07.2018
12:43:08
Enum8(null=-1, 'promo' = 1, 'flashPromo' = 2) ?

у меня вот такая конструкция при загрузке данных replaceOne(ifNull(eventtype,''),'null','')

null значения преобразовываются в строки нулевой длины сначала. а потом уже столбец в enum

Google
Tima
18.07.2018
12:46:48
Enum8(null=-1, 'promo' = 1, 'flashPromo' = 2) ?
Code: 223, e.displayText() = DB::Exception: Elements of Enum data type must be of form: 'name' = number, where name is string literal and number is an integer, e.what() = DB::Exception

Denis
18.07.2018
12:47:21
а ''=-1 ?

но понадобится преобразование скорее всего, которое выше

Tima
18.07.2018
12:48:22
а ''=-1 ?
Unsupported type Enum8('promo' = -1, 'flashPromo' = 2, '' = 3)

но понадобится преобразование скорее всего, которое выше
А как его записать в запрос создания таблицы? Или только через вьюху поверх таблицы?

Antony
18.07.2018
12:49:25
Скорее всего нет, КХ "не любит" *
Возможно есть какой-либо способ взять строки только с максимальной версией (отдельное поле) , что-то вроде того: SELECT * FROM test.transactions AS t1 WHERE version = ( SELECT MAX(version) FROM test.transactions AS t2 WHERE t1.tran_id = t2.tran_id ) AS tmp

Denis
18.07.2018
12:50:00
у меня это как раз в запросе создания таблцы. только у меня она из log таблицы создаётся. как вы из mysql достаёте я не знаю.

cast(replaceOne(ifNull(eventtype,''),'null','') as Enum8 ('' = 0, 'mytype' = 1)) as eventtype,

Tima
18.07.2018
12:51:06
Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 533 (line 22, col 7): ( replaceOne( ifNull(usedPromocodeType, ''), 'null', '' ) as Enum8 ('' = 0, 'promo' = 1, 'flashPromo' = 2) ) as usedPromocodeT. Expected one of: identifier with optional parameters, function, DEFAULT, MATERIALIZED, ALIAS, nested table, identifier with parameters, identifier, e.what() = DB::Exception

Спасибо за советы, похоже проще отказаться от Enum

Denis
18.07.2018
13:16:42
так этот подход работает, когда вы mergetree создаёте как селект из другой (log/mysql) таблицы

то есть мускульную таблицу как строку создаёте и делаете импорт в мерджтри

Tima
18.07.2018
13:18:20
так этот подход работает, когда вы mergetree создаёте как селект из другой (log/mysql) таблицы
Так а если так создавать таблицу (a2), при вставке в исходную (a1) данные в a2 как попадут?

Denis
18.07.2018
13:28:59
вручную догружать insert as select

Dmitry
18.07.2018
13:31:55
Коллеги, в документации написано, что в таблицы BUFFER не имеет смысла вставлять по одной строке, производительность не будет оптимальна; а вот к какому размеру вставляемых данных стремиться, не сказано. Сориентируйте, пожалуйста. Сейчас у нас по факту вставляется от, скажем, 3 до 300 строк за раз, и таких вставок, наверное, штук 50-60 в секунду (в разные буферные таблицы в сумме). И ещё интересно - если ничего не менять, с какого количества инсертов в секунду мы упремся в потолок, при текущем размере инсерта? То есть, насколько мы далеко от проблем)

Vladimir
18.07.2018
13:32:06
Всем привет, а есть ли способ оценить необзходимое значение настройки max_result_bytes, кроме как опытным путём?

Google
Tima
18.07.2018
13:57:19
Мы сейчас вообще на Раббите сделали цепочку очередей и гоняем данные разных стадий готовности (по одной записи). И только на финальном этапе батчим как нам удобно - шикарно работает

Konstantin
18.07.2018
14:02:39
господа, приветствую. извините за беспокойство, но никто не поделится клиентом под osx? билдить я его вечность буду на своем ноуте, из homebrew ставится нерабочий. быть может, у кого-то есть уже собранный?

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