機能サポート: 共有データクラスタ
以下の各機能には追加されたバージョン番号が記載されています。新しいクラスタをデプロイする場合は、バージョン 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>
認証
StarRocks は、異なるオブジェクトストレージサービスのために以下の認証方法をサポートしています:
- AWS S3
- AWS SDK
- IAM ユーザーに基づくクレデンシャル
- インスタンスプロファイル
- アサームドロール
- GCS, OSS, OBS, COS, TOS, KS3, MinIO, および Ceph S3
- アクセスキーのペア
- Azure Blob Storage
- 共有キー
- 共有アクセス署名 (SAS)
パーティション化されたプレフィックス
v3.2.4 から、StarRocks は S3 互換オブジェクトストレージシステムのためにパーティション化されたプレフィックス機能を使用してストレージボリュームを作成することをサポートしています。この機能が有効になると、StarRocks はデータをバケット内の複数のパーティション(サブパス)に分散します。これにより、バケット内に保存されたデータファイルの読み取りおよび書き込みパフォーマンスを容易に向上させることができます。
ストレージボリューム
- v3.1.0 以降、ストレージボリュームは CREATE STORAGE VOLUME ステートメントを使用して作成でき、後のバージョンではこの方法が推奨されています。
- 共有データクラスタの内部カタログ
default_catalogは、データ永続化のためにデフォルトのストレージボリュームを使用します。default_catalog内のデータベースおよびテーブルに異なるストレージボリュームを割り当てるには、プロパティstorage_volumeを設定します。設定されていない場合、プロパティstorage_volumeはカタログ、データベース、テーブルの順に継承されます。 - 現在、ストレージボリュームはクラウドネイティブテーブルのデータ保存にのみ使用できます。将来的には、外部ストレージ管理、データロード、およびバックアップ機能がサポートされる予定です。
キャッシュ
キャッシュタイプ
ファイ ルキャッシュ
ファイルキャッシュは、共有データクラスタとともに導入された最初のキャッシングメカニズムです。セグメントファイルレベルでキャッシュをロードします。ファイルキャッシュは v3.1.7、v3.2.3、およびそれ以降のバージョンでは推奨されていません。
データキャッシュ
データキャッシュは、v3.1.7 および v3.2.3 以降でサポートされ、以前のバージョンのファイルキャッシュを置き換えます。データキャッシュは、リモートストレージからデータをオンデマンドでブロック単位(MB 単位)でロードし、ファイル全体をロードする必要がありません。後のバージョンで推奨され、v3.2.3 以降ではデフォルトで有効になっています。
データキャッシュウォームアップ
StarRocks v3.3.0 は、データレイクおよび共有データクラスタでのクエリを高速化するためにデータキャッシュウォームアップ機能を導入します。データキャッシュウォームアップは、キャッシュをポピュレートす るアクティブなプロセスです。CACHE SELECT を実行することで、リモートストレージから必要なデータを事前に取得することができます。
設定
- テーブルプロパティ:
datacache.enable: ローカルディスクキャッシュを有効にするかどうか。デフォルト:true。datacache.partition_duration: キャッシュされたデータの有効期間。
- BE 設定:
starlet_use_star_cache: データキャッシュを有効にするかどうか。starlet_star_cache_disk_size_percent: 共有データクラスタでデータキャッシュが使用できるディスク容量の割合。
機能
- データロードはローカルキャッシュを生成し、その削除はキャッシュ容量制御メカニズムによってのみ管理され、
partition_durationでは管理されません。 - StarRocks は、データキャッシュウォームアップのための定期的なタスクの設定をサポートしています。
制限事項
- StarRocks は、キャッシュされたデータの複数のレプリカをサポートしていません。
Compaction
可観測性
パーティションレベルの Compaction ステータス
v3.1.9 以降、information_schema.partitions_meta をクエリすることで、パーティションの Compaction ステータスを確認できます。
以下の主要なメトリクスを監視することをお勧めします:
- AvgCS: パーティション内のすべてのタブレットの平均 Compaction スコア。
- MaxCS: パーティション内のすべてのタブレットの中で最大の Compaction スコア。
Compaction タスクステータス
v3.2.0 以降、information_schema.be_cloud_native_compactions をクエリすることで、Compaction タスクのステータスと進行状況を確認できま す。
以下の主要なメトリクスを監視することをお勧めします:
- PROGRESS: タブレットの現在の Compaction 進行状況(パーセンテージ)。
- STATUS: Compaction タスクのステータス。エラーが発生した場合、このフィールドに詳細なエラーメッセージが返されます。
Compaction タスクのキャンセル
特定の Compaction タスクを CANCEL COMPACTION ステートメントを使用してキャンセルできます。
例:
CANCEL COMPACTION WHERE TXN_ID = 123;
NOTE
CANCEL COMPACTION ステートメントは、Leader FE ノードで実行する必要があります。