
Tima
28.03.2018
10:26:10


Andrey
28.03.2018
10:28:18
Есть вопрос про логику связки SELECT INSERT
Есть вопрос про логику связки INSERT SELECT
Я делаю следующий запрос:
`INSERT INTO params_agg_cum SELECT
user_id,
today() - 42,
max(dt),
argMaxIf(p_1, date, isNotNull(p_1)) AS p_1,
..........
argMaxIf(p_n, date, isNotNull(p_n)) AS p_n,
FROM
(
SELECT
user_id,
date,
dt,
p_1,
..........
p_n
FROM gamora.params_agg_cum
WHERE (date = ((today() - 42) - 1)) AND (user_id >= 1000000000)
UNION ALL
SELECT
user_id,
date,
dt,
p_1,
............
p_n
FROM gamora.params_agg
WHERE (date = (today() - 42)) AND (user_id >= 1000000000)
)
GROUP BY
user_id,
date
`
Параметров(p_1...p_n) у меня много, около 50
Я включил distributed_aggregation_memory_efficient и max_bytes_before_external_group_by = 10500000000
На выходе должно получиться около 240 миллионов строк
Но в память запрос не влезает .
Ограничение по памяти у меня в 70ГБ
Правда ли что перед тем как вставить, он будет весь ответ представлять в памяти?

Артемий
28.03.2018
10:39:28

Wolf
28.03.2018
10:41:59
Я вот помню что как раз говорили что она не создается, и надо дроп креайт делать

Google

Kirill
28.03.2018
11:05:52

Артемий
28.03.2018
11:06:38

Kirill
28.03.2018
11:17:37
Что-то поломалось, надо смотреть

LeiDruid
28.03.2018
11:21:12
Подскажите, куда клик может девать память? Он активно занимает памяти больше, чем весит набор данных и прибивается по OOM

Wolf
28.03.2018
11:23:35
О каких обьемах данных и памяти идет речь ?

LeiDruid
28.03.2018
11:28:14
20 ГБ данных, клик сжирает 24 гига памяти и падает
Зачем ему столько при таком количестве данных?

Wolf
28.03.2018
11:28:44
Ну запросы какие то тяжёлые может?

LeiDruid
28.03.2018
11:29:07
неа

Wolf
28.03.2018
11:29:12
У меня просто на кликах по шесть гигов памяти и на некоторых серверах 450 гигов база
Конфиг дефолтный использую

Артемий
28.03.2018
11:29:30
Что-то поломалось, надо смотреть
Решилось. После остановки (или рестарта) писалось: clickhouse-server service is stopped, однако по факту он не останавливался и конфиг не менялся.
Ошибку нашли, все ок. Таблица с логами появилась.

LeiDruid
28.03.2018
11:30:09

Google

Wolf
28.03.2018
11:30:57

LeiDruid
28.03.2018
11:31:14
Нет никаких словарей, запрос только по БД

Артемий
28.03.2018
11:31:31

Tima
28.03.2018
11:32:05

Alexander
28.03.2018
11:32:11
20 ГБ данных, клик сжирает 24 гига памяти и падает
А это именно он? У меня dentry память жрет, насколько я успел разобраться, из-за большого числа файловых операций. Самому интересно, что будет, когда slab reclaimable упрется в потолок. Пока растет почти линейно.

Kirill
28.03.2018
11:33:15

Артемий
28.03.2018
11:36:30

Жека
28.03.2018
11:36:56
Подскажите, функцию которая будет суммировать столбец с накоплением

Stanislav
28.03.2018
11:37:40

Kirill
28.03.2018
11:38:19

Жека
28.03.2018
11:38:26
кумулятивная сумма нужна

Артемий
28.03.2018
11:39:12
ОК
Нет, причина не в этом. Проивзел тест удаления еще раз.
Затем делаю запрос SELECT. Таблица не создается.

Kirill
28.03.2018
11:39:26

LeiDruid
28.03.2018
11:51:56
Память определенно куда-то течет
284154 clickho+ 20 0 80.345g 0.063t 37036 S 6400 50.1 11:34.11 clickhouse-serv

Wolf
28.03.2018
11:53:04
Какая версия кх?
А то я только вчера везде обновился до последней но вроде тьфу-тьфу не течет

LeiDruid
28.03.2018
11:53:55
1.1.54370
Становится только хуже
284154 clickhous 20 0 75.5G 61.4G 38064 S 1208 47.9 35:13.74 clickhouse-server

Google

LeiDruid
28.03.2018
11:55:07
Датасет, минуточку, 23Гб
Его можно было бы в память уже 2,5 раза положить

Andrey ?
28.03.2018
11:55:29
А это точно реальное использование памяти?
http://www.linuxatemyram.com/

Stanislav
28.03.2018
11:56:10
вторая цифра - rss
То есть, оно реально ест 60+ Гб

LeiDruid
28.03.2018
11:56:48
# free -m
total used free shared buff/cache available
Mem: 131072 66864 64135 4396 71 64135
А то я уже грешным делом начал сомневаться как смотреть память в линуксе :)

Alexander
28.03.2018
11:57:26
у меня что-то похожее было, когда после обновления из apt старый сервис не сдох, а новый не до конца запустился. сожрал всю память кх, и раком сервер поставил. но там один раз я его грохнул, заработало. только slab растет и unrecl и recl.

LeiDruid
28.03.2018
11:57:50
не, у меня ничего такого не было
Просто начал падать
Я уже специально обновился до последней версии
и на старой падал и на новой падает

Alexander
28.03.2018
11:58:46
у меня это сопровождалось всякими race condition в логе ошибок кх, раз в полминуты туда что-то писалось


Andrey
28.03.2018
12:02:35
Странно что данные обрабатываемые на файловой системе занимают 15гб, но не пролезают в запросе в 70гб
Есть вопрос про логику связки SELECT INSERT
Есть вопрос про логику связки INSERT SELECT
Я делаю следующий запрос:
`INSERT INTO params_agg_cum SELECT
user_id,
today() - 42,
max(dt),
argMaxIf(p_1, date, isNotNull(p_1)) AS p_1,
..........
argMaxIf(p_n, date, isNotNull(p_n)) AS p_n,
FROM
(
SELECT
user_id,
date,
dt,
p_1,
..........
p_n
FROM gamora.params_agg_cum
WHERE (date = ((today() - 42) - 1)) AND (user_id >= 1000000000)
UNION ALL
SELECT
user_id,
date,
dt,
p_1,
............
p_n
FROM gamora.params_agg
WHERE (date = (today() - 42)) AND (user_id >= 1000000000)
)
GROUP BY
user_id,
date
`
Параметров(p_1...p_n) у меня много, около 50
Я включил distributed_aggregation_memory_efficient и max_bytes_before_external_group_by = 10500000000
На выходе должно получиться около 240 миллионов строк
Но в память запрос не влезает .
Ограничение по памяти у меня в 70ГБ
Правда ли что перед тем как вставить, он будет весь ответ представлять в памяти?


Жека
28.03.2018
12:14:22
Спасибо)

Stanislav
28.03.2018
12:18:00

Mike
28.03.2018
12:24:25
Добрый день, может быть существует какая-то аггрегатная функция, которая поможет из таблицы выделить некие группы событий. в таблице есть id сессии и время запросов с этим id. в течении суток может повторяться несколько раз. если разница между группами событий больше времени t то это уже новая сессия. вот как-то разбить на такие промежутки (посчитать их количество) возможно или это решается каким-то иным путем? (с 10 утра до 10:15 утра 10 запросов, с 12:00 до 12:25 - 40 запросов итд) или я совсем фантастики хочу ? :)


papa
28.03.2018
12:24:38
Есть вопрос про логику связки SELECT INSERT
Есть вопрос про логику связки INSERT SELECT
Я делаю следующий запрос:
`INSERT INTO params_agg_cum SELECT
user_id,
today() - 42,
max(dt),
argMaxIf(p_1, date, isNotNull(p_1)) AS p_1,
..........
argMaxIf(p_n, date, isNotNull(p_n)) AS p_n,
FROM
(
SELECT
user_id,
date,
dt,
p_1,
..........
p_n
FROM gamora.params_agg_cum
WHERE (date = ((today() - 42) - 1)) AND (user_id >= 1000000000)
UNION ALL
SELECT
user_id,
date,
dt,
p_1,
............
p_n
FROM gamora.params_agg
WHERE (date = (today() - 42)) AND (user_id >= 1000000000)
)
GROUP BY
user_id,
date
`
Параметров(p_1...p_n) у меня много, около 50
Я включил distributed_aggregation_memory_efficient и max_bytes_before_external_group_by = 10500000000
На выходе должно получиться около 240 миллионов строк
Но в память запрос не влезает .
Ограничение по памяти у меня в 70ГБ
Правда ли что перед тем как вставить, он будет весь ответ представлять в памяти?
вы же делаете group by, нет гарантии что строки для некоторого ключа уже точно не встретятся.

Google

Andrey
28.03.2018
12:32:17
Как я понимал - это возможность скидвать промежуточные данные на диск во время запроса.

LeiDruid
28.03.2018
12:41:12

Alex
28.03.2018
12:42:47
Справедливости ради, сколько данные занимают на диске не является показателем того, сколько они будут занимать в памяти. Например, на диске они сжаты, а в памяти нет.

Andrey
28.03.2018
13:05:24
Ок, свой первый вопрос я порешал
Но возник ещё один.
Можно ли перенести партицию из одной таблицы в другую, с учётом того что у них одинаковая структура.
Поможет ли мне alter table <table> attach partition ?
Если есть такая возможность - как это правильно сделать?

Stanislav
28.03.2018
13:06:28
вначале detach, потом mv, потом attach
Правда, именно с partition не пробовал, только с part

Artem
28.03.2018
13:07:10
Коллеги, подскажите, пожалуйста, какой способ организации аналога common table expression в кликхаусе считается правильным? Т.е. предположим у меня есть две колонки и с ними делаются всяческие сложные манипуляции. Потом данные нужно сгруппировать по результатам манипуляций и посчитать какой то агрегат. CTE нету, вложенный select from (select ) работать будет не так эффективно. Остаётся только дублировать все вычисления?
В качестве абстрактного примера:
select m,sum(value)
from
(select transform(x,[1,2,3],[11,12,13]) as xx, transform(y,[1,2,3],[111,122,133]) as yy, xx*xx+xx*yy+yy*yy as m,value
from (select 1 as x,2 as y, 10 as value))
group by m
Вот хотелось бы отказаться от внешнего select'a. Но как это сделать без инлайна и дублирования всех вычислений в запросе?

Kirill
28.03.2018
13:11:02

Michal
28.03.2018
13:15:24

Ievgen
28.03.2018
13:18:25
спасибо, почитаю
golang-migrate/migrate )) вчера как раз нашел
а на сколько безопасно делать миграцию on cluster?

Kirill
28.03.2018
13:21:14

Ievgen
28.03.2018
13:22:36
мм, что тогда рекомендуется? я просто только изучаю этот вопрос, делать альтер на кащдой реплике индивидуально?

Kirill
28.03.2018
13:23:22

Ievgen
28.03.2018
13:25:10
Tо есть сдостаточно выполнить ALTER на одной реплике в шарде? Просто уточняю на всякий слуачй.

Kirill
28.03.2018
13:26:25

Иван
28.03.2018
13:33:40
Всем привет! Как можно сделать колонку nullable в процессе джойна? Контекст: во время any left join получаются пустые поля, а хотелось бы NULL

Google

Alexander
28.03.2018
13:37:04

Артемий
28.03.2018
13:40:07

Andrey
28.03.2018
13:51:24

Stanislav
28.03.2018
13:52:00
да

Alexander
28.03.2018
14:09:17

Aleksandr
28.03.2018
14:20:33
Здравствуйте. Подскажите пожалуйста, есть ли функционал для перешардирования данных? например было добавление 1-ХХ шардов в кластер, предварительно ключем шардирования будет функция rand(). Спасибо.

Andrey
28.03.2018
14:21:17

Aleksandr
28.03.2018
14:21:38
Понял, спасибо большое ?

Kirill
28.03.2018
14:22:26

Vitaliy
28.03.2018
14:23:24

Aleksandr
28.03.2018
14:25:17
спасибо

Юрий
28.03.2018
15:25:48
Добрый вечер уважаемые! не подскажите ли, почему я ловлю такую ошибку?
DB::Exception: Unknown function arraySlice
зависит ли это от версий клиента? или бд?
ClickHouse release 1.1.54289
Added functions: arraySlice
server version 1.1.54236
блин =\
видимо в этом.

Pavel Tyavin
28.03.2018
15:33:52
Здравствуйте Как удалить distributed таблицу со всеми подтаблицами?

Michal
28.03.2018
15:38:39
Вроде как DROP TABLE ... ON CLUSTER xxx должно работать.

Pavel Tyavin
28.03.2018
15:39:08
не, это вы наверное с replicated путаете