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

shared-data StarRocks with MinIO

共有データの使用

\import SharedDataIntro from '../../assets/commonMarkdown/sharedDataIntro.md' \import SharedDataCNconf from '../../assets/commonMarkdown/sharedDataCNconf.md' \import SharedDataUseIntro from '../../assets/commonMarkdown/sharedDataUseIntro.md' \import SharedDataUse from '../../assets/commonMarkdown/sharedDataUse.md'

アーキテクチャ

Shared-data Architecture

共有データ StarRocks クラスターのデプロイ

共有データ StarRocks クラスターのデプロイは、共有するノードの StarRocks クラスターと同様です。唯一の違いは、共有データクラスターでは BE の代わりに CN をデプロイする必要がある点です。このセクションでは、共有データ StarRocks クラスターをデプロイする際に、FE と CN の構成ファイル fe.conf および cn.conf に追加する必要のある追加の項目のみをリストアップしています。StarRocks クラスターのデプロイの詳細な手順については、StarRocks のデプロイを参照してください。

共有データ StarRocks の FE ノードを構成する

FE を開始する前に、FE の構成ファイル fe.conf に以下の設定項目を追加します。

run_mode

StarRocks クラスターの実行モード。有効な値:

  • shared_data
  • shared_nothing(デフォルト)。

注意

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 でオブジェクトを作成する前に、ストレージボリュームを手動で作成し、デフォルトのストレージボリュームに設定する必要があります。詳細については、デフォルトのストレージボリュームを作成するを参照してください。

バージョン 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

注意

このパラメータを S3 と指定する場合は、aws_s3 で接頭辞が付けられたパラメータを追加する必要があります。

このパラメータを AZBLOB と指定する場合は、azure_blob で接頭辞が付いたパラメータを追加する必要があります。

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 のデフォルトの認証プロバイダチェーンを使用するかどうか。有効な値:

  • true
  • false(デフォルト)

aws_s3_use_instance_profile

S3 へのアクセスのための資格情報の方法として、インスタンスプロファイルと前提条件となるロールを使用するかどうか。有効な値:

  • true
  • false(デフォルト)

S3 へのアクセスに IAM ユーザーベースの資格情報(アクセスキー、シークレットキー)を使用する場合、この項目を 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。

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 のリクエストを認証するために使用される Shared Key。

azure_blob_sas_token

Azure Blob Storage のリクエストを認証するために使用される共有アクセス署名 (SAS)。

注意

共有データ StarRocks クラスターが作成された後、認証関連の設定項目だけを変更できます。元のストレージパス関連の設定項目を変更すると、変更前に作成したデータベースとテーブルは読み取り専用になり、データをロードすることができません。

クラスターが作成された後に手動でデフォルトのストレージボリュームを作成する場合は、次の設定項目のみを追加する必要があります:

run_mode = shared_data
cloud_native_meta_port = <meta_port>
enable_load_volume_from_conf = false

共有データ StarRocks の CN ノードを構成する

共有データ StarRocks クラスターの使用方法

以下の例では、MinIO バケット defaultbucket に対してアクセスキーとシークレットキーの資格情報を使用して、ストレージボリューム def_volume を作成し、有効化し、デフォルトのストレージボリュームとして設定します。

CREATE STORAGE VOLUME def_volume
TYPE = S3
LOCATIONS = ("s3://defaultbucket/test/")
PROPERTIES
(
"enabled" = "true",
"aws.s3.region" = "us-west-2",
"aws.s3.endpoint" = "https://hostname.domainname.com:portnumber",
"aws.s3.access_key" = "xxxxxxxxxx",
"aws.s3.secret_key" = "yyyyyyyyyy"
);

SET def_volume AS DEFAULT STORAGE VOLUME;