shared-data StarRocks with S3
共有データのためのS3の使用
SharedDataIntro
からインポート、SharedDataCNconf
からインポート、SharedDataUseIntro
からインポート、SharedDataUse
からインポート
アーキテクチャ
共有データのStarRocksクラスターをデプロイする
共有データのStarRocksクラスターのデプロイは、共有無しのStarRocksクラスターのデプロイに似ています。唯一の違いは、共有データ クラスターではBEではなくCNをデプロイする必要があることです。このセクションでは、共有データのStarRocksクラスターをデプロイする際に、FEとCNの構成ファイル(fe.conf
およびcn.conf
)に追加する必要がある追加の設定項目のみをリストアップしています。StarRocksクラスターをデプロイする詳細な手順については、StarRocksのデプロイを参照してください。
注意
このドキュメントの次のセクションで共有ストレージの設定が完了するまで、クラスターを起動しないでください。
共有データのStarRocksのFEノードを構成する
クラスターを起動する前に、FEノードとCNノードを構成してください。以下に例となる設定を紹介します。その後、各パラメータの詳細を説明します。
S3の例のFEの設定
これらは、FEノードのfe.conf
ファイルに追加する共有データの例です。 使用しているAWSの認証方法によって例は異なります。
デフォルトの認証資格情報
run_mode = shared_data
cloud_native_meta_port = <meta_port>
cloud_native_storage_type = S3
# 例:testbucket/subpath
aws_s3_path = <s3_path>
# 例:us-west-2
aws_s3_region = <region>
# 例:https://s3.us-west-2.amazonaws.com
aws_s3_endpoint = <endpoint_url>
aws_s3_use_aws_sdk_default_behavior = true
# デフォルトでオブジェクトストレージに作成された
# ストレージを使用しない場合は、falseに設定します
enable_load_volume_from_conf = true
IAMユーザー認証情報
run_mode = shared_data
cloud_native_meta_port = <meta_port>
cloud_native_storage_type = S3
# 例:testbucket/subpath
aws_s3_path = <s3_path>
# 例:us-west-2
aws_s3_region = <region>
# S3オブジェクトの読み取り/書き込みのための資格情報
aws_s3_access_key = <access_key>
aws_s3_secret_key = <secret_key>
# デフォルトでオブジェクトストレージに作成された
# ストレージを使用しない場合は、falseに設定します
enable_load_volume_from_conf = true
インスタンスプロファイル
run_mode = shared_data
cloud_native_meta_port = <meta_port>
cloud_native_storage_type = S3
# 例:testbucket/subpath
aws_s3_path = <s3_path>
# 例:us-west-2
aws_s3_region = <region>
# 例:https://s3.us-west-2.amazonaws.com
aws_s3_endpoint = <endpoint_url>
aws_s3_use_instance_profile = true
# デフォルトでオブジェクトストレージに作成された
# ストレージを使用しない場合は、falseに設定します
enable_load_volume_from_conf = true
仮定されたロール
run_mode = shared_data
cloud_native_meta_port = <meta_port>
cloud_native_storage_type = S3
# 例:testbucket/subpath
aws_s3_path = <s3_path>
# 例:us-west-2
aws_s3_region = <region>
# 例:https://s3.us-west-2.amazonaws.com
aws_s3_endpoint = <endpoint_url>
aws_s3_use_instance_profile = true
aws_s3_iam_role_arn = <role_arn>
# デフォルトでオブジェクトストレージに作成された
# ストレージを使用しない場合は、falseに設定します
enable_load_volume_from_conf = true
外部アカウントからの仮定されたロール
run_mode = shared_data
cloud_native_meta_port = <meta_port>
cloud_native_storage_type = S3
# 例:testbucket/subpath
aws_s3_path = <s3_path>
# 例:us-west-2
aws_s3_region = <region>
# 例:https://s3.us-west-2.amazonaws.com
aws_s3_endpoint = <endpoint_url>
aws_s3_use_instance_profile = true
aws_s3_iam_role_arn = <role_arn>
aws_s3_external_id = <external_id>
# デフォルトでオブジェクトストレージに作成された
# ストレージを使用しない場合は、falseに設定します
enable_load_volume_from_conf = true
S3と共有ストレージに関連するFEのすべてのパラメータ
run_mode
StarRocksクラスターの実行モードです。有効な値:
shared_data
shared_nothing
(デフォルト)
注意
StarRocksクラスターでは、
shared_data
モードとshared_nothing
モードを同時に使用することはできません。混合デプロイはサポートされていません。クラスターがデプロイされた後に
run_mode
を変更しないでください。そうしないと、クラスターが再起動に失敗します。shared-nothingクラスターからshared-dataクラスターまたはその逆の変換はサポートされていません。
cloud_native_meta_port
クラウドネイティブメタサービスのRPCポート。
- デフォルト:
6090
enable_load_volume_from_conf
FEの構成ファイルで指定されたオブジェクトストレージ関連のプロパティを使用して、StarRocksがデフォルトストレージボリュームを作成することを許可するかどうか。有効な値:
true
(デフォルト) 新しい共有データクラスターを作成する際に、この項目をtrue
として指定すると、StarRocksはFEの構成ファイルのオブジェクトストレージ関連のプロパティを使用して、ビルトインストレージボリュームbuiltin_storage_volume
を作成し、これをデフォルトストレージボリュームとして設定します。ただし、オブジェクトストレージ関連のプロパティが指定されていない場合、StarRocksは起動に失敗します。false
新しい共有データクラスターを作成する際に、この項目をfalse
として指定すると、StarRocksはビルトインストレージボリュームを作成せずに直接起動します。StarRocksでオブジェクトを作成する前に、手動でストレージボリュームを作成し、デフォルトストレージボリュームとして設定する必要があります。詳細については、デフォルトのストレージボリュームを作成するを参照してください。
v3.1.0以降でサポートされています。
注意
既存の共有データクラスターをv3.0からアップグレードする場合は、アップグレードの間、この項目を
true
のままにすることを強くお勧めします。この項目をfalse
に指定すると、アップグレード前に作成したデータベースとテーブルは読み取り専用になり、データをロードすることはできません。
cloud_native_storage_type
使用しているオブジェクトストレージのタイプ。共有データモードでは、StarRocksはAzure Blob(v3.1.1以降でサポート)およびS3プロトコルに対応したオブジェクトストレージ(AWS S3、Google GCP、MinIOなど)にデータを格納することができます。有効な値:
S3
(デフォルト)AZBLOB
aws_s3_path
データを格納するために使用するS3パス。S3バケットの名前とそれの下のサブパス(ある場合)で構成されます。
aws_s3_endpoint
S3バケットにアクセスするために使用されるエンドポイント。例: https://s3.us-west-2.amazonaws.com
aws_s3_region
S3バケットが存在するリージョン。例: us-west-2
aws_s3_use_aws_sdk_default_behavior
AWS SDKのデフォルトの認証プロバイダーチェーンを使用するかどうか。有効な値:
true
false
(デフォルト)
aws_s3_use_instance_profile
S3へのアクセスにInstance ProfileおよびAssumed Roleを使用するかどうか。有効な値:
true
false
(デフォルト)
S3へのアクセスにIAMユーザーベースの認証情報(アクセスキーとシークレットキー)を使用する場合は、この項目をfalse
に設定し、aws_s3_access_key
とaws_s3_secret_key
を指定する必要があります。
S3へのアクセスにインスタンスプロファイルを使用する場合は、この項目をtrue
に設定する必要があります。
S3へのアクセスにAssumed Roleを使用する場合は、この項目をtrue
に設定し、aws_s3_iam_role_arn
を指定する必要があります。
外部のAWSアカウントを使用する場合、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。
注意
共有データのStarRocksクラスターが作成された後、認証関連の設定項目のみを変更できます。元のストレージパス関連の設定項目を変更した場合、変更前に作成したデータベースとテーブルは読み取り専用になり、データをロードすることはできません。
クラスターが作成された後に手動でデフォルトストレージボリュームを作成する場合は、次の設定項目のみを追加する必要があります。
run_mode = shared_data
cloud_native_meta_port = <meta_port>
enable_load_volume_from_conf = false