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

機能サポート: 共有データクラスタ

ヒント

以下の各機能には追加されたバージョン番号が記載されています。新しいクラスタをデプロイする場合は、バージョン 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 ノードで実行する必要があります。

手動 Compaction

v3.1 から、StarRocks は手動 Compaction のための SQL ステートメントを提供しています。Compaction のためにテーブルまたはパーティションを指定できます。詳細については、Manual Compaction を参照してください。

主キーテーブル

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

機能サポートバージョン説明
主キーテーブルv3.1.0
主キーインデックスの永続化v3.2.0
v3.1.3
  • 現在、共有データクラスタはローカルディスク上での主キーインデックスの永続化をサポートしています。
  • リモートストレージでの永続化は将来のリリースでサポートされる予定です。
部分更新v3.1.0
  • 現在、共有データクラスタは行モードでのみ部分更新をサポートしています。
  • 将来的には列モードもサポートされる予定です。
条件付き更新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 カタログ共有なし
Q01274285896523555
Q02271470486383183
Q03190865881632980
Q04311358582346047997
Q05265977806291836794
Q06216437147244015602
Q0735271154903890419530
Q08248187368275986984
Q09210566667235875687
Q102823912166633942
Q1150027189475299719636
Q12103004919361468136
Q1373783386231536380
SUM23841283444333689100406

結論

  • データキャッシュが無効で、並列スキャンと I/O マージ最適化が有効な共有データクラスタのクエリパフォーマンスは、Hive データをクエリするクラスタの 1.4 倍 です。
  • データキャッシュが有効で、並列スキャンと I/O マージ最適化が有効な共有データクラスタのクエリパフォーマンスは、共有なしクラスタの 1.2 倍 です。

将来サポートされるその他の機能

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