Boundaries of Competence: 共有データクラスタ
以下の各機能には、追加されたバージョン番号が記載されています。新しいクラスタをデプロイする場合は、バージョン 3.2 以上の最新のパッチリリースをデプロイしてください。
Overview
共有データ StarRocks クラスタは、ストレージとコンピュートを分離したアーキテクチャを特徴としています。これにより、データをリモートストレージに保存でき、共有なしクラスタと比較して、ストレージコストの削減、リソースの最適な分離、サービスの弾力性の向上が可能になります。
このドキュメントでは、共有データクラスタの能力の範囲を概説し、デプロイメント方法、ストレージ構成、キャッシングメカニズム、Compaction、主キーテーブルの機能、およびパフォーマンステストの結果をカバーします。
Deployment
共有データクラスタは、物理/仮想マシンおよび Kubernetes 上で Operator を介してデプロイをサポートしています。
両方のデプロイメントソリューションには、以下の制限があります。
- 共有なしモードと共有データモードの混在デプロイはサポートされていません。
- 共有なしクラスタから共有データクラスタへの変換、またはその逆はサポートされていません。
- 異種デプロイはサポートされていません。つまり、クラスタ内のすべての CN ノードのハードウェア仕様は同じでなければなりません。
StarRocks Kubernetes Operator
StarRocks は、Kubernetes 上での共有データデプロイメントのために StarRocks Kubernetes Operator を提供しています。
共有データクラスタを以下の方法でスケールできます。
- 手動操作。
- Kubernetes HPA (Horizontal Pod Autoscaler) 戦略を使用した自動スケーリング。
Storage
共有データクラスタは、HDFS およびオブジェクトストレージ上でストレージボリュームを構築することをサポートしています。
HDFS
Location
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>/
Authentication
StarRocks は、HDFS ストレージボリュームの以下の認証方法をサポートしています。
-
Basic
-
Username (v3.2 からサポート)
-
Kerberos Ticket Cache (v3.2 からサポート)
NOTE
StarRocks は自動チケット更新をサポートしていません。チケットを更新するために crontab タスクを設定する必要があります。
Kerberos Keytab と Principal ID を使用した認証はまだサポートされていません。
Usage notes
StarRocks は、HDFS およびオブジェクトストレージ上のストレージボリュームをサポートしています。ただし、各 StarRocks インスタンスには 1 つの HDFS ストレージボリュームのみが許可されています。複数の HDFS ストレージボリュームを作成すると、StarRocks の未知の動作を引き起こす可能性があります。
Object storage
Location
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>
Authentication
StarRocks は、異なるオブジェクトストレージサービスのために以下の認証方法をサポートしています。
- AWS S3
- AWS SDK
- IAM ユーザーベースのクレデンシャル
- インスタンスプロファイル
- アサムドロール
- GCS, OSS, OBS, COS, TOS, KS3, MinIO, および Ceph S3
- アクセスキー ペア
- Azure Blob Storage
- 共有キー
- 共有アクセス署名 (SAS)
Partitioned Prefix
v3.2.4 以降、StarRocks は S3 互換オブジェクトストレージシステムのために Partitioned Prefix 機能を使用してストレージボリュームを作成することをサポートしています。この機能が有効になると、StarRocks はデータをバケット内の複数のパーティション(サブパス)に分配します。これにより、バケットに保存されたデータファイルの読み書きパフォーマンスを容易に向上させることができます。
Storage volumes
- v3.1.0 以降、ストレージボリュームは CREATE STORAGE VOLUME ステートメントを使用して作成でき、後のバージョンではこの方法が推奨されます。
- 共有データクラスタの内部カタログ
default_catalog
は、データ永続化のためにデフォルトのストレージボリュームを使用します。default_catalog
内のデータベースおよびテーブルに対して異なるストレージボリュームを割り当てることができます。storage_volume
プロパティを設定することで、カタログ、データベース、テーブルの順にプロパティが継承されます。 - 現在、ストレージボリュームはクラウドネイティブテーブルのデータ保存にのみ使用できます。将来的には、外部ストレージ管理、データロード、およびバックアップ機能がサポートされる予定です。
Cache
Cache types
File Cache
File Cache は、共有データクラスタと共に導入された最初のキャッシングメカニズムです。セグメントファイルレベルでキャッシュをロードします。File Cache は v3.1.7、v3.2.3 以降のバージョンでは推奨されません。
Data Cache
Data Cache は、v3.1.7 および v3.2.3 以降でサポートされ、以前のバージョンの File Cache を置き換えます。Data Cache は、リモートストレージからデータをオンデマンドでブロック単位(MB 単位)でロードし、ファイル全体をロードする必要はありません。後のバージョンで推奨され、v3.2.3 以降でデフォルトで有効になっています。
Data Cache Warmup
StarRocks v3.3.0 は、データレイクおよび共有データクラスタでのクエリを加速するために Data Cache Warmup 機能を導入しました。Data Cache Warmup は、キャッシュを活性化するプロセスです。CACHE SELECT を実行することで、リモートストレージから必要なデータを事前に取得することができます。
Configurations
- テーブルプロパティ:
datacache.enable
: ローカルディスクキャッシュを有効にするかどうか。デフォルト:true
。datacache.partition_duration
: キャッシュされたデータの有効期間。
- BE 設定:
starlet_use_star_cache
: Data Cache を有効にするかどうか。starlet_star_cache_disk_size_percent
: 共有データクラスタで Data Cache が使用できるディスク容量の割合。
Capabilities
- データロードはローカルキャッシュを生成し、その削除は
partition_duration
ではなく、キャッシュ容量制御メカニズムによってのみ管理されます。 - StarRocks は Data Cache Warmup の定期的なタスクを設定することをサポートしています。
Limitations
- StarRocks はキャッシュされたデータの複数のレプリカをサポートしていません。
Compaction
Observability
Partition-level Compaction status
v3.1.9 以降、information_schema.partitions_meta
をクエリすることでパーティションの Compaction ステータスを確認できます。
以下の主要なメトリクスを監視することをお勧めします。
- AvgCS: パーティション内のすべてのタブレットの平均 Compaction スコア。
- MaxCS: パーティション内のすべてのタブレットの中で最大の Compaction スコア。
Compaction task status
v3.2.0 以降、information_schema.be_cloud_native_compactions
をクエリすることで Compaction タスクのステータスと進行状況を確認できます。
以下の主要なメトリクスを監視することをお勧めします。
- PROGRESS: タブレットの現在の Compaction 進行状況(パーセンテージ)。
- STATUS: Compaction タスクのステータス。エラーが発生した場合、このフィールドに詳細なエラーメッセージが返されます。
Cancelling Compaction tasks
特定の Compaction タスクを CANCEL COMPACTION ステートメントを使用してキャンセルできます。
例:
CANCEL COMPACTION WHERE TXN_ID = 123;
NOTE
CANCEL COMPACTION ステートメントは Leader FE ノードで実行する必要があります。
Manual Compaction
v3.1 以降、StarRocks は手動 Compaction のための SQL ステートメントを提供しています。Compaction の対象となるテーブルまたはパーティションを指定できます。詳細については、Manual Compaction を参照してください。
Primary Key tables
以下の表は、共有データクラスタでの主キーテーブルの主要な機能とそのサポート状況を示しています。
Feature | Supported Version(s) | Description |
---|---|---|
Primary Key tables | v3.1.0 | |
Primary Key index persistence | v3.2.0 v3.1.3 |
|
Partial Update | v3.1.0 |
|
Conditional Update | v3.1.0 | 現在、条件は「Greater」のみをサポートしています。 |
Hybrid row-column storage | ❌ | 将来のリリースでサポートされる予定です。 |
Query performance
以下のテストは、Data Cache を無効にした共有データクラスタ、Data Cache を有効にした共有データクラスタ、Hive でデータセットをクエリするクラスタ、および共有なしクラスタのクエリパフォーマンスを比較しています。
Hardware Specifications
テストに使用されたクラスタには、1 つの FE ノードと 5 つの CN/BE ノードが含まれています。ハードウェア仕様は次のとおりです。
VM provider | Alibaba Cloud ECS |
---|---|
FE node | 8 Core 32 GB Memory |
CN/BE node | 8 Core 64 GB Memory |
Network bandwidth | 8 Gbits/s |
Disk | ESSD |
Software version
StarRocks v3.3.0
Dataset
SSB 1TB データセット
この比較に使用されたデータセットとクエリは、Star Schema Benchmark からのものです。
Test Results
以下の表は、13 のクエリと各クラスタの合計のパフォーマンステスト結果を示しています。クエリ遅延の単位はミリ秒 (ms) です。
Query | Shared-data Without Data Cache | Shared-data With Data Cache | Hive Catalog Without Data Cache | Shared-nothing |
---|---|---|---|---|
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 |
Conclusion
- Data Cache を無効にし、Parallel Scan と I/O マージ最適化を有効にした共有データクラスタのクエリパフォーマンスは、Hive データをクエリするクラスタの 1.4 倍 です。
- Data Cache を有効にし、Parallel Scan と I/O マージ最適化を有効にした共有データクラスタのクエリパフォーマンスは、共有なしクラスタの 1.2 倍 です。
Other features to be supported
- フルテキスト逆インデックス
- 行と列のハイブリッドストレージ
- グローバル辞書オブジェクト
- 生成列
- バックアップとリストア