184 похожих чатов

Коллеги, есть какой-то алгоритм работы с настройками памяти? Постоянно падает запрос

для заполнения мат.вью с агрегациями такого вида:

INSERT INTO fr_core.core_f_sale_rest_day_mv
SELECT
day_id,
art_id,
argMaxState(art_code, updated_dt) AS art_code,
argMaxState(art_name, updated_dt) AS art_name,
whs_id,
argMaxState(whs_code, updated_dt) AS whs_code,
argMaxState(whs_name, updated_dt) AS whs_name,
argMaxState(whs_reload, updated_dt) AS whs_reload,
argMaxState(sale_qnty, updated_dt) AS sale_qnty,
argMaxState(sale_cp, updated_dt) AS sale_cp,
argMaxState(rest_qnty, updated_dt) AS rest_qnty,
argMaxState(rest_cp, updated_dt) AS rest_cp,
argMaxState(created_dt, updated_dt) AS created_dt,
maxState(updated_dt) AS max_updated_dt
FROM fr_core.core_f_sale_rest_day_rlc
GROUP BY day_id, whs_id, art_id

Сама идея использования взята отсюда (с 23й минуты): https://www.youtube.com/watch?v=j15dvPGzhyE

6 ответов

6 просмотров

Есть настройка которая group by делает с использованием хранилища

Поиграйте с настройками: settings max_bytes_before_external_group_by = 2000000000, max_memory_usage = 35000000000, max_threads = 8, aggregation_memory_efficient_merge_threads = 1 2000000000 - не потреблять больше 2 гигов на этапе сбора 35000000000 - макс. объем допустимой памяти для итогового сбора (35 гигов) max_threads - количество потоков aggregation_memory_efficient_merge_threads - 1 - из документации - "It sets number of threads to do merging of intermediate results. Zero value means - automatically determine number of threads by number of CPU cores. To efficiently merge intermediate data, it is split by 256 buckets (partitions), and all data for each bucket is merged at one step."

та просто через null таблицу, не надо никаких groupby в insert

Владислав-Lazycat Автор вопроса
Алексей Фирсов
Поиграйте с настройками: settings max_bytes_befor...

спасибо. сейчас буду пробовать. у CH столько настроек, что нужен отдельный гайд по ним

Владислав-Lazycat Автор вопроса
Алексей Фирсов
Вам @ den_crane предложил еще более крутой вариант...

я и его попробую. тестирую что-как. Спасибо

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Всем привет! Использую gitlab-ci. Настроил gitlab-agent для деплоя в куб. При деплое проекта в логах такая ошибка: Executing deploy plan failed to watch "ns:my-project/Ingress...
Konstantin Moiseev
4
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Карта сайта