共有データに Azure Blob Storage を使用する
このトピックでは、共有データ 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 を設定します。以下に例として設定を示し、その後に各パラメータの詳細を説明します。
Azure Blob Storage 用の FE 設定例
fe.conf に対する共有データの追加例を、各 FE ノードの fe.conf ファイルに追加できます。
run_mode = shared_data
cloud_native_meta_port = <meta_port>
cloud_native_storage_type = AZBLOB
# 例: testcontainer/subpath
azure_blob_path = <blob_path>
# 例: https://test.blob.core.windows.net
azure_blob_endpoint = <endpoint_url>
azure_blob_shared_key = <shared_key>
-
Azure Blob Storage にアクセスするために共有アクセス署名 (SAS) を使用する場合、以下の設定項目を追加します:
run_mode = shared_data
cloud_native_meta_port = <meta_port>
cloud_native_storage_type = AZBLOB
# 例: testcontainer/subpath
azure_blob_path = <blob_path>
# 例: https://test.blob.core.windows.net
azure_blob_endpoint = <endpoint_url>
azure_blob_sas_token = <sas_token>
CAUTION
Azure Blob Storage アカウントを作成する際、階層的な名前空間は無効にする必要があります。
Azure Blob Storage に関連するすべての 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
StarRocks が FE 設定ファイルに指定されたオブジェクトストレージ関連のプロパティを使用してデフォルトのストレージボリュームを作成できるかどうか。有効な値:
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。
Note
このパラメータを
S3に指定した場合、aws_s3で始まるパラメータを追加する必要があります。このパラメータを
AZBLOBに指定した場合、azure_blobで始まるパラメータを追加する必要があります。
azure_blob_path
データを保存するために使用される Azure Blob Storage のパス。ストレージアカウント内のコンテナ名と、コンテナ内のサブパス (あれば) で構成されます。例: testcontainer/subpath。
azure_blob_endpoint
Azure Blob Storage アカウントのエンドポイント。例: https://test.blob.core.windows.net。
azure_blob_shared_key
Azure Blob Storage のリクエストを承認するために使用される共有キー。
azure_blob_sas_token
Azure Blob Storage のリクエストを承認するために使用される共有アクセス署名 (SAS)。
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.
storage_root_path
ローカルキャッシュデータが依存するストレージボリュームディレクトリ。複数のボリュームはセミコロン (;) で区切ります。例: /data1;/data2.
storage_root_path のデフォルト値は ${STARROCKS_HOME}/storage です。
ローカルキャッシュはクエリが頻繁で、クエリされるデータが最近のものである場合に効果的ですが、ローカルキャッシュを完全にオフにしたい場合もあります。
- CN ポッドが需要に応じてスケールアップおよびスケールダウンする Kubernetes 環境では、ポッドにストレージボリュームがアタッチされていない場合があります。
- クエリされるデータがリモートストレージのデータレイクにあり、そのほとんどがアーカイブ(古い)データである場合。クエリが頻繁でない場合、データキャッシュのヒット率は低 くなり、キャッシュを持つことの利点がないかもしれません。
データキャッシュをオフにするには、次のように設定します。
storage_root_path =
注意
データはディレクトリ
<storage_root_path>/starlet_cacheの下にキャッシュされます。
共有データ StarRocks クラスタの使用
共有データ StarRocks クラスタの使用方法は、クラシックな共有なし StarRocks クラスタと似ていますが、共有データクラスタはストレージボリュームとクラウドネイティブテーブルを使用して、データをオブジェクトストレージに保存します。