Use S3 for shared-data
このトピックでは、共有データ StarRocks クラスタのデプロイと使用方法について説明します。この機能は、S3 互換ストレージでは v3.0 から、Azure Blob Storage では v3.1 からサポートされています。
注意
- StarRocks バージョン 3.1 では、共有データのデプロイと構成にいくつかの変更があります。バージョン 3.1 以上を使用している場合は、このドキュメントを使用してください。
- バージョン 3.0 を使用している場合は、3.0 ドキュメント を使用してください。
- 共有データ StarRocks クラスタは、データのバックアップとリストアをサポートしていません。
共有データ StarRocks クラスタは、ストレージとコンピュートの分離の前提に基づいてクラウド向けに特別に設計されています。データはオブジェクトストレージ(例えば、AWS S3、Google GCS、Azure Blob Storage、MinIO)に保存されます。これにより、より安価なストレージと優れたリソース分離だけでなく、クラスタの弾力的なスケーラビリティも実現できます。共有データ StarRocks クラスタのクエリパフォーマンスは、ローカルディスクキャッシュがヒットした場合、共有なし StarRocks クラスタと一致します。
バージョン 3.1 以降では、StarRocks 共有データクラスタは Frontend Engines (FEs) と Compute Nodes (CNs) で構成されています。CNs は、共有データクラスタにおける従来の Backend Engines (BEs) に取って代わります。
従来の共有なし StarRocks アーキテクチャと比較して、ストレージとコンピュートの分離は幅広い利点を提供します。これらのコンポーネントを分離することで、StarRocks は以下を提供します:
- 安価でシームレスにスケーラブル なストレージ。
- 弾力的にスケーラブルなコンピュート。データが Compute Nodes (CNs) に保存されないため、ノード間でのデータ移行やシャッフルなしにスケーリングが可能です。
- クエリパフォーマンスを向上させるためのホットデータ用ローカルディスクキャッシュ。
- オブジェクトストレージへの非同期データ取り込みにより、ロードパフォーマンスが大幅に向上します。
アーキテクチャ

共有データ StarRocks クラスタをデプロイする
共有データ StarRocks クラスタのデプロイは、共有なし StarRocks クラスタのデプロイと似ています。唯一の違いは、共有データクラスタでは BEs の代わりに CNs をデプロイする必要があることです。このセクションでは、共有データ StarRocks クラスタをデプロイする際に、FE と CN の構成ファイル fe.conf と cn.conf に追加する必要がある追加の FE と CN の構成項目のみをリ ストします。StarRocks クラスタのデプロイに関する詳細な手順については、 Deploy StarRocks を参照してください。
Note
このドキュメントの次のセクションで共有ストレージ用に構成するまで、クラスタを起動しないでください。
共有データ StarRocks 用の FE ノードを構成する
クラスタを起動する前に、FEs と CNs を構成します。以下に例として構成を示し、その後に各パラメータの詳細を提供します。
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
クラスタ内の FE ノードと CN ノードの両方にアクセス権を付与していることを確認してください。FE ノードは CN ノードへのアクセスを委任できません。
想定ロール
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
クラスタ内の FE ノードと CN ノードの両方にアクセス権を付与していることを確認してください。FE ノードは CN ノードへのアクセスを委任できません。
外部アカウントからの想定ロール
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
クラスタ内の FE ノードと CN ノードの両方にアクセス権を付与していることを確認してください。FE ノードは CN ノードへのアクセスを委任できません。
S3 を使用した共有ストレージに関連するすべての FE パラメータ
run_mode
StarRocks クラスタの実行モード。 有効な値:
shared_datashared_nothing(デフォルト)。
Note
StarRocks クラスタに対して
shared_dataとshared_nothingモードを同時に採用することはできません。混在したデプロイはサポートされていません。クラスタがデプロイされた後に
run_modeを変更しないでください。そうしないと、クラスタが再起動に失敗します。共有なしクラスタから共有データクラスタへの変換、またはその逆はサポートされていません。
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 でオブジェクトを作成する前に、ストレージボリュームを手動で作成し、デフォルトのストレージボリュームとして設定する必要があります。詳細については、 Create the default storage volume を参照してください。
v3.1.0 からサポートされています。
CAUTION
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 バケットの名前とその下のサブパス (存在する場合) で構成されます。例: testbucket/subpath.
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 デフォルト資格情報プロバイダーチェーン を使用するかどうか。有効な値:
truefalse(デフォルト).
aws_s3_use_instance_profile
S3 へのアクセスにインスタンスプロファイルと想定ロールを資格情報方法として使用するかどうか。有効な値:
truefalse(デフォルト).
IAM ユーザーに基づく資格情報 (アクセスキーとシークレットキー) を使用して S3 にアクセスする場合、この項目を false に指定し、aws_s3_access_key と aws_s3_secret_key を指定する必要があります。
インスタンスプロファイルを使用して S3 にアクセスする場合、この項目を true に指定する必要があります。
想定ロールを使用して S3 にアクセスする場合、この項目を true に指定し、aws_s3_iam_role_arn を指定する必要があります。
外部 AWS アカウントを使用する場合は、aws_s3_external_id も指定する必要があります。
aws_s3_access_key
S3 バケットにアクセスするために使用されるアクセスキー ID。
aws_s3_secret_key
S3 バケットにア クセスするために使用されるシークレットアクセスキー。
aws_s3_iam_role_arn
データファイルが保存されている S3 バケットに対して権限を持つ IAM ロールの ARN。
aws_s3_external_id
S3 バケットへのクロスアカウントアクセスに使用される AWS アカウントの外部 ID。
Note
共有データ StarRocks クラスタが作成された後、資格情報に関連する構成項目のみを変更できます。元のストレージパスに関連する構成項目を変更した場合、変更前に作成したデータベースとテーブルが読み取り専用になり、それらにデータをロードすることができなくなります。
クラスタが作成された後にデフォルトのストレージボリュームを手動で作成したい場合、次の構成項目のみを追加する必要があります:
run_mode = shared_data
cloud_native_meta_port = <meta_port>
enable_load_volume_from_conf = false
共有データ StarRocks 用の CN ノードを構成する
CN を開始する前に、CN の設定ファイル cn.conf に次の設定項目を追加してください。
starlet_port = <starlet_port>
storage_root_path = <storage_root_path>
starlet_port
StarRocks 共有データクラスタの CN ハートビートサービスポート。デフォルト値: 9070.