メインコンテンツまでスキップ
に最終更新

コンピュートグループの管理:作成、権限付与、スケーリング

コンピュートグループ(Compute Group)は、ストレージ・コンピュート分離型の構成で異なるワークロードを物理的に分離する仕組みです。3.0.2 より前のバージョンでは「Compute Cluster」と呼ばれます。一つ以上の BE ノードで一つのコンピュートグループを構成し、複数のコンピュートグループが共有ストレージ層を介して同じデータにアクセスします。

コンピュートグループの構成

主な特徴:

  • BE ノードはローカルに状態を保持せず、データは共有ストレージに保存されます。
  • 複数のコンピュートグループが、レプリカを追加せずに同じデータを共有します。
  • コンピュートグループの追加や削除にデータ移行は不要で、クエリ実行時にキャッシュをウォームアップするだけです。

コンピュートグループには、リソースグループと比較して次の利点があります。

比較項目コンピュートグループリソースグループ
ストレージコストデータは共有ストレージに保存されます。コンピュートグループの数はレプリカ数に制約されず、グループを増やしてもストレージコストは増えません。レプリカを追加すると、ストレージコストが線形に増加します。
スケーリングの柔軟性新しいコンピュートグループの追加にはキャッシュのウォームアップだけが必要で、データ移行は不要です。レプリカの追加には、大量のデータ移行が必要です。
分離の完全性共有ストレージ層が複数のレプリカを保証します。一つのコンピュートグループ内で BE に障害が発生しても、データロードには影響しません。BE に障害が発生すると、データロードが失敗する場合があります。
注意

3.0.2 より前のバージョンでは、コンピュートグループは「Compute Cluster」と呼ばれます。

コンピュートグループを表示する​

現在のウェアハウスに属するすべてのコンピュートグループを表示します。

SHOW COMPUTE GROUPS;

コンピュートグループを追加する​

ADD BACKEND コマンドを使用して BE ノードを追加し、所属するコンピュートグループを指定します。

コンピュートグループを指定する場合:

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

コンピュートグループを指定しない場合(デフォルトで default_compute_group に参加します):

ALTER SYSTEM ADD BACKEND 'host:9050';

コンピュートグループへのアクセス権を管理する​

アクセス権を付与する​

指定したコンピュートグループの使用権限をユーザーに付与します。

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

アクセス権を取り消す​

指定したコンピュートグループに対するユーザーの使用権限を取り消します。

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

デフォルトのコンピュートグループを設定する​

デフォルトのコンピュートグループを設定・確認する​

操作コマンド必要な権限
現在のユーザーのデフォルトコンピュートグループを設定するSET PROPERTY 'default_compute_group' = '{clusterName}';追加の権限は不要
別のユーザーのデフォルトコンピュートグループを設定するSET PROPERTY FOR {user} 'default_compute_group' = '{clusterName}';Admin 権限が必要
現在のユーザーのデフォルトコンピュートグループを確認するSHOW PROPERTY;追加の権限は不要
別のユーザーのデフォルトコンピュートグループを確認するSHOW PROPERTY FOR {user};対応する参照権限が必要

返された結果の default_compute_group フィールドの値が、現在のデフォルトコンピュートグループです。

権限について​

管理者ユーザー(例:CREATE USER jack IDENTIFIED BY '123456' DEFAULT ROLE "admin"):

  • 自分自身と他のユーザーのデフォルトコンピュートグループを設定できます。
  • 自分自身と他のユーザーの PROPERTY を確認できます。

一般ユーザー(例:CREATE USER jack1 IDENTIFIED BY '123456'):

  • 自分自身のデフォルトコンピュートグループのみ設定できます。
  • 自分自身の PROPERTY のみ確認できます。
  • SHOW COMPUTE GROUPS は実行できません(この操作には GRANT ADMIN 権限が必要です)。

よくある質問​

Q:データの読み書きでエラーが発生する​

現在のユーザーにデフォルトのコンピュートグループが設定されていません。use @cluster を実行して現在のセッションで使用するコンピュートグループを指定するか、SET PROPERTY でデフォルト値を設定してください。

Q:デフォルトのコンピュートグループを設定しているのに、読み書きでエラーが発生する​

以前指定したコンピュートグループが削除されています。use @cluster を実行して再度指定するか、SET PROPERTY でデフォルト設定を更新してください。

デフォルトコンピュートグループの自動選択​

ユーザーがデフォルトのコンピュートグループを明示的に設定していない場合、システムは次の条件を満たすグループを自動的に選択します。

  • Active 状態の BE ノードがあること。
  • 現在のユーザーがそのグループの使用権限を持っていること。

同じセッション内では、デフォルトのコンピュートグループは変わりません。セッションをまたぐ場合、次の状況でシステムが自動的に再選択します。

再選択の条件必ず変更されるか
以前選択されたコンピュートグループに対するユーザーの使用権限が失われた場合必ず変更される
コンピュートグループが追加または削除された場合必ず変更される
以前選択されたコンピュートグループに Active 状態の BE ノードがなくなった場合変更される場合がある

コンピュートグループを切り替える​

ストレージ・コンピュート分離型の構成では、一つの文でデータベースとコンピュートグループを指定できます。

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

データベース名またはコンピュートグループ名に予約語が含まれる場合は、その名前をバッククォート(`)で囲んでください。

コンピュートグループをスケーリングする​

BE ノードを追加または削除して、コンピュートグループを弾力的にスケーリングします。

  • スケールアウト:ALTER SYSTEM ADD BACKEND で、指定したコンピュートグループに新しい BE を追加します。
  • スケールイン:ALTER SYSTEM DECOMMISSION BACKEND で、コンピュートグループから BE を廃止します。

詳しい操作方法については、ストレージ・コンピュート分離型の運用を参照してください。