このトピックでは、仮想ウェアハウスにデータへのアクセス権限を付与する方法について説明します。
使用上の注意
仮想ウェアハウス A を使用してテーブルグループを作成すると、デフォルトで仮想ウェアハウス A がそのテーブルグループのプライマリ仮想ウェアハウスとして使用されます。
メモリの状態は、仮想ウェアハウス間でミリ秒単位のリアルタイムで自動的に同期されます。プライマリ仮想ウェアハウスを使用してデータを書き込むと、システムはプライマリ仮想ウェアハウスのメモリ内のデータをセカンダリ仮想ウェアハウスに自動的に同期します。セカンダリ仮想ウェアハウスでは、少量の CPU とメモリのオーバーヘッドが発生します。仮想ウェアハウス間の仕様の差は 4 倍以内にすることをお勧めします。
外部テーブルにデータを書き込む場合は、仮想ウェアハウスインスタンスのデフォルトの仮想ウェアハウスのみを使用できます。
Hologres V2.0 では、読み取り/書き込みタスクに対する仮想ウェアハウスのサポートは次のとおりです:
セカンダリ仮想ウェアハウスは、ロードされたテーブルグループのデータ読み取りのみを処理できます。
プライマリ仮想ウェアハウスは、ロードされたテーブルグループの読み取り/書き込みを処理できます。
仮想ウェアハウスは、アンロードされたテーブルグループのデータの読み取り/書き込みはできません。
Hologres V4.0 のアーキテクチャアップグレード後、仮想ウェアハウスインスタンスは強化された読み取り/書き込みタスクサポートを提供します:
このアップグレードされたアーキテクチャを活用するには、GUC パラメーター
hg_warehouse_enable_use_local_resourceを有効にします。詳細については、「GUC パラメーター」をご参照ください。仮想ウェアハウスは、タスクが固定プランによって最適化されていない場合に限り、アンロードされたテーブルグループで読み取り/書き込みタスクを実行できるようになりました。
固定プランをサポートする読み取り/書き込みタスクについては、「固定プランを使用して SQL 文の実行を高速化する」をご参照ください。
バッチおよびリアルタイムの書き込みは、実行のためにプライマリ仮想ウェアハウスに自動的にルーティングできます。
タスク / 仮想ウェアハウスタイプ | プライマリ仮想ウェアハウス | セカンダリ仮想ウェアハウス | その他の仮想ウェアハウス |
リアルタイム書き込み | サポート | 非サポート | 非サポート |
バッチ書き込み | サポート | サポート (V4.0+) | サポート (V4.0+) |
ポイントクエリ、PrefixScan | サポート | サポート | 非サポート |
その他の読み取りタスク | サポート | サポート | サポート (V4.0+) |
ロードされたテーブルグループの権限を表示する
構文
接続されているインスタンス内のすべてのロードされたテーブルグループの権限を表示するには、次の SQL 文を実行します:
SELECT * FROM hologres.hg_warehouse_table_groups;フィールド
次の表に、hg_warehouse_table_groups テーブルのフィールドを示します。
フィールド
データ型
説明
例
warehouse_name
TEXT
仮想ウェアハウスの名前。
init_warehouse
warehouse_id
INTEGER
仮想ウェアハウスの一意の ID。
1
database_name
TEXT
データベースの名前。
wh_demo
tablegroup_name
TEXT
テーブルグループの名前。
wh_demo_tg_default
leader
BOOLEAN
仮想ウェアハウスがテーブルグループのプライマリ仮想ウェアハウスであるかどうかを指定します。
t
replica_count
INTEGER
レプリカ数。
1
セカンダリ仮想ウェアハウスを設定する
テーブルグループにセカンダリ仮想ウェアハウスを設定するには、テーブルグループを仮想ウェアハウスにロードします。
テーブルグループが仮想ウェアハウスにロードされた後でのみ、仮想ウェアハウスを使用してテーブルグループ内のシャードに対する操作を実行できます。
スーパーユーザーロールを持つユーザーのみが、テーブルグループを仮想ウェアハウスにロードする権限を持っています。
構文
CALL hg_table_group_load_to_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>', <replica_count>);パラメーター
パラメーター
データ型
説明
database_name
TEXT
データベースの名前。
table_group_name
TEXT
テーブルグループの名前。
warehouse_name
TEXT
テーブルグループをロードする仮想ウェアハウスの名前。
replica_count
INTEGER
レプリカ数。デフォルト値:1。このパラメーターはオプションです。
例
-- データベース db1 内のテーブルグループ table_group_1 を仮想ウェアハウス warehouse_1 にロードし、レプリカ数を 1 に設定します。 CALL hg_table_group_load_to_warehouse ('db1.table_group_1', 'warehouse_1'); -- データベース db1 内のテーブルグループ table_group_1 を仮想ウェアハウス warehouse_1 にロードし、レプリカ数を 2 に設定します。 CALL hg_table_group_load_to_warehouse ('db1.table_group_1', 'warehouse_1',2);
プライマリ仮想ウェアハウスを設定する
使用上の注意
テーブルグループ内のシャードに対するデータ書き込みなどの DML 操作は、テーブルグループのプライマリ仮想ウェアハウスを使用してのみ実行できます。
テーブルグループには、1 つのプライマリ仮想ウェアハウスしか設定できません。テーブルグループのプライマリ仮想ウェアハウスを変更すると、プライマリ仮想ウェアハウスが再起動されます。ビジネスへの影響にご注意ください。
スーパーユーザーロールを持つユーザーのみが、テーブルグループのプライマリ仮想ウェアハウスを設定できます。
構文
CALL hg_table_group_set_leader_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>');パラメーター
パラメーター
データ型
説明
database_name
TEXT
データベースの名前。
table_group_name
TEXT
テーブルグループの名前。
warehouse_name
TEXT
プライマリ仮想ウェアハウスとして設定する仮想ウェアハウスの名前。
仮想ウェアハウスからテーブルグループをアンロードする
使用上の注意
スーパーユーザーロールを持つユーザーのみが、仮想ウェアハウスからテーブルグループをアンロードできます。
テーブルグループをそのプライマリ仮想ウェアハウスからアンロードすることはできません。アンロードしたい場合は、プライマリ仮想ウェアハウスを変更してください。
構文
CALL hg_table_group_unload_from_warehouse ('<database_name>.<table_group_name>', '<warehouse_name>');パラメーター
パラメーター
データ型
説明
database_name
TEXT
データベースの名前。
table_group_name
TEXT
テーブルグループの名前。
warehouse_name
TEXT
テーブルグループをアンロードする仮想ウェアハウスの名前。
ロードされたテーブルグループのレプリカ数を変更する
使用上の注意
スーパーユーザーロールを持つユーザーのみが、仮想ウェアハウスにロードされたテーブルグループのレプリカ数を変更する権限を持っています。
構文
CALL hg_table_group_set_warehouse_replica_count ('<database_name>.<table_group_name>', <replica_count>,'<warehouse_name>');パラメーター
パラメーター
データ型
説明
database_name
TEXT
データベースの名前。
table_group_name
TEXT
テーブルグループの名前。
replica_count
INTEGER
レプリカ数。
warehouse_name
TEXT
テーブルグループがロードされる仮想ウェアハウスの名前。テーブルグループのレプリカ数を変更します。
プライマリ仮想ウェアハウスへの DML 文の自動ルーティングを管理する (ベータ)
使用上の注意
テーブルグループには、1 つのプライマリ仮想ウェアハウスしか設定できません。テーブルグループに対する DML 操作は、テーブルグループのプライマリ仮想ウェアハウスを使用してのみ実行できます。Hologres V2.2 以降では、DML 文はテーブルグループのプライマリ仮想ウェアハウスに自動的にルーティングされます。この機能を有効にすると、データ書き込みにはプライマリ仮想ウェアハウスが自動的に使用されます。ただし、クエリ/秒 (QPS) などのデータ書き込みに関連するメトリックは、セカンダリ仮想ウェアハウスで計算されます。
説明トランザクション内で複数の DML 文の実行を有効にすると、プライマリ仮想ウェアハウスへの DML 文の自動ルーティングはサポートされません。トランザクション内での複数の DML 文の実行の詳細については、「SQL トランザクション機能」をご参照ください。
プライマリ仮想ウェアハウスへの DML 文の自動ルーティングを有効または無効にする
セッションまたはデータベースレベルで GUC パラメーターを使用して、プライマリ仮想ウェアハウスへの DML 文の自動ルーティングを有効にするかどうかを指定できます。
説明デフォルトでは、GUC パラメーター
hg_experimental_enable_warehouse_dml_auto_routingは ON に設定されています。セッションレベル
-- プライマリ仮想ウェアハウスへの DML 文の自動ルーティングを有効にします。 SET hg_experimental_enable_warehouse_dml_auto_routing = ON; -- プライマリ仮想ウェアハウスへの DML 文の自動ルーティングを無効にします。 SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;データベースレベル
-- プライマリ仮想ウェアハウスへの DML 文の自動ルーティングを有効にします。 ALTER DATABASE <database_name> SET hg_experimental_enable_warehouse_dml_auto_routing = ON; -- プライマリ仮想ウェアハウスへの DML 文の自動ルーティングを無効にします。 ALTER DATABASE <database_name> SET hg_experimental_enable_warehouse_dml_auto_routing = OFF;パラメーター
パラメーター
データ型
説明
database_name
TEXT
メタデータベースの名前。
例
HoloWeb コンソールにログインします。詳細については、「HoloWeb に接続してクエリを実行する」をご参照ください。
上部のナビゲーションバーで、[セキュリティセンター] をクリックします。
[コンピューティンググループの管理] タブで、左側のナビゲーションウィンドウの [コンピューティンググループの管理] をクリックします。
[仮想ウェアハウスのリソース管理] タブで、[コンピュートグループの作成] をクリックして、
read_wh1という名前の仮想ウェアハウスを作成します。説明インスタンスには最大 10 個の仮想ウェアハウスを作成できます。各仮想ウェアハウスは、最小 32 計算ユニット (CU)、最大 512 CU を持つことができます。残りの計算リソースの量が 32 CU 未満の場合、仮想ウェアハウスを作成できません。詳細については、「仮想ウェアハウスの管理」トピックの「仮想ウェアハウスのスケールアウト」をご参照ください。

[テーブルグループに対する仮想ウェアハウスの権限管理] タブで、[仮想ウェアハウスに権限を付与] をクリックし、仮想ウェアハウス
read_wh1をテーブルグループのセカンダリ仮想ウェアハウスとして設定します。説明テーブルグループの作成方法の詳細については、「テーブルグループの管理」をご参照ください。

上部のナビゲーションバーで、[SQL エディタ] をクリックします。[現在のコンピュートグループ] ドロップダウンリストから
read_wh1を選択します。次に、プライマリ仮想ウェアハウスへの DML 文の自動ルーティングが有効または無効になっている場合に DML 文を実行します。プライマリ仮想ウェアハウスへの DML 文の自動ルーティングが有効になっている場合、DML 文はテーブルグループのプライマリ仮想ウェアハウス init_warehouse で自動的に実行されます。

プライマリ仮想ウェアハウスへの DML 文の自動ルーティングが無効になっている場合、DML 文はプライマリ仮想ウェアハウス init_warehouse ではなく、テーブルグループの現在の仮想ウェアハウス read_wh1 で実行されます。ただし、テーブルグループ内のシャードに対する DML 文をサポートするのはプライマリ仮想ウェアハウスのみです。その結果、エラーメッセージが報告されます。
