メインコンテンツまでスキップ
バージョン: 3.1

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

以下の表は、共有データクラスタでの主キーテーブルの主要な機能とそのサポート状況を示しています。

FeatureSupported Version(s)Description
Primary Key tablesv3.1.0
Primary Key index persistencev3.2.0
v3.1.3
  • 現在、共有データクラスタはローカルディスクでの主キーインデックスの永続化をサポートしています。
  • リモートストレージでの永続化は将来のリリースでサポートされる予定です。
Partial Updatev3.1.0
  • 現在、共有データクラスタは行モードでの部分更新のみをサポートしています。
  • 将来的には列モードもサポートされる予定です。
Conditional Updatev3.1.0現在、条件は「Greater」のみをサポートしています。
Hybrid row-column storage将来のリリースでサポートされる予定です。

Query performance

以下のテストは、Data Cache を無効にした共有データクラスタ、Data Cache を有効にした共有データクラスタ、Hive でデータセットをクエリするクラスタ、および共有なしクラスタのクエリパフォーマンスを比較しています。

Hardware Specifications

テストに使用されたクラスタには、1 つの FE ノードと 5 つの CN/BE ノードが含まれています。ハードウェア仕様は次のとおりです。

VM providerAlibaba Cloud ECS
FE node8 Core 32 GB Memory
CN/BE node8 Core 64 GB Memory
Network bandwidth8 Gbits/s
DiskESSD

Software version

StarRocks v3.3.0

Dataset

SSB 1TB データセット

注記

この比較に使用されたデータセットとクエリは、Star Schema Benchmark からのものです。

Test Results

以下の表は、13 のクエリと各クラスタの合計のパフォーマンステスト結果を示しています。クエリ遅延の単位はミリ秒 (ms) です。

QueryShared-data Without Data CacheShared-data With Data CacheHive Catalog Without Data CacheShared-nothing
Q01274285896523555
Q02271470486383183
Q03190865881632980
Q04311358582346047997
Q05265977806291836794
Q06216437147244015602
Q0735271154903890419530
Q08248187368275986984
Q09210566667235875687
Q102823912166633942
Q1150027189475299719636
Q12103004919361468136
Q1373783386231536380
SUM23841283444333689100406

Conclusion

  • Data Cache を無効にし、Parallel Scan と I/O マージ最適化を有効にした共有データクラスタのクエリパフォーマンスは、Hive データをクエリするクラスタの 1.4 倍 です。
  • Data Cache を有効にし、Parallel Scan と I/O マージ最適化を有効にした共有データクラスタのクエリパフォーマンスは、共有なしクラスタの 1.2 倍 です。

Other features to be supported

  • フルテキスト逆インデックス
  • 行と列のハイブリッドストレージ
  • グローバル辞書オブジェクト
  • 生成列
  • バックアップとリストア