Настройки параметров ClickHouse®-кластера
-
Как создать пользователя для доступа из DataLens с правами только на чтение?
-
Как дать пользователю права на создание и удаление таблиц или БД?
-
Как повысить максимальный объем оперативной памяти для выполнения запроса?
-
Почему в кластере Managed Service for ClickHouse® должно быть три или пять хостов ZooKeeper?
-
Как добавить хост в кластер с отключенным сервисом координации?
-
Как добавить многохостовый шард в кластер с отключенным сервисом координации?
Как создать пользователя для доступа из DataLens с правами только на чтение?
Воспользуйтесь инструкцией, чтобы создать пользователя с правами только на чтение. Если в настройках кластера включена опция Доступ из DataLens, сервис сможет подключаться к кластеру с помощью этого пользователя.
Как дать пользователю права на создание и удаление таблиц или БД?
Включите управление пользователями через SQL и выдайте пользователю нужные права с помощью команды GRANT.
Подробнее о команде GRANT читайте в документации ClickHouse®
Как узнать значение настройки internal_replication?
Информация о настройке internal_replication недоступна ни в интерфейсах Yandex Cloud, ни в системных таблицах ClickHouse®. Значение настройки по умолчанию — true.
Почему возникает ошибка MEMORY_LIMIT_EXCEEDED?
Настройка Max memory usage ограничивает объем оперативной памяти, который может использовать один запрос на одном сервере. По умолчанию ее значение равно 0, то есть ограничение не задано.
Увеличивайте значение Max memory usage только если для него задано ненулевое значение и запрос превышает это ограничение. В таком случае возникает ошибка:
DB::Exception: Memory limit (total) exceeded:
would use 14.10 GiB (attempt to allocate chunk of 4219924 bytes), maximum: 14.10 GiB.
(MEMORY_LIMIT_EXCEEDED), Stack trace (when copying this message, always include the lines below)
Максимальное значение Max memory usage ограничено настройкой Max server memory usage. Если Max memory usage равно 0, причиной ошибки MEMORY_LIMIT_EXCEEDED может быть достижение общего лимита памяти сервера. Увеличение Max memory usage в этом случае не поможет. Оптимизируйте запрос
Увеличить значение Max memory usage можно в настройках пользователя или с помощью SQL-запросов:
-
Для текущей сессии:
SET max_memory_usage = <значение_в_байтах>; -
Для отдельного запроса:
SELECT <выражение> FROM <имя_таблицы> SETTINGS max_memory_usage = <значение_в_байтах>;
Если в кластере включено управление пользователями через SQL, значение Max memory usage можно задать для выбранных пользователей с помощью профиля настроек
CREATE SETTINGS PROFILE max_memory_usage_profile
SETTINGS max_memory_usage = <значение_в_байтах>
TO <имя_пользователя>;
Почему в высокодоступном кластере Managed Service for ClickHouse® должно быть три или пять хостов ZooKeeper?
ZooKeeper использует алгоритм консенсуса: сервис продолжает функционировать, пока большинство хостов ZooKeeper находятся в рабочем состоянии.
Например, если кластер имеет два хоста ZooKeeper, то при отключении одного из них оставшийся хост не составляет большинство, поэтому сервис становится недоступным. Таким образом, кластер с двумя хостами ZooKeeper не является высокодоступным.
Кластер с тремя хостами ZooKeeper является высокодоступным. При обслуживании или выходе из строя одного из них кластер сохраняет работоспособность. Таким образом, три — минимальное рекомендуемое число хостов ZooKeeper в кластере Managed Service for ClickHouse®.
Кластер с четырьмя хостами ZooKeeper не имеет преимуществ перед кластером с тремя хостами: он также способен функционировать при отключении только одного хоста. При отключении двух хостов консенсус не соблюдается и сервис становится недоступным.
Кластер с пятью хостами ZooKeeper уже способен выдерживать отключение двух хостов, так как три из пяти хостов составляют большинство. Поэтому обслуживать такой кластер удобнее, чем кластер с тремя хостами. Даже если один из пяти хостов находится на обслуживании или перезапускается, кластер остается высокодоступным, т. е. выдерживает отключение еще одного хоста.
Добавление в кластер более пяти хостов ZooKeeper не поддерживается.
Таким образом, в кластере Managed Service for ClickHouse® рекомендуется создавать три или пять хостов ZooKeeper.
Как добавить хост в кластер с отключенным сервисом координации?
Если в кластере с одним хостом и отключенным сервисом координации попытаться добавить хост, возникнет ошибка:
ERROR: rpc error: code = FailedPrecondition desc = shard cannot have more than 1 host in non-HA cluster configuration
Чтобы добавить хост в кластер, сначала включите сервис координации ClickHouse® Keeper или ZooKeeper на отдельных хостах.
Как добавить многохостовый шард в кластер с отключенным сервисом координации?
Если в шардированном кластере с отключенным сервисом координации попытаться добавить шард с несколькими хостами, возникнет ошибка:
ERROR: rpc error: code = FailedPrecondition desc = To create a shard with two or more hosts, you must enable the coordination service first.
Чтобы добавить многохостовый шард в кластер, сначала включите сервис координации ClickHouse® Keeper или ZooKeeper на отдельных хостах.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc