機能サポート: 共有データクラスタ
以下の各機能には追加されたバージョン番号が記載されています。新しいクラスタをデプロイする場合は、バージョン 3.2 以上の最新のパッチリリースをデプロイしてください。
概要
共有データ StarRocks クラスタは、ストレージとコンピュートを分離したアーキテクチャを特徴としています。これにより、データをリモートストレージに保存でき、共有なしクラスタと比較して、ストレージコストの削減、リソースの分離の最適化、サービスの柔軟性の向上が実現します。
このドキュメントでは、共有データクラスタの機能サポートについて、デプロイメント方法、ストレージ構成、キャッシングメカニズム、Compaction、主キーテーブルの機能、およびパフォーマンステストの結果を説明します。
デプロイメント
共有データクラスタは、物理/仮想マシンおよび Kubernetes 上で Operator を使用してデプロイをサポートしています。
両方のデプロイメントソリューションには以下の制限があります:
- 共有なしモードと共有データモードの混在デプロイメントはサポートされていません。
- 共有なしクラスタから共有データクラスタへの変換、またはその逆はサポートされていません。
- 異種デプロイメントはサポートされていません。つまり、クラスタ内のすべての CN ノードのハードウェア仕様は同じでなければなりません。
StarRocks Kubernetes Operator
StarRocks は、Kubernetes 上での共有データデプロイメントのために StarRocks Kubernetes Operator を提供しています。
共有データクラスタは以下の方法でスケールできます:
- 手動操作。
- Kubernetes HPA (Horizontal Pod Autoscaler) 戦略を使用した自動スケーリング。
ストレージ
共有データクラスタは、HDFS およびオブジェクトストレージ上でストレージボリュームの構築をサポートしています。
HDFS
ロケーション
StarRocks は、HDFS ストレージボリュームのために以下のロケーションをサポートしています:
-
HDFS:
hdfs://<host>:<port>/NOTE
v3.2 以降、ストレージボリュームは NameNode HA モードが有効な HDFS クラスタをサポートします。
-
WebHDFS (v3.2 からサポート):
webhdfs://<host>:<http_port>/ -
ViewFS (v3.2 からサポート):
viewfs://<ViewFS_cluster>/
認証
StarRocks は、HDFS ストレージボリュームのために以下の認証方法をサポートしています:
-
Basic
-
ユーザー名 (v3.2 からサポート)
-
Kerberos チケットキャッシュ (v3.2 からサポート)
NOTE
StarRocks は自動チケット更新をサポートしていません。チケットを更新するために crontab タスクを設定する必要があります。
Kerberos Keytab と Principal ID を使用した認証はまだサポートされていません。
使用上の注意
StarRocks は、HDFS およびオブジェクトストレージ上のストレージボリュームをサポートしています。ただし、各 StarRocks インスタンスには 1 つの HDFS ストレージボリュームのみが許可されています。複数の HDFS ストレージボリュームを作成すると、StarRocks の未知の動作を引き起こす可能性があります。
オブジェクトストレージ
ロケーション
StarRocks は、ストレージボリュームのために以下のオブジェクトストレージサービスをサポートしています:
- S3 互換オブジェクトストレージサービス:
s3://<s3_path>- AWS S3
- GCS, OSS, OBS, COS, TOS, KS3, MinIO, および Ceph S3
- Azure Blob Storage (v3.1.1 からサポート):
azblob://<azblob_path> - Azure Data Lake Storage Gen2 (v3.4.1 からサポート):
adls2://<file_system_name>/<dir_name>
認証
StarRocks は、異なるオブジェクトストレージサービスのために以下の認証方法をサポートしています:
- AWS S3
- AWS SDK
- IAM ユーザーに基づくクレデンシャル
- インスタンスプロファイル
- アサインされたロール
- GCS, OSS, OBS, COS, TOS, KS3, MinIO, および Ceph S3
- アクセスキーのペア
- Azure Blob Storage
- 共有キー
- 共有アクセス署名 (SAS)
- Azure Data Lake Storage Gen2
- 共有キー
- 共有アクセス署名 (SAS)
パーティション化されたプレフィックス
v3.2.4 から、StarRocks は S3 互換オブジェクトストレージシステムのためにパーティション化されたプレフィックス 機能を使用してストレージボリュームを作成することをサポートしています。この機能が有効になると、StarRocks はバケット内のデータを複数のパーティション (サブパス) に分散させます。これにより、バケットに保存されたデータファイルの読み取りおよび書き込みパフォーマンスが容易に向上します。
ストレージボリューム
- v3.1.0 以降、ストレージボリュームは CREATE STORAGE VOLUME ステートメントを使用して作成でき、後のバージョンではこの方法が推奨されます。
- 共有データクラスタの内部 catalog
default_catalogは、データの永続化にデフォルトのストレージボリュームを使用します。default_catalogのデータベースおよびテーブルに対して異なるストレージボリュームを割り当てることができますが、storage_volumeプロパティを設定しない場合、catalog、データベース、テーブルの順にstorage_volumeプロパティが継承されます。 - 現在、ストレージボリュームはクラウドネイティブテーブルのデータ保存にのみ使用できます。将来的には外部ストレージ管理、データロード、およびバックアップ機能がサポートされる予定です。
キャッシュ
キャッシュタイプ
ファイルキャッシュ
ファイルキャッシュは、共有データクラスタと共に導入された最初のキャッシングメカニズムです。セグメントファイルレベルでキャッシュをロードします。ファイルキャッシュは v3.1.7、v3.2.3、およびそれ以降のバージョンでは推奨されません。
データキャッシュ
データキャッシュは、v3.1.7 および v3.2.3 以降でファイルキャッシュを置き換えるためにサポートされています。データキャッシュは、リモートストレージからデータをオンデマンドでブロック単位 (MB 単位) でロードし、ファイル全体をロードする必要がありません。後のバージョンで推奨され、v3.2.3 以降でデフォルトで有効になっています。