Перейти к содержимому
Последнее обновление

Управление Compute Group: создание, предоставление прав доступа и масштабирование

Compute Group (в версиях до 3.0.2 называлась «Compute Cluster») — это механизм физической изоляции разных рабочих нагрузок в архитектуре с разделением хранения и вычислений. Compute Group состоит из одного или нескольких узлов BE. Несколько Compute Group обращаются к одним и тем же данным через общий слой хранения.

compute_group

Основные характеристики:

  • Узлы BE не хранят состояние локально, а данные находятся в общем хранилище.
  • Несколько Compute Group используют одни и те же данные без дополнительных реплик.
  • Добавление или удаление Compute Group не требует переноса данных: достаточно прогрева кеша при выполнении запросов.

По сравнению с Resource Group, Compute Group обладает следующими преимуществами:

КритерийCompute GroupResource Group
Стоимость храненияДанные находятся в общем хранилище. Число Compute Group не ограничено количеством реплик, а стоимость не растёт с увеличением числа групп.При добавлении реплик стоимость хранения растёт линейно.
Гибкость масштабированияДобавление новой Compute Group требует только прогрева кеша, без переноса данных.Добавление реплики требует переноса большого объёма данных.
Полнота изоляцииОбщий слой хранения гарантирует наличие нескольких реплик. Сбой узла BE в одной Compute Group не влияет на загрузку данных.Сбой узла BE может привести к сбою загрузки данных.
Примечание

В версиях до 3.0.2 Compute Group называлась Compute Cluster.

Просмотр Compute Group​

Просмотрите все Compute Group в текущем warehouse:

SHOW COMPUTE GROUPS;

Добавление Compute Group​

Используйте команду ADD BACKEND, чтобы добавить узел BE и указать Compute Group, к которой он относится.

С указанием Compute Group:

ALTER SYSTEM ADD BACKEND 'host:9050' PROPERTIES ("tag.compute_group_name" = "new_group");

Без указания Compute Group (по умолчанию узел присоединяется к default_compute_group):

ALTER SYSTEM ADD BACKEND 'host:9050';

Управление правами доступа к Compute Group​

Предоставление права доступа​

Предоставьте пользователю право использовать указанную Compute Group:

GRANT USAGE_PRIV ON COMPUTE GROUP {compute_group_name} TO {user};

Отзыв права доступа​

Отзовите у пользователя право использовать указанную Compute Group:

REVOKE USAGE_PRIV ON COMPUTE GROUP {compute_group_name} FROM {user};

Настройка Compute Group по умолчанию​

Настройка и просмотр Compute Group по умолчанию​

ОперацияКомандаНеобходимые права
Задать Compute Group по умолчанию для текущего пользователяSET PROPERTY 'default_compute_group' = '{clusterName}';Дополнительные права не требуются
Задать Compute Group по умолчанию для другого пользователяSET PROPERTY FOR {user} 'default_compute_group' = '{clusterName}';Требуются права администратора
Просмотреть Compute Group по умолчанию для текущего пользователяSHOW PROPERTY;Дополнительные права не требуются
Просмотреть Compute Group по умолчанию для другого пользователяSHOW PROPERTY FOR {user};Требуются соответствующие права на просмотр

Значение поля default_compute_group в возвращаемом результате указывает текущую Compute Group по умолчанию.

Описание прав​

Администратор (например, CREATE USER jack IDENTIFIED BY '123456' DEFAULT ROLE "admin"):

  • Может задавать Compute Group по умолчанию для себя и других пользователей.
  • Может просматривать PROPERTY для себя и других пользователей.

Обычный пользователь (например, CREATE USER jack1 IDENTIFIED BY '123456'):

  • Может задавать Compute Group по умолчанию только для себя.
  • Может просматривать только собственные PROPERTY.
  • Не может выполнять SHOW COMPUTE GROUPS (для этой операции требуется право GRANT ADMIN).

Часто задаваемые вопросы​

Вопрос: при чтении или записи данных возникает ошибка​

Текущий пользователь не настроил Compute Group по умолчанию. Выполните use @cluster, чтобы указать Compute Group для текущего сеанса, или используйте SET PROPERTY, чтобы задать значение по умолчанию.

Вопрос: Compute Group по умолчанию задана, но при чтении и записи по-прежнему возникают ошибки​

Ранее указанная Compute Group была удалена. Выполните use @cluster, чтобы указать её заново, или используйте SET PROPERTY, чтобы обновить настройку по умолчанию.

Автоматический выбор Compute Group по умолчанию​

Если пользователь явно не задал Compute Group по умолчанию, система автоматически выбирает группу, которая соответствует следующим условиям:

  • Содержит узлы BE в состоянии Active.
  • Текущий пользователь имеет право её использовать.

В пределах одного сеанса Compute Group по умолчанию остаётся неизменной. При переходе к новому сеансу система автоматически выполняет повторный выбор в следующих случаях:

Условие повторного выбораИзменение выбора
Пользователь теряет право использовать ранее выбранную Compute GroupВсегда меняется
Добавлена или удалена Compute GroupВсегда меняется
В ранее выбранной Compute Group больше нет узлов BE в состоянии ActiveМожет измениться

Переключение между Compute Group​

В архитектуре с разделением хранения и вычислений можно указать базу данных и Compute Group в одном операторе:

USE { [catalog_name.]database_name[@compute_group_name] | @compute_group_name }

Если имя базы данных или Compute Group содержит зарезервированное ключевое слово, заключите соответствующее имя в обратные кавычки (`).

Масштабирование Compute Group​

Для эластичного масштабирования Compute Group добавляйте или удаляйте узлы BE:

  • Увеличение числа узлов: ALTER SYSTEM ADD BACKEND добавляет новый узел BE в указанную Compute Group.
  • Уменьшение числа узлов: ALTER SYSTEM DECOMMISSION BACKEND выводит узел BE из эксплуатации в Compute Group.

Подробные инструкции см. в разделе Эксплуатация в режиме разделения хранения и вычислений.