ウェアハウスの管理と使用
コンセプト
弾力的な CelerData クラスターにおけるウェアハウスは、複数のコンピュートノードからなる物理的なグループであり、リモートストレージに保存されたデータに対するクエリ、インジェスト、およびデータ処理タスクを実行するために必要なコンピュートリソース(CPU、メモリ、一時ストレー ジなど)を提供します。ワークロードに応じてウェアハウスのサイズを変更したり、異なるデータ分析シナリオからワークロードを分離するために異なるウェアハウスを使用することができます。
アクセス制御
cluster_admin
ロールを持つユーザーは、GUIを通じて新しいウェアハウスを作成したり、既存のウェアハウスを削除、停止、または再開することができ、クラスター内で利用可能なすべてのウェアハウスを使用できます。
デフォルトでは、cluster_admin
ロールを持たないユーザーは、提供されている組み込みのウェアハウス default_warehouse
のみを使用でき、他のウェアハウスにはアクセスできません。他のウェアハウスを使用したい場合は、次の SQL コマンドを使用してそのウェアハウスに対する USAGE 権限を付与する必要があります。
GRANT USAGE ON WAREHOUSE <WAREHOUSE_NAME> TO <USER_NAME>;
クラスター内で権限を付与または取り消すことができるのは、user_admin
ロールを持つユーザーのみです。権限の管理を参照してください。
ウェアハウスの管理
ウェアハウスの作成
各新しい弾力的クラスターには、クラスターと共に作成される default_warehouse
という名前の組み込みウェアハウスがあります。デフォルトウェアハウスの詳細については、ウェアハウスの概要 - 使用上の注意を参照してください。
弾力的クラスターに新しいウェアハウスを作成するには、次の手順に従います。
-
CelerData Cloud BYOC コンソールにサインインします。
-
Clusters ページで、ウェアハウスを作成したい弾力的クラスターをクリックします。
-
クラスター詳細ページで、Manage をクリックし、Add warehouse を選択します。
NOTE
クラスター詳細ページの Warehouses タブに移動し、Create warehouse をクリックしてウェアハウスを作成することもできます。
-
表示されるダイアログボックスで、次のパラメータを設定し、Create をクリックします。
- Warehouse name: ウェアハウスの名前を入力します。各ウェアハウス名は、弾力的クラスター内で一意である必要があります。
- Description: ウェアハウスの説明を任意で入力します。説明は、複数のウェアハウスを簡単に管理するのに役立ちます。
- Compute node size: ウェアハウスのコンピュートノードのインスタンスタイプを選択します。インスタンスタイプは、各コンピュートノードの vCPU コア数とメモリ容量を決定します。
- Compute node count: ウェアハウスにデプロイしたいコンピュートノードの数を選択します。
- Compute storage size: (EBS バックアップのインスタンスタイプのみ利用可能) ウェアハウスのコンピュートノードのストレージサイズを指定します。このフィールドの横にあるボックスをチェックすることで、ボリュームの数をカスタマイズすることもできます。
- Node distribution policy: ウェアハウスの Compute Node 配布ポリシーを選択します。このフィールドは、Multi-AZ デプロイメントが有効になっている場合にのみ利用可能です。Multi-AZ デプロイメントのノード配布ポリシーの詳細については、Multi-AZ Deploymentsを参照してください。
ウェアハウスの作成には約2分かかります。
ウェアハウスが正常に作成されると、CelerData はこのウェアハウスのランタイムに対して課金を開始します。
ウェアハウスのサイズ変更
ウェアハウスのサイズがワークロードのパフォーマンスボトルネックを引き起こす場合、必要に応じてウェアハウスをスケールアウトすることができます。
クラスター内のウェアハウスをスケールする方法については、弾力的クラスターのスケールを参照してください。
また、各ウェアハウスに対して自動スケーリングを有効にすることで、ウェアハウスの CPU 使用率に基づいて Compute Nodes の数を自動的にスケールすることができます。詳細については、Warehouse Autoscalingを参照してください。
ウェアハウスの停止と再開
ウェアハウスの継続的なランタイムは、継続的なコストをもたらします。そのため、特定のウェアハウスでのみワークロードを実行する場合、不要なコストを節約するためにウェアハウスを停止し、必要に応じて手動で再開することができます。
NOTE
デフォルトのウェアハウスは、クラスターから個別に停止することはできません。クラスターが停止されたときにのみ停止されます。
ウェアハウスを停止すると、このウェアハウスが再開されるまで CelerData はこのウェアハウスに対する課金を停止します。
ウェアハウスを停止または再開するには、次の手順に従います。
-
CelerData Cloud BYOC コンソールにサインインします。
-
Clusters ページで、ウェアハウスを停止または再開したい弾力的クラスターをクリックします。
-
クラスター詳細ページの Warehouses タブで、ウェアハウスのカードの右下隅にカーソルを移動して View more details ボタンを表示し、そのボタンをクリックします。
-
ウェアハウス詳細ページで、Suspend または Resume をクリックします。
-
表示されるメッセージで、Suspend または Start resume をクリックします。
NOTE
ウェアハウスのカード上の Quick suspend または Quick resume ボタンをクリックすることで、ウェアハウスを即座に停止または再開することができます。
ウェアハウスの自動停止を有効にする
ウェアハウスに対して自動停止機能が有効になっている場合、CelerData はウェアハウス内のコンピュートノードのアクティビティレベルを監視します。ノードが指定された時間アイドル状態のままである場合、CelerData は自動的にウェアハウスを停止します。
ウェアハウスに対して自動停止機能を有効にするには、次の手順に従います。
-
CelerData Cloud BYOC コンソールにサインインします。
-
Clusters ページで、自動停止を有効にしたいウェアハウスがある弾力的クラスターをクリックします。
-
クラスター詳細ページの Warehouses タブで、ウェアハウスのカードの右下隅にカーソルを移動して View more details ボタンを表示し、そのボタンをクリックします。
-
Resource Scheduling タブをクリックします。次に、Auto suspend on idle セクションで Edit をクリックします。
-
Edit suspend policy ダイアログボックスで、Idle suspend の横にあるスイッチをオンにし、ウェアハウスがアイドル状態でいられる最大時間を選択し、Save changes をクリックします。
ウェアハウスの削除
ウェアハウスが不要になった場合、削除することができます。これにより、ウェアハウスにプロビジョニングされたすべてのコンピュートリソースが解放され、課金が停止され、ウェアハウスで実行中の SQL クエリが強制終了されます。
NOTE
- ウェアハウスは、実行中の状態でのみ削除できます。
- デフォルトのウェアハウスは削除できません。
ウェアハウスを削除するには、次の手順に従います。
-
CelerData Cloud BYOC コンソールにサインインします。
-
Clusters ページで、ウェアハウスを削除したい弾力的クラスターをクリックします。
-
クラスター詳細ページの Warehouses タブで、ウェアハウスのカードの右下隅にカーソルを移動して View more details ボタンを表示し、そのボタンをクリックします。
-
ウェアハウス詳細ページで、Delete をクリックします。
-
表示されるメッセージで、Delete をクリックします。
ウェアハウスの表示
ウェアハウスの詳細を表示するには、次の手順に従います。
-
CelerData Cloud BYOC コンソールにサインインします。
-
Clusters ページで、表示したい弾力的クラスターをクリックします。
-
クラスター詳細ページで、Warehouses タブをクリックします。Warehouses タブには、弾力的クラスター内で作成されたすべてのウェアハウスの概要が表示されます。概要には、各ウェアハウスのステータス、サイズ、ディスク使用量、CCU 使用量のヒストグラムが含まれます。
ウェアハウスのカードの右下隅にカーソルを移動して View more details ボタンを表示し、そのボタンをクリックします。ウェアハウス詳細ページには、3 つの異なるタブで 3 つの情報カテゴリが表示されます: Overview, Resource Scheduling, Deployments。
概要
Overview タブは次のセクションで構成されています。
- Warehouse price: ウェアハウスの現在のランタイム CCU 価格(時間単位)。
- Monthly warehouse usage: ウェアハウスの月初からの CCU 使用量。
- Warehouse nodes: ウェアハウス内のコンピュートノード数(稼働中のノード/全ノード)。
- Resource utilization: すべてのコンピュートノードの平均 CPU 使用率。
- Cluster properties
- Instance size: ウェアハウス内のコンピュートノードのインスタンスタイプ。
- Status: ウェアハウスのステータス。
- Created by: ウェアハウスを作成したユーザー。
- Created at: ウェアハウスが作成された時間。
- Resume on: ウェアハウスが最後に再開された時間。
- Idle suspend: ウェアハウスに対して自動停止機能が有効かどうか。
- Usage trend: ウェアハウスの CCU ヒストグラム。
- Disk usage (for local cache): ウェアハウスのディスク使用量。
リソーススケジューリング
Resource Scheduling タブでは、ウェアハウスの自動停止機能の設定を確認できます。
デプロイメント
Deployments タブには、ウェアハウス内の各コンピュートノードの次の情報が表示されます。
- Node host: ノードの IP アドレス。
- Node size: ノードのインスタンスタイプ。
- Status: ノードのステータス。
- vCPU (core): ノードの vCPU コア数。
- Memory (GB): ノードのメモリサイズ。
- Volume size (GB): ノードのディスクボリュームサイズ。
ウェアハウスの設定
新しいウェアハウスを作成した後、現在のセッション、特定のユーザー、または 特定の操作に対してウェアハウスを設定することで、必要に応じて有効にすることができます。これにより、各リクエストは指定されたウェアハウスのコンピュートリソースのみを使用できます。
弾力的クラスターとやり取りする方法によって、ウェアハウスを指定する方法は異なります。
SQL エディタでのウェアハウスの設定
SQL エディタで、以下のように実行中の状態にあるウェアハウスを選択します。
現在のセッションに対するウェアハウスの設定
現在のセッションに対してウェアハウスを設定するには、次の構文を使用します。
SET WAREHOUSE = <warehouse_name>
パラメータ:
warehouse_name
(必須): 現在のセッションで使用したいウェアハウスの名前。
NOTE
現在のセッションに対してウェアハウスを設定しない場合、
default_warehouse
が使用されます。
例:
現在のセッションに wh1
を設定します。
SET WAREHOUSE = wh1;
現在のセッションで使用中のウェアハウスを表示することができます。
SHOW VARIABLES LIKE "%warehouse%";
特定のユーザーに対するウェアハウスの設定
ユーザーに対してデフォルトのウェアハウスを設定することができます。
ALTER USER '<username>' SET PROPERTIES ("session.warehouse" = "<warehouse_name>")
パラメータ:
username
(必須): デフォルトのウェアハウスを設定したいユーザーのユーザー名。warehouse_name
(必須): 指定したユーザーに対してデフォルトのウェアハウスとして設定したいウェアハウスの名前。
例:
ユーザー jack
のデフォルトウェアハウスとして wh1
を設定します。
ALTER USER 'jack' SET PROPERTIES ("session.warehouse" = "wh1");
特定の SQL に対するウェアハウスの設定
特定の SQL ステートメントに対してウェアハウスを設定するためにヒントを使用することができます。
例:
SELECT /*+ SET_VAR(warehouse="wh1") */ * FROM my_db.my_table;
UPDATE /*+ SET_VAR(warehouse="wh1") */ my_db.my_table SET c1 = 2 WHERE c1 = 1;
DELETE /*+ SET_VAR(warehouse="wh1") */ FROM my_db.my_table PARTITION p1 WHERE k1 = 3;
INSERT /*+ SET_VAR(warehouse="wh1") */ INTO my_db.my_table SELECT * FROM my_db.my_table2;
ロードタスクに対するウェアハウスの設定
Broker Load の場合
特定の Broker Load タスクに対して、プロパティ warehouse
に宣言することでウェアハウスを設定できます。
例:
LOAD LABEL user_behavior
(
DATA INFILE("s3://starrocks-examples/user_behavior_ten_million_rows.parquet")
INTO TABLE user_behavior
FORMAT AS "parquet"
)
WITH BROKER
(
"aws.s3.enable_ssl" = "true",
"aws.s3.use_instance_profile" = "false",
"aws.s3.region" = "us-east-1",
"aws.s3.access_key" = "AAAAAAAAAAAAAAAAAAAA",
"aws.s3.secret_key" = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
)
PROPERTIES
(
"warehouse"="wh1"
);
Routine Load の場合
特定の Routine Load タスクに対して、ジョブプロパティ warehouse
に宣言することでウェアハウスを設定できます。
例:
CREATE ROUTINE LOAD example_db.example_tbl1_ordertest1 ON example_tbl1
COLUMNS TERMINATED BY ",",
COLUMNS (order_id, pay_dt, customer_name, nationality, temp_gender, price)
PROPERTIES
(
"desired_concurrent_number" = "5",
"warehouse"="wh1"
)
FROM KAFKA
(
"kafka_broker_list" ="<kafka_broker1_ip>:<kafka_broker1_port>,<kafka_broker2_ip>:<kafka_broker2_port>",
"kafka_topic" = "ordertest1",
"kafka_partitions" ="0,1,2,3,4",
"property.kafka_default_offsets" = "OFFSET_BEGINNING",
"property.security.protocol"="SASL_SSL",
"property.sasl.mechanism"="PLAIN",
"property.sasl.username"="***",
"property.sasl.password"="***"
);
Stream Load の場合
特定の Stream Load タスクに対して、ヘッダーパラメータに宣言することでウェアハウスを設定できます。
例:
curl --location-trusted -u <username>:<password> \
-H "Expect:100-continue" \
-H "warehouse:wh1" \
-H "column_separator:," \
-H "columns: id, name, score" \
-T example1.csv -XPUT \
https://<fe_host>/api/mydatabase/table1/_stream_load
マテリアライズドビューのリフレッシュに対するウェアハウスの設定
マテリアライズドビューのリフレッシュタスクに対して、プロパティ warehouse
に宣言することでウェアハウスを設定できます。
NOTE
warehouse
が指定されていない場合、現在のセッションのウェアハウスが使用されます。
例:
CREATE MATERIALIZED VIEW order_mv
DISTRIBUTED BY HASH(`order_id`)
REFRESH ASYNC EVERY (interval 1 MINUTE)
PROPERTIES ("warehouse" = "wh1")
AS SELECT
order_list.order_id,
sum(goods.price) as total
FROM order_list INNER JOIN goods ON goods.item_id1 = order_list.item_id2
GROUP BY order_id;
マテリアライズドビューが作成された後、SHOW MATERIALIZED VIEWS
または SHOW CREATE MATERIALIZED VIEW
を実行することでプロパティ warehouse
を確認できます。また、fe.audit.log にも記録されます。
Compaction に対するウェアハウスの設定
デフォルトでは、Compaction タスクは default_warehouse
で実行されます。FE 設定項目 lake_compaction_warehouse
を設定することで変更できます。
-
デフォルトの Compaction ウェアハウスを動的に変更するには、次のステートメントを実行します。
ADMIN SET FRONTEND CONFIG ("lake_compaction_warehouse" = "<warehouse_name>");
-
このパラメータを永続的に設定するには、静的パラメータとして設定します。
lake_compaction_warehouse = <warehouse_name>
設定を変更した後、SHOW PROC '/compactions'
を実行することで Compaction タスクのウェアハウス情報を確認できます。
JDBC URL におけるウェアハウスの設定
jdbc.url=jdbc:mysql://<host>/<db_name>?sessionVariables=warehouse=<warehouse_name>
ウェアハウスの表示
すべてのウェアハウスを表示
クラスター内のすべてのウェアハウスを表示するには、次の構文を使用します。
SHOW WAREHOUSES [ LIKE '<pattern>' ]
例:
現在のクラスター内のすべてのウェアハウスを表示します。
SHOW WAREHOUSES;
返される情報は次のとおりです。
+-------+-------------------+-----------+-----------+---------------------+-----------------+-----------------+------------+-----------+---------------------+-----------+---------------------+----------------------------------------------+
| Id | Name | State | NodeCount | CurrentClusterCount | MaxClusterCount | StartedClusters | RunningSql | QueuedSql | CreatedOn | ResumedOn | UpdatedOn | Comment |
+-------+-------------------+-----------+-----------+---------------------+-----------------+-----------------+------------+-----------+---------------------+-----------+---------------------+----------------------------------------------+
| 0 | default_warehouse | AVAILABLE | 2 | 1 | 1 | 1 | 0 | 0 | 2023-10-11 15:28:46 | NULL | 2023-10-11 15:28:46 | An internal warehouse init after FE is ready |
| 11078 | wh1 | AVAILABLE | 1 | 1 | 1 | 1 | 0 | 0 | 2023-10-11 16:31:20 | NULL | 2023-10-11 16:31:20 | NULL |
+-------+-------------------+-----------+-----------+---------------------+-----------------+-----------------+------------+-----------+---------------------+-----------+---------------------+----------------------------------------------+
返される情報:
Id
: ウェアハウスの ID。Name
: ウェアハウスの名前。State
: ウェアハウスの状態。 有効な値:AVAILABLE
: ウェアハウスは稼働中です。SUSPENDED
: ウェアハウスは停止中です。
NodeCount
: ウェアハウス内の Compute Nodes の数。CurrentClusterCount
:MaxClusterCount
:StartedClusters
:RunningSql
: 現在ウェアハウスで実行中のクエリの数。QueuedSql
: 実行待ちのクエリの数。CreatedOn
: ウェアハウスが作成された時間。ResumedOn
: ウェアハウスが再開された時間。UpdatedOn
: ウェアハウスが更新された時間。Comment
: ウェアハウスのコメント。
クラスター内のすべての Compute Nodes を表示
現在のクラスター内のすべての Compute Nodes を表示するには、次の構文を使用します。
SHOW COMPUTE NODES
例:
現在のクラスター内のすべての Compute Nodes を表示します。
SHOW COMPUTE NODES;
指定されたウェアハウス内の Compute Nodes を表示
指定されたウェアハウス内の Compute Nodes を表示するには、次の構文を使用します。
SHOW NODES FROM
{ WAREHOUSE <warehouse_name>
| WAREHOUSES [ LIKE '<pattern>' ] }
パラメータ:
warehouse_name
(必須): Compute Nodes を表示したいウェアハウスの名前。WAREHOUSES
: すべてのウェアハウスまたは指定されたパターンのグループ内の Compute Nodes を表示します。
例:
クラスター内のすべてのウェアハウス内のすべての Compute Nodes を表示します。
SHOW NODES FROM WAREHOUSES;