-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Оптимизация запроса для preview при подключении к ClickHouse #776
Comments
@KonstantAnxiety, посмотри, пожалуйста, кейс |
@handgunman, добрый день! Нам бы не хотелось изменять настройки CH по умолчанию помимо случаев, когда это необходимо для корректной работы сервиса, а эта настройка по описанию и отзывам может вызывать и негативные эффекты – специфичные настройки при необходимости можно выставить на уровне пользователя |
Эту настройку не надо делать по умолчанию для всех запросов. Сейчас в системах где несколько пользователей может работать с датасетами, превышения по памяти могут стать достаточно частыми и не вызывают симпатий у админов. В том числе и в адрес ДЛ. На уровне пользователей, если говорим про пользователей КХ и их настройках, такое делать как раз не правильно, так как для чартов могут выбираться данные не в порядке сортировок. Собственно, в таких случаях люди и ловят негативные эффекты, когда либо не корректные настройки сортировок, либо противоречащие им выборки. |
Добрый день! |
Добрый день!
При формировании запроса для preview в секции GROUP BY указываются все поля таблицы. В результате запрос потребляет много оперативной памяти.
Если в дотаяете сделать несколько вычисляемых полей, то шансы на ошибку из-за лимитов памяти при запросе к более-менее крупной таблице возрастают.
Ситуацию можно исправить простейшей доработкой, добавив в конец запроса:
SETTINGS optimize_aggregation_in_order=1;
Настройка добавляется сразу за секцией LIMIT
LIMIT 10 SETTINGS optimize_aggregation_in_order=1;
Для примера запрос для preview без настройки:
Elapsed: 8.448 sec. Processed 8.57 million rows, 3.93 GB (1.01 million rows/s., 465.24 MB/s.)
Peak memory usage: 13.62 GiB.
с настройкой:
10 rows in set. Elapsed: 1.543 sec. Processed 40.96 thousand rows, 18.60 MB (26.54 thousand rows/s., 12.05 MB/s.)
Peak memory usage: 179.64 MiB.
Для плохо организованных таблиц не окажет влияния. При нормальной организации эффект очевиден.
С Уважением,
Сергей
The text was updated successfully, but these errors were encountered: