@clickhouse_ru

Страница 702 из 723
Vladislav
14.10.2018
18:28:14
array=(

ch1 ? SELECT min(date) from Stats where date=today() and length(processlist)<>0 limit 1; SELECT min(date) FROM Stats WHERE (date = today()) AND (length(processlist) != 0) LIMIT 1 ↓ Progress: 196.61 thousand rows, 200.04 MB (643.49 thousand rows/s., 654.71 MB/s.) 2%Received exception from server (version 18.12.17): Code: 241. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Memory limit (for query) exceeded: would use 12.13 GiB (attempt to allocate chunk of 4294967296 bytes), maximum: 9.31 GiB: (while reading column processlist): (while reading from part /var/lib/clickhouse/data/projectName/Stats/20181013_20181014_31568_32714_5/ from mark 3 with max_rows_to_read = 65536). 0 rows in set. Elapsed: 0.473 sec. Processed 196.61 thousand rows, 200.04 MB (415.44 thousand rows/s., 422.68 MB/s.)

ch1 ? SELECT min(date) from Stats where date=today() and arrayElement(processlist,1)<>'' limit 1; SELECT min(date) FROM Stats WHERE (date = today()) AND (processlist[1] != '') LIMIT 1 ↙ Progress: 131.07 thousand rows, 117.53 MB (1.13 million rows/s., 1.01 GB/s.) 1%Received exception from server (version 18.12.17): Code: 241. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Memory limit (for query) exceeded: would use 12.20 GiB (attempt to allocate chunk of 4294967296 bytes), maximum: 9.31 GiB: (while reading column processlist): (while reading from part /var/lib/clickhouse/data/projectName/Stats/20181014_20181014_32715_33209_4/ from mark 182 with max_rows_to_read = 65536). 0 rows in set. Elapsed: 0.279 sec. Processed 131.07 thousand rows, 117.53 MB (470.07 thousand rows/s., 421.49 MB/s.)

Denis
14.10.2018
18:31:49
а если ну max_memory_usage = поставить в 20ГБ или settings optimize_move_to_prewhere=0,max_block_size=100000

Google
Vladislav
14.10.2018
18:32:27
Сейчас вот на таком куске упал: 51M /var/lib/clickhouse/data/projectName/Stats/20181014_20181014_33334_33449_3/processlist.bin

ch1 ? SELECT min(date) from Stats where date=today() and arrayElement(processlist,1)<>'' limit 1 settings optimize_move_to_prewhere=0,max_block_size=100000; SELECT min(date) FROM Stats WHERE (date = today()) AND (processlist[1] != '') LIMIT 1 SETTINGS optimize_move_to_prewhere = 0, max_block_size = 100000 ↓ Progress: 507.90 thousand rows, 545.72 MB (240.86 thousand rows/s., 258.79 MB/s.) █████████████▋ 7%Received exception from server (version 18.12.17): Code: 241. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Memory limit (for query) exceeded: would use 9.61 GiB (attempt to allocate chunk of 536870912 bytes), maximum: 9.31 GiB: (while reading column processlist): (while reading from part /var/lib/clickhouse/data/projectName/Stats/20181014_20181014_32715_33209_4/ from mark 162 with max_rows_to_read = 8192). 0 rows in set. Elapsed: 2.183 sec. Processed 507.90 thousand rows, 545.72 MB (232.69 thousand rows/s., 250.01 MB/s.)

ch1 ? SELECT min(date) from Stats where date=today() and arrayElement(processlist,1)<>'' limit 1 settings optimize_move_to_prewhere=0,max_memory_usage=21474836480; SELECT min(date) FROM Stats WHERE (date = today()) AND (processlist[1] != '') LIMIT 1 SETTINGS optimize_move_to_prewhere = 0, max_memory_usage = 21474836480 DB::Exception: Received from localhost:9000, ::1. DB::Exception: Memory limit (for query) exceeded: would use 9.37 GiB (attempt to allocate chunk of 536870912 bytes), maximum: 9.31 GiB: (while reading column processlist): (while reading from part /var/lib/clickhouse/data/proj/Stats/20181014_20181014_32715_33209_4/ from mark 54 with max_rows_to_read = 8192). 0 rows in set. Elapsed: 1.302 sec. Processed 270.34 thousand rows, 281.73 MB (207.62 thousand rows/s., 216.37 MB/s.)

помоему не работает тут max_memory_usage

О!

Denis
14.10.2018
18:36:29
да, тут не работает, до запроса через set , либо в профиле пользователя

Vladislav
14.10.2018
18:36:30
ch1 ? SELECT min(date) from Stats where date=today() and arrayElement(processlist,1)<>'' limit 1 settings optimize_move_to_prewhere=0,max_block_size=1000, max_memory_usage=21474836480; SELECT min(date) FROM Stats WHERE (date = today()) AND (processlist[1] != '') LIMIT 1 SETTINGS optimize_move_to_prewhere = 0, max_block_size = 1000, max_memory_usage = 21474836480 ┌──min(date)─┐ │ 2018-10-14 │ └────────────┘ 1 rows in set. Elapsed: 7.318 sec. Processed 7.00 million rows, 7.80 GB (956.29 thousand rows/s., 1.07 GB/s.)

max_block_size=1000 помогло

notEmpty тоже с max_block_size=1000 прошел

Denis
14.10.2018
18:37:33
на самом деле возможно уменьшилось дефолтное значение max_memory_usage с 15 до 10,в одной из версий, я не помню

откатиться скорее всего вам можно только на 1.1.54378, я бы попробовал откатится на 1.1.54394 Настройка use_minimalistic_checksums_in_zookeeper таблиц семейства ReplicatedMergeTree включена по-умолчанию. Эта настройка была добавлена в версии 1.1.54378, 2018-04-16. Установка версий, более старых, чем 1.1.54378, становится невозможной.

Vladislav
14.10.2018
18:45:28
Ну нам этот запрос нужен только для того, что бы определить с когда clear column делать)

так, теперь осталось вторая проблема)

Google
Vladislav
14.10.2018
18:49:07


ну судя по всему действительно надо для старый партиций optimize

Denis
14.10.2018
18:50:31
в чем отличие второй проблемы от первой?

Vladislav
14.10.2018
18:50:54
в одной памяти не хватает, во второй колонку не видит(Not found column processlist in block)

Denis
14.10.2018
18:51:20
так и что SETTINGS optimize_move_to_prewhere = 0 не помогает?

сделайте select any(date) from (select * .....)

Vladislav
14.10.2018
18:53:14
да, помогло. Сорри)

Спасибо большое! Много нового узнал) Какой-то баг репорт по итогу нужен на гитхаб?

15гб РАМ на кусок размером в 51мб(на диске)- немного странно. Хотя скорее не баг, а вопрос к оптимизатору

Denis
14.10.2018
18:55:42
это баг, ну сделайте issue, без примера на воспроизведения в этом мало смысла конечно.

что у вас в массивах лежит?

сколько строк и насколько длинные?

Vladislav
14.10.2018
18:56:29
список процессов у пользователя

где-то 100 штук

до 30 символов

Denis
14.10.2018
18:57:07
процессы? типа ps -ef ?

Аки
14.10.2018
18:57:53
Код не выполняется должным образом. Попытайтесь выяснить, почему.function multiply(a, b){ a * b }

Vladislav
14.10.2018
18:57:56


Аки
14.10.2018
18:58:00
как решить ?

javaScript

Google
Аки
14.10.2018
18:58:30
Код не выполняется должным образом. Попытайтесь выяснить, почему.function multiply(a, b){ a * b }

gjvjubnt

помогите

Vladislav
14.10.2018
18:58:55
При установки десктоп софта запоминаем что было у юзера в момент инсталла,а потом шьем ко всем событиям. Уникальных наборов от силы 2-3гб на всех юзеров

Vladislav
14.10.2018
19:00:44
Могу попросить данные перелить из кластера на отдельный сервер, и дать к нему доступ.

Что бы на живую смогли ломать\чинить

Denis
14.10.2018
19:01:52
я не разработчик и не работаю в яндексе, я такой же сисадмин, мне доступ не нужен если че.

Vladislav
14.10.2018
19:02:45
А, понял.

serge
14.10.2018
19:34:35
При загрузке данных в python с помощью clickhouse-sqlalchemy не загружает первую строку с данными, остальные данные приходят. Кто-нибудь сталкивался с этим? @tkostyan можешь подсказать куда копать?

Lesha
14.10.2018
20:07:15


Делаю запрос вида: SELECT A, toString(B) as bb, toString(SUM(C)) as cc FROM table GROUP BY A, bb

B и C это Decimal128(18)

или нужно как-то иначе приводить decimal к стрингу?

Denis
14.10.2018
20:09:59
Decimal экспериментальный тип данных, поэтому ничего удивительного

Lesha
14.10.2018
20:10:24
ну так по логике я верно делаю же да?

Denis
14.10.2018
20:12:09
да, все верно. может так прокатит select A, bb, toString(cc) from ( (SELECT A, toString(B) as bb, SUM(C) as cc FROM table GROUP BY A, bb)

Google
Lesha
14.10.2018
20:12:31
вот да, тоже так пробую уже

Kirill
14.10.2018
20:13:51
https://github.com/yandex/ClickHouse/blob/150be189ac557ca2793b65a4b83642b2f4fe3842/dbms/src/Columns/ColumnDecimal.h#L92 а data точно никогда не может быть null? или pos?

Denis
14.10.2018
20:19:09
а чему cc вообще равен? null ? написать coalesce(sum(C), 0) as cc

Lesha
14.10.2018
20:21:58
тот же самый запрос с UInt64 работает

null нету, сам вставлял

Denis
14.10.2018
20:30:19
я воспроизвел это из-за group by b

Lesha
14.10.2018
20:31:43
Ошибка точно в Group by без group by по decimal работает

да

Denis
14.10.2018
20:35:45
как всегда хак конкатенации помогает обмануть самых умных SELECT A, toString(B)||'' as bb, toString(SUM(C)) as cc FROM table GROUP BY A, bb

добавил https://github.com/yandex/ClickHouse/issues/3378

Lesha
14.10.2018
20:54:46
о боги, хак работает!

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

Denis
14.10.2018
20:57:42
Это неожиданно, но видимо КХ понимает, что group by можно сделать до toString.

Lesha
14.10.2018
22:46:02
Гайз, можете помочь составить запрос в КХ? получить первый и последний элемент отсортированой выборки агрегированый по полю? условно, есть длинная табличка: ID, DateInterval, Volume хочу сделать типа такого запроса: SELECT timeInterval, first(Volume), last(Volume) FROM table GROUP BY timeInterval ORDER BY ID

я так понимаю нужно использовать функции высшего порядка вроде arrayFirst или еще чего

или что-то вроде SELECT timeInterval, (SELECT Volume where min ID in timeInterval), (SELECT Volume where max ID in timeInterval)

Artem
14.10.2018
23:23:30
select timeInterval, max((ID, Volume)), min((ID, Volume)) from table group by timeInterval

papa
14.10.2018
23:36:32
а может argmax/argmin?

Google
Алексей
15.10.2018
06:24:22
time_

Lesha
15.10.2018
07:27:49
Как-то можно из под тюпла в селекте один элемент выбрать? SELECT MAX((ID, Volume))[1] FROM ... ??

Lesha
15.10.2018
07:34:33
спасибо!

Алексей
15.10.2018
07:44:57
max((ID, Volume)).1
а это где то задокументировано?

Vladimir
15.10.2018
07:46:18
а это где то задокументировано?
https://clickhouse.yandex/docs/ru/query_language/operators/ См. раздел "Операторы доступа"

Sergey
15.10.2018
07:48:48
Exception on client: Code: 115. DB::Exception: Unknown setting allow_experimental_low_cardinality_type ClickHouse server version 18.12.54407. Вроде версия достаточная для того, чтобы использовать, ан не даёт

Кто-нибудь сталкивался?

Kirill
15.10.2018
07:50:30
Vladimir
15.10.2018
07:55:27
Да у многих языков нумерация элементов в массиве начинается с 1: https://en.wikipedia.org/wiki/Comparison_of_programming_languages_%28array%29#Array_system_cross-reference_list

Алексей
15.10.2018
07:57:41
А что значит max((ID, Volume)) - максимум кортежа? А как он определяется?

Artem
15.10.2018
08:07:15
По порядку, сначала сортируется по ID, потом по Volume и тд

Алексей
15.10.2018
08:13:07
спасибо, это полезно

Alexey
15.10.2018
08:54:08
@kshvakov Кирилл добрый день ! Мы столнкулись со странной проблемой при использования вашего Go драйвера. Когда вставляем "2018-10-15 11:36:53" в поле DateTime то почему-то получается +3 часа. Хотя и на сервере где установлен ClickHouse и где работает приложение, время используется серверное 11:36:53. Но когда выполняем вставку, и смотрим результат то плолучаем время 14:36:53 На компьютере где выполняем запрос в API стоит 11 часов, на сервере где запущено API тоже 11 часов, на сервере где стоит ClickHouse тоже 11. Но вставляется 14.

Wolf
15.10.2018
08:54:52
По дефолта вроде utc

Alexey
15.10.2018
08:55:23
При том что если выполняем insert через clickhouse-client или DBeaver то время вставляется корректно

выглядит так, как будто драйвер + 3 добавляет нарочно

Wolf
15.10.2018
08:57:16
+3 это UTC ?

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