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

shared-data StarRocks with GCS

GCSを使用してStarRocksをデプロイする

「../../assets/commonMarkdown/sharedDataIntro.md」から「SharedDataIntro」をインポートします 「../../assets/commonMarkdown/sharedDataCNconf.md」から「SharedDataCNconf」をインポートします 「../../assets/commonMarkdown/sharedDataUseIntro.md」から「SharedDataUseIntro」をインポートします 「../../assets/commonMarkdown/sharedDataUse.md」から「SharedDataUse」をインポートします

アーキテクチャ

共有データアーキテクチャ

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

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

注意

次のセクションで共有ストレージ向けにクラスタを構成する前に、クラスタを起動しないでください。

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

クラスタを起動する前に、FEとCNを構成します。以下に例として提供される設定を参考にして、各パラメータの詳細を確認してください。

GCS向けのFEの例設定

共有データ向けの例の設定は、各FEノードの「fe.conf」ファイルに追加されることができます。GCSストレージは、Cloud Storage XML APIを使用してアクセスされるため、パラメータは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>

# 例: https://storage.googleapis.com
aws_s3_endpoint = <endpoint_url>

aws_s3_access_key = <HMAC access_key>
aws_s3_secret_key = <HMAC secret_key>

GCSと関連するすべてのFEパラメータ

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 GCS、およびMinIOなど)にデータを保存することができます。有効な値:

  • S3 (デフォルト)
  • AZBLOB

aws_s3_path

データを保存するために使用するS3パス。S3バケットの名前とそれに紐づくサブパス(ある場合)から構成されます。例: testbucket/subpath

aws_s3_endpoint

S3バケットにアクセスするために使用するエンドポイント。例: https://storage.googleapis.com/

aws_s3_region

S3バケットが存在するリージョン。例: us-west-2

aws_s3_use_instance_profile

GCSへのアクセスにInstance ProfileとAssumed Roleを認証方法として使用するかどうかを指定します。有効な値:

  • true
  • false (デフォルト)

GCSへのアクセスにIAMユーザーベースの認証(アクセスキーとシークレットキー)を使用する場合は、この項目をfalseと指定し、aws_s3_access_keyaws_s3_secret_keyを指定する必要があります。

GCSへのアクセスにInstance Profileを使用する場合は、この項目をtrueと指定する必要があります。

GCSへのアクセスにAssumed Roleを使用する場合は、この項目をtrueと指定し、aws_s3_iam_role_arnを指定する必要があります。

外部のAWSアカウントを使用する場合は、aws_s3_external_idも指定する必要があります。

aws_s3_access_key

GCSバケットにアクセスするために使用するHMACアクセスキーID。

aws_s3_secret_key

GCSバケットにアクセスするために使用するHMACシークレットアクセスキー。

aws_s3_iam_role_arn

データファイルが格納されているGCSバケットに特権を持つIAMロールのARN。

aws_s3_external_id

GCSバケットへのクロスアカウントアクセスに使用されるAWSアカウントの外部ID。

注意

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

クラスタの作成後にデフォルトのストレージボリュームを手動で作成する場合は、以下の構成項目を追加するだけで十分です。

run_mode = shared_data
cloud_native_meta_port = <meta_port>
enable_load_volume_from_conf = false

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

共有データのStarRocksクラスタを使用する

以下の例では、HMACアクセスキーとシークレットキーを使用して、GCSバケット「defaultbucket」のストレージボリューム「def_volume」を作成し、有効にし、デフォルトのストレージボリュームとして設定しています。

CREATE STORAGE VOLUME def_volume
TYPE = S3
LOCATIONS = ("s3://defaultbucket/test/")
PROPERTIES
(
"enabled" = "true",
"aws.s3.region" = "us-east1",
"aws.s3.endpoint" = "https://storage.googleapis.com",
"aws.s3.access_key" = "<HMAC access key>",
"aws.s3.secret_key" = "<HMAC secret key>"
);

SET def_volume AS DEFAULT STORAGE VOLUME;