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

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

ヒント

以下の各機能には追加されたバージョン番号が記載されています。新しいクラスタをデプロイする場合は、バージョン 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共有なし
Q01274285896523555
Q02271470486383183
Q03190865881632980
Q04311358582346047997
Q05265977806291836794
Q06216437147244015602
Q0735271154903890419530
Q08248187368275986984
Q09210566667235875687
Q102823912166633942
Q1150027189475299719636
Q12103004919361468136
Q1373783386231536380
SUM23841283444333689100406

結論

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

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

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