機能サポート: 共有データクラスタ
以下の各機能には追加されたバージョン番号が記載されています。新しいクラスタをデプロイする場合は、バージョン 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 以降でデフォルトで有効になっています。
データキャッシュウォームアップ
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 ノードで実行する必要があります。
手動 Compaction
v3.1 から、StarRocks は手動 Compaction のための SQL ステートメントを提供しています。Compaction のためにテーブルまたはパーティションを指定できます。詳細については、Manual Compaction を参照してください。
主キーテーブル
以下の表は、主キーテーブルの主要な機能と共有データクラスタでのサポート状況を示しています:
機能 | サポートバージョン | 説明 |
---|---|---|
主キーテーブル | v3.1.0 | |
主キーインデックスの永続化 | v3.2.0 v3.1.3 |
|
部分更新 | v3.1.0 | 共有データクラスタは v3.1.0 以降で行モードでの部分更新をサポートし、v3.3.1 以降で列モードでの部分更新をサポートします。 |
条件付き更新 | v3.1.0 | 現在、条件は「Greater」のみをサポートしています。 |
行と列のハイブリッドストレージ | ❌ | 将来のリリースでサポートされる予定です。 |
クエリパフォーマンス
以下のテストは、データキャッシュが無効な共有データクラスタ、データキャッシュが有効な共有データクラスタ、Hive のデータセットをクエリするクラスタ、および共有なしクラスタのクエリパフォーマンスを比較しています。
ハードウェア仕様
テストに使用されたクラスタには、1 つの FE ノードと 5 つの CN/BE ノードが含まれています。ハードウェア仕様は以下の通りです:
VM プロバイダー | Alibaba Cloud ECS |
---|---|
FE ノード | 8 コア 32 GB メモリ |
CN/BE ノード | 8 コア 64 GB メモリ |
ネットワーク帯域幅 | 8 Gbits/s |
ディスク | ESSD |
ソフトウェアバージョン
StarRocks v3.3.0
データセット
SSB 1TB データセット
この比較に使用されたデータセットとクエリは、Star Schema Benchmark からのものです。
テスト結果
以下の表は、13 のクエリと各クラスタの合計のパフォーマンステスト結果を示しています。クエリ遅延の単位はミリ秒 (ms) です。
クエリ | データキャッシュなしの共有データ | データキャッシュありの共有データ | データキャッシュなしの Hive Catalog | 共有なし |
---|---|---|---|---|
Q01 | 2742 | 858 | 9652 | 3555 |
Q02 | 2714 | 704 | 8638 | 3183 |
Q03 | 1908 | 658 | 8163 | 2980 |
Q04 | 31135 | 8582 | 34604 | 7997 |
Q05 | 26597 | 7806 | 29183 | 6794 |
Q06 | 21643 | 7147 | 24401 | 5602 |
Q07 | 35271 | 15490 | 38904 | 19530 |
Q08 | 24818 | 7368 | 27598 | 6984 |
Q09 | 21056 | 6667 | 23587 | 5687 |
Q10 | 2823 | 912 | 16663 | 3942 |
Q11 | 50027 | 18947 | 52997 | 19636 |
Q12 | 10300 | 4919 | 36146 | 8136 |
Q13 | 7378 | 3386 | 23153 | 6380 |
SUM | 238412 | 83444 | 333689 | 100406 |
結論
- データキャッシュが無効で、並列スキャンと I/O マージ最適化が有効な共有データクラスタのクエリパフォーマンスは、Hive データをクエリするクラスタの 1.4 倍 です。
- データキャッシュが有効で、並列スキャンと I/O マージ最適化が有効な共有データクラスタのクエリパフォーマンスは、共有なしクラスタの 1.2 倍 です。
将来サポートされるその他の機能
- フルテキスト逆インデックス
- 行と列のハイブリッドストレージ
- グローバル辞書オブジェクト
- 生成列
- バックアップとリストア