@clickhouse_ru

Страница 626 из 723
Michal
20.08.2018
06:10:46
за минуту не успевает. И вместо throw ("брось исключение") включено break ("прерви без сообщения об ошибке")

Ну или может быть max_rows_to_read

Но тогда бы было исключение

Vadim
20.08.2018
06:13:43
Ок, отключил бряк, поднял лимиты.

Google
Vadim
20.08.2018
06:19:00
Думаю что timeout_overflow_mode + max_execution_time
Спасибо огромное. Помогло.

Mike
20.08.2018
08:23:36
А это вам не подходит? https://stackoverflow.com/a/51873915/1555175
Скоро там появится и решение, к которому я в итоге пришел. Вроде оно, да

Олег Иванович
20.08.2018
09:04:31
... в одном из видео, слышал что для КХ нужно минимум 10Г оперативки как задать минимальный лимит? в доках не нашел

Vadim
20.08.2018
09:06:15
max_memory_usage

Олег Иванович
20.08.2018
09:07:05
max_memory_usage
можно поточнее пожалуйста, в какой конфиг вписывается, или ссылку ?

Vadim
20.08.2018
09:08:00
users.xml https://clickhouse.yandex/docs/en/operations/settings/query_complexity/#max_memory_usage_for_all_queries

Олег Иванович
20.08.2018
09:08:35
спасибо

Sergey
20.08.2018
09:45:14
... в одном из видео, слышал что для КХ нужно минимум 10Г оперативки как задать минимальный лимит? в доках не нашел
Вроде не строгое правило. Зависит от запросов, например. Я и на восьми поднимал, норм работало, пока тяжёлые SELECT'ы не подсунул, там начало кушать.

Mike
20.08.2018
09:47:14
Вроде не строгое правило. Зависит от запросов, например. Я и на восьми поднимал, норм работало, пока тяжёлые SELECT'ы не подсунул, там начало кушать.
на четырёх норм может работать, всё зависит от задач, которые требуется решать, и объёмов данных, на которых нужно работать.

Vadim
20.08.2018
09:48:37
На 8GB работает с декабря, все норм.

Vladimir
20.08.2018
09:55:33
Всем привет! Как можно сгруппировать по хешу значения из таблицы, при этом оставив названия полей текущими? Например: SELECT client_id, any(category_id) as category_id, cityHash64(category_id) as category_id_hash, count() as cnt FROM db.table GROUP BY (client_id, category_id_hash); пишет что DB::Exception: Unknown identifier: any(category_id) и хотелось бы на выходе получить именно название category_id: (если изменить его, то все отрабатывает, к примеру: any(category_id) as _category_id)

Google
Александр
20.08.2018
10:00:35
Вроде не строгое правило. Зависит от запросов, например. Я и на восьми поднимал, норм работало, пока тяжёлые SELECT'ы не подсунул, там начало кушать.
Там скорее всего имелось ввиду, что в настройках по умолчанию стоит лимит в 10 гигов памяти. Я лично стенды поднимал на серверах с 2 гигами оперативы и все замечательно работало.

Олег Иванович
20.08.2018
10:02:54
с оперативкой разобрался, там написано, в доках написано что это максимальный вариант но в видео, почему-то было озвучено, что это минимальный лимит

Евгений
20.08.2018
10:06:49
Привет, не подскажете, как можно посмотреть запрос, использованный для создания таблицы?

Евгений
20.08.2018
10:09:21
Nikolay
20.08.2018
10:24:00
Привет, Чтобы забирать данные из постгреса в КХ, обязательно ли настраивать конфигурации словаря и odbc.ini (как описано в https://clickhouse.yandex/docs/ru/query_language/dicts/external_dicts_dict_sources/#postgresql) или можно обойтись передачей всех параметров в connection string типа select * from odbc('UID=username;PWD=password;HOST=127.0.0.1;PORT=5432;DATABASE=my_db', 'table_name') ?

Alexander
20.08.2018
10:24:52
Можно передавать connection_string в функцию, настраивать не обязательно

Nikolay
20.08.2018
10:25:43
спасибо

Viske
20.08.2018
10:28:40
всем привет имеется две таблицы размеров 38.25 GiB и 33.06 GiB вопрос сколько нужноопертивной памяти чтобы выполнить join по ним скажем по ID_user ? сейчас селект отказывается выполнятся ссылаясь на ограничение озу в 30 гигов

Viske
20.08.2018
10:30:15
это размер уже в сжатом виде

Mike
20.08.2018
10:30:33
Если нужен полный джойн (т.e в результате все строки присутствуют), то обе таблицы должны влезть в озу (разумеется, только те колонки, которые нужны).

Viske
20.08.2018
10:31:49
нужен не full outer join а просто inner join

Mike
20.08.2018
10:31:52
то есть это сумма несжатых размеров всех колонок, которые нужны + возможно какой-то оверхед.

Viske
20.08.2018
10:32:31
то есть это сумма несжатых размеров всех колонок, которые нужны + возможно какой-то оверхед.
ну это размер таблиц , который показывает селект --Размер таблиц SELECT table, formatReadableSize(sum(bytes)) as size, min(min_date) as min_date, max(max_date) as max_date FROM system.parts WHERE active GROUP BY table

т.е в таблицах больше 30 млдр записей, а если делать join то около 50 млн

Google
Kirill
20.08.2018
11:14:11
т.е в таблицах больше 30 млдр записей, а если делать join то около 50 млн
КХ должен материализовать левую часть джоина в памяти, вот в это очень легко воткнуться и пока не будет мерж-джоина эта проблема будет.

Kirill
20.08.2018
11:16:53
только левую?
Правую, я руки перепутал )

Viske
20.08.2018
11:18:13
если в правой части будет вложенный селект который из таблицы выбирает только нужные нам по like значения и уже потом будет соединяет их с другой таблицей разница будет или нет? он всё равно должен будет материализовать всю праую таблицу целиком?

Kirill
20.08.2018
11:20:22
SELECT * FROM T JOIN T2 (SELECT * FROM TT LIMIT 5) USING(c) - не будет писать в память TT целиком, только 5 строк

G
20.08.2018
11:24:04
Коллеги, привет От админа по поводу бекапов CH пришло бэкап кликхайса в процессе. но вообще как бэкапить шардированный кластер пока что вообще не понятно. инфу я находил тока как один сервер бэкапить Подскажите как бекапить шардированный кластер?

G
20.08.2018
11:25:10
Шарды будут не согласованы?

Kirill
20.08.2018
11:25:45
Шарды будут не согласованы?
А они и так никак к друг другу не относятся

G
20.08.2018
11:27:08
Получается да

Спасибо

mikhail
20.08.2018
11:34:19
Привет! Как спросить из файла?

Нашел: https://clickhouse.yandex/docs/ru/query_language/table_functions/file/

Yuriy
20.08.2018
12:00:58
Добрый день. Я хочу странного: хочу использовать SummingMergeTree и при этом чтобы у меня оставались записи, в которых все суммируемые поля по нулям. Чтобы для историии: вот пришла метрика. вот были везде нулии. А не так, что нет метрики - и бог его знает: то ли были нули, то ли не пришла метркиа. Думаю, можно добавить какое-нибудь еще поле OloloCounter и ставить его в еденичку всегда. Нолики дже не много места будут занимать на диске в пожатом виде, да?

или будут много занимать? Или чо им там вообще щанимать место-то на диске

а может есть просто опция у движка?

Viske
20.08.2018
12:42:29
select count(distinctuser_id) from all_data таблица весит 35 гигов обьем озу 60 гигов но для КХ дали 30 селект вываливается с ошибкой Code: 241, e.displayText() = DB::Exception: Memory limit (for query) exceeded: would use 28.03 GiB (attempt to allocate chunk of 2147483648 bytes), maximum: 27.94 GiB, e.what() = DB::Exception как это обойти?

а если таблица до 300 гигов разрастется?

Evgeny
20.08.2018
12:43:56
а если таблица до 300 гигов разрастется?
фильтровать, либо увеличивать доступный объем памяти

Google
Mike
20.08.2018
12:45:39
фильтровать, либо увеличивать доступный объем памяти
а распределённость может здесь помочь?

Evgeny
20.08.2018
12:46:25
а распределённость может здесь помочь?
только для скорости фильтрации

Viske
20.08.2018
12:47:26
а как нибудь можно посмотреть размер гб колонки?

Yuri
20.08.2018
12:47:48
ну на файловой системе, например? не?

это просто файлы

Vladimir
20.08.2018
12:48:30
Всем привет. Подзапросы в мат.вьюхах разрешены? Ругается при вставке в table, что нет поля time_slot AS SELECT date, time_slot, _string_field as string_field, string_field_hash, events FROM (SELECT date, timeSlot(event_time) as time_slot, any(string_field) as _string_field, cityHash64(string_field) as string_field_hash, count() as events FROM table group by date,time_slot, string_field_hash)

Yuri
20.08.2018
12:49:20
я вижу, что ты пытаешься групировать по time_slot, а у тебя поле event_time

Mike
20.08.2018
12:49:27
только для скорости фильтрации
ну есть у меня таблица на 100gb, и памяти есть на одном сервере 50 и на втором 50. Могу я посчитать тогда строки в таблице, верно?

Yuri
20.08.2018
12:51:39
что значит "посчитать ... строки"? count - нет проблем :)
у него там distinct по не ключевому полю

Viske
20.08.2018
12:51:47
странности какие то select count(distinct user_id) from all_data - выдает ошибку а вот select count(*) from all_data - отрабатывается как так то?

Mike
20.08.2018
12:52:04
у него там distinct по не ключевому полю
ну, я имел в виду в тех условиях, да

Evgeny
20.08.2018
12:52:39
distinct user_id - есть uniq sort, поэтому много памяти кушает

Yuri
20.08.2018
12:52:55
ты хочешь сделать аналог TABLE FULL SCAN и посчитать все уникальные значения в таблицы (огромной)

а КХ в отличии от классических БД это все пытаетс я провернуть в памяти

Vladimir
20.08.2018
12:53:37
я вижу, что ты пытаешься групировать по time_slot, а у тебя поле event_time
так всё дело в том, что сам запрос отрабатывает ок. но если его засунуть в мат.вьюху, то при вставке в логи сыпятся ошибки.

Google
Evgeny
20.08.2018
12:56:39
вышли show create table all_data?

Viske
20.08.2018
12:57:13
ты хочешь сделать аналог TABLE FULL SCAN и посчитать все уникальные значения в таблицы (огромной)
чтобы этого избежать можно сделать ли два поля ключевыми? ENGINE = MergeTree PARTITION BY date order by (user_id,parner_user_id);

Yuri
20.08.2018
12:57:14
самое смешное, когда КХ начнет сортировать/группировать на диске, народ будет сюда приходить и писать, что у него кончилось место на диске :)

Denis
20.08.2018
12:58:23
а как нибудь можно посмотреть размер гб колонки?
system.columns data_compressed_bytes data_uncompressed_bytes system.parts_columns по партам

Yuri
20.08.2018
12:58:34
чтобы этого избежать можно сделать ли два поля ключевыми? ENGINE = MergeTree PARTITION BY date order by (user_id,parner_user_id);
ответ надо искать в архитектуре приложения, я не знаю, если честно. а что у Вас там первичный ключ? вероятно, Вам стоить сделать ключом какой-то там таймстамп, и считать за периоды, чтобы КХ не удивлялся.

я же не знаю ваших бихнес задач

Viske
20.08.2018
12:59:32
с технической точки так можно? и соотвесвенно по нему count будет шустрее ходить?

Mike
20.08.2018
13:00:23
поле ключевое => данные по нему отсортированы => сортировать не надо

Viske
20.08.2018
13:01:16
да я это понял

Yuri
20.08.2018
13:01:36
только по-моему по сути нонсенс какой-то. подумайте, сколько возможный уникальных сочетаний (user_id,parner_user_id) будет? какой-то фиговый ключ, наверное

Viske
20.08.2018
13:02:23
ну таблица маппинг по сути

хранит юзеров одной базы и другой, т.е. обьеденяет

Yuri
20.08.2018
13:02:55
а, тогда годно

а чо она такая здоровая? :)

Viske
20.08.2018
13:03:10
так их много)

Yuri
20.08.2018
13:03:12
там весь Китай в списках? :)

Viske
20.08.2018
13:03:52
тогда бы она ёщё больше была)

спасибо за помощь

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