共有データに MinIO を使用する
このトピックでは、共有データ StarRocks クラスタのデプロイと使用方法について説明します。この機能は、S3 互換ストレージではバージョン 3.0 から、Azure Blob Storage ではバージョン 3.1 から、Azure Data Lake Storage Gen2 ではバージョン 3.4.1 からサポートされています。
注意
- StarRocks バージョン 3.1 では、共有データのデプロイと設定にいくつかの変更があります。バージョン 3.1 以上を使用している場合は、このドキュメントを使用してください。
- バージョン 3.0 を使用している場合は、3.0 ドキュメントを使用してください。
- 共有データ StarRocks クラスタは、データのバックアップとリストアをサポートしていません。
共有データ StarRocks クラスタは、ストレージとコンピュートの分離の前提でクラウド向けに特別に設計されています。データをオブジェクトストレージ(例えば、AWS S3、Google GCS、Azure Blob Storage、Azure Data Lake Storage Gen2、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 を参照してください。
注意
このドキュメントの次のセクションで共有ストレージ用に設定されるまで、クラスタを起動しないでください。
共有データ StarRocks 用の FE ノードを設定する
FEs を起動する前に、FE 設定ファイル fe.conf に次の設定項目を追加します。
MinIO 用の FE 設定例
これらは、各 FE ノードの fe.conf ファイルに追加する共有データの例です。パラメータはプレフィックス aws_s3 を使用します。
run_mode = shared_data
cloud_native_meta_port = <meta_port>
cloud_native_storage_type = S3
# 例: testbucket/subpath
aws_s3_path = <s3_path>
# 例: us-east1
aws_s3_region = <region>
# 例: http://172.26.xx.xxx:39000
aws_s3_endpoint = <endpoint_url>
aws_s3_access_key = <minio_access_key>
aws_s3_secret_key = <minio_secret_key>
MinIO を使用した共有ストレージに関連するすべての FE パラメータ
run_mode
StarRocks クラスタの実行モード。有効な値:
shared_datashared_nothing(デフォルト)
注意
- 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 からサポートされています。
cloud_native_storage_type
使用するオブジェクトストレージのタイプです。共有データモードでは、StarRocks は Azure Blob (v3.1.1 以降でサポート) と、S3 プロトコルと互換性のあるオブジェクトストレージ (AWS S3、Google GCP、MinIO など) にデータを保存することをサポートしています。有効な値:
S3(デフォルト)AZBLOBHDFS
注意
- このパラメータを
S3に指定する場合、aws_s3で始まるパラメータを追加する必要があります。- このパラメータを
AZBLOBに指定する場合、azure_blobで始まるパラメータを追加する必要があります。- このパラメータを
HDFSに指定する場合、cloud_native_hdfs_urlパラメータを追加する必要があります。
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 です。
注意
共有データ StarRocks クラスタが作成された後に変更できるのは、クレデンシャル関連の設定項目のみです。元のストレージパス関連の設定項目を変更した場合、変更前に作成したデータベースとテーブルが読み取り専用になり、それらにデータをロードすることができなくなります。
クラスタが作成された後にデフォルトのストレージボリュームを手動で作成したい場合は、次の設定項目のみを追加する必要があります。
run_mode = shared_data
cloud_native_meta_port = <meta_port>