CREATE STORAGE VOLUME
ストレージボリュームの作成
説明
リモートストレージシステム用のストレージボリュームを作成します。この機能はv3.1以降でサポートされています。
ストレージボリュームには、リモートデータストレージのプロパティと認証情報が含まれます。共有データのStarRocksクラスタでデータベースやクラウドネイティブテーブルを作成する際に、ストレージボリュームを参照できます。
注意
システムレベルでCREATE STORAGE VOLUME権限を持つユーザーのみがこの操作を実行できます。
構文
CREATE STORAGE VOLUME [IF NOT EXISTS] <storage_volume_name>
TYPE = S3
LOCATIONS = ('<s3_path>')
[ COMMENT '<comment_string>' ]
PROPERTIES
("key" = "value",...)
パラメータ
パラメータ | 説明 |
---|---|
storage_volume_name | ストレージボリュームの名前。 |
TYPE | リモートストレージシステムのタイプ。 |
LOCATIONS | ストレージの場所。以下の形式です:
|
COMMENT | ストレージボリュームのコメント。 |
PROPERTIES | リモートストレージシステムへのアクセスのためのプロパティ と認証情報を指定するための「"key" = "value"」ペアのパラメータ。詳細については、 PROPERTIES を参照してください。 |
PROPERTIES
-
AWS S3を使用する場合:
-
AWS SDKのデフォルト認証資格情報を使用してS3にアクセスする場合、次のプロパティを設定します:
"enabled" = "{ true | false }",
"aws.s3.region" = "<region>",
"aws.s3.endpoint" = "<endpoint_url>",
"aws.s3.use_aws_sdk_default_behavior" = "true" -
IAMユーザーベースの認証資格情報(アクセスキーとシークレットキー)を使用してS3にアクセスする場合、次のプロパティを設定します:
"enabled" = "{ true | false }",
"aws.s3.region" = "<region>",
"aws.s3.endpoint" = "<endpoint_url>",
"aws.s3.use_aws_sdk_default_behavior" = "false",
"aws.s3.use_instance_profile" = "false",
"aws.s3.access_key" = "<access_key>",
"aws.s3.secret_key" = "<secret_key>" -
インスタンスプロファイルを使用してS3にアクセスする場合、次のプロパティを設定します:
"enabled" = "{ true | false }",
"aws.s3.region" = "<region>",
"aws.s3.endpoint" = "<endpoint_url>",
"aws.s3.use_aws_sdk_default_behavior" = "false",
"aws.s3.use_instance_profile" = "true" -
アサムドロールを使用してS3にアクセスする場合、次のプロパティを設定します:
"enabled" = "{ true | false }",
"aws.s3.region" = "<region>",
"aws.s3.endpoint" = "<endpoint_url>",
"aws.s3.use_aws_sdk_default_behavior" = "false",
"aws.s3.use_instance_profile" = "true",
"aws.s3.iam_role_arn" = "<role_arn>" -
外部のAWSアカウントからS3にアクセスする場合、以下のプロパティを設定します:
"enabled" = "{ true | false }",
"aws.s3.region" = "<region>",
"aws.s3.endpoint" = "<endpoint_url>",
"aws.s3.use_aws_sdk_default_behavior" = "false",
"aws.s3.use_instance_profile" = "true",
"aws.s3.iam_role_arn" = "<role_arn>",
"aws.s3.external_id" = "<external_id>"
-
-
GCP Cloud Storageを使用する場合、以下のプロパティを設定します:
"enabled" = "{ true | false }",
-- 例: us-east-1
"aws.s3.region" = "<region>",
-- 例:https://storage.googleapis.com
"aws.s3.endpoint" = "<endpoint_url>",
"aws.s3.access_key" = "<access_key>",
"aws.s3.secret_key" = "<secret_key>" -
MinIOを使用する場合、以下のプロパティを設定します:
"enabled" = "{ true | false }",
-- 例: us-east-1
"aws.s3.region" = "<region>",
-- 例:http://172.26.xx.xxx:39000
"aws.s3.endpoint" = "<endpoint_url>",
"aws.s3.access_key" = "<access_key>",
"aws.s3.secret_key" = "<secret_key>"プロパティ
説明
enabled
このストレージボリュームを有効にするかどうか。デフォルト:
false
。無効なストレージボリュームは参照できません。aws.s3.region
S3バケッ トが存在するリージョン。例:
us-west-2
。aws.s3.endpoint
S3バケットにアクセスするためのエンドポイントURL。例:
https://s3.us-west-2.amazonaws.com
。aws.s3.use_aws_sdk_default_behavior
AWS SDKのデフォルト認証資格情報を使用するかどうか。有効な値:
true
およびデフォルトのfalse
。aws.s3.use_instance_profile
インスタンスプロファイルとアサムドロールをS3へのアクセスの認証方法として使用するかどうか。有効な値:
true
およびデフォルトのfalse
。-
IAMユーザーベースの認証資格情報(アクセスキーとシークレットキー)を使用してS3にアクセスする場合、この項目を
false
に指定し、aws.s3.access_key
とaws.s3.secret_key
を指定する必要があります。 -
インスタンスプロファイルを使用してS3にアクセスする場合、この項目を
true
に指定する必要があります。 -
アサムドロールを使用してS3にアクセスする場合、この項目を
true
に指定し、aws.s3.iam_role_arn
を指定する必要があります。 -
外部のAWSアカウントを使用する場合、この項目を
true
に指定し、aws.s3.iam_role_arn
とaws.s3.external_id
を指定する必要があります。
aws.s3.access_key
S3バケットにアクセスするためのAccess Key ID。
aws.s3.secret_key
S3バケットにアクセスするためのSecret Access Key。
aws.s3.iam_role_arn
データファイルが格納されているS3バケットに対する権限を持つIAMロールのARN。
aws.s3.external_id
S3バケットへのクロスアカウントアクセスに使用されるAWSアカウントの外部ID。
-
-
Azure Blob Storageを使用する場合(v3.1.1以降でサポート):
注意
Azure Blob Storageアカウントの階層型名前空間は無効にする必要があります。
プロパティ
説明
enabled
このストレージボリュームを有効にするかどうか。デフォルト:
false
。無効なストレージボリュームは参照できません。azure.blob.endpoint
Azure Blob Storageアカウントのエンドポイント。例:
https://test.blob.core.windows.net
。azure.blob.shared_key
Azure Blob Storageへのリクエストの承認に使用されるShared Key。
azure.blob.sas_token
Azure Blob Storageへのリクエストの承認に使用される共有アクセス署名(SAS)トークン。
-
Shared Keyを使用してAzure Blob Storageにアクセスする場合、次のプロパティを設定します:
"enabled" = "{ true | false }",
"azure.blob.endpoint" = "<endpoint_url>",
"azure.blob.shared_key" = "<shared_key>" -
共有アクセス署名(SAS)を使用してAzure Blob Storageにアクセスする場合、次のプロパティを設定します:
"enabled" = "{ true | false }",
"azure.blob.endpoint" = "<endpoint_url>",
"azure.blob.sas_token" = "<sas_token>"
-
例
例1:AWS S3バケットdefaultbucket
のためのストレージボリュームmy_s3_volume
を作成し、IAMユーザーベースの認証資格情報(アクセスキーとシークレットキー)を使用してS3にアクセスし、有効にします。
MySQL > CREATE STORAGE VOLUME my_s3_volume
-> TYPE = S3
-> LOCATIONS = ("s3://defaultbucket/test/")
-> PROPERTIES
-> (
-> "enabled" = "true",
-> "aws.s3.region" = "us-west-2",
-> "aws.s3.endpoint" = "https://s3.us-west-2.amazonaws.com",
-> "aws.s3.use_aws_sdk_default_behavior" = "false",
-> "aws.s3.use_instance_profile" = "false",
-> "aws.s3.access_key" = "xxxxxxxxxx",
-> "aws.s3.secret_key" = "yyyyyyyyyy"
-> );
Query OK, 0 rows affected (0.05 sec)