メインコンテンツまでスキップ

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

ストレージボリュームの名前。builtin_storage_volumeという名前のストレージボリュームは作成できません。内部のストレージボリュームを作成するために使用されています。

TYPE

リモートストレージシステムのタイプ。S3AZBLOBの有効な値。S3はAWS S3またはS3互換のストレージシステムを示します。AZBLOBはAzure Blob Storageを示します(v3.1.1以降でサポート)。

LOCATIONS

ストレージの場所。以下の形式です:

  • AWS S3またはS3プロトコル互換のストレージシステムの場合: s3://<s3_path><s3_path> は絶対パスでなければなりません。例:s3://testbucket/subpath
  • Azure Blob Storageの場合: azblob://<azblob_path><azblob_path> は絶対パスでなければなりません。例:azblob://testcontainer/subpath

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_keyaws.s3.secret_keyを指定する必要があります。

    • インスタンスプロファイルを使用してS3にアクセスする場合、この項目をtrueに指定する必要があります。

    • アサムドロールを使用してS3にアクセスする場合、この項目をtrueに指定し、aws.s3.iam_role_arnを指定する必要があります。

    • 外部のAWSアカウントを使用する場合、この項目をtrueに指定し、aws.s3.iam_role_arnaws.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)

関連するSQL文