このトピックでは、StarRocks のキャッシュ管理のアーキテクチャと各キャッシュタイプの適用シナリオについて説明し、ビジネスニーズに適したキャッシュソリューションを選択するのに役立ちます。
特長
StarRocks は複数のキャッシュ機構を提供しており、ホットデータをローカルの BE ノードや CN ノードのメモリまたはディスクにキャッシュすることで、クエリのパフォーマンスを大幅に向上させます。これにより、HDFS やオブジェクトストレージなどのリモートストレージへの繰り返しアクセスが削減されます。
キャッシュタイプ
キャッシュタイプ | 利用シーン | デフォルトの状態 | 提供開始日 |
shared-data データキャッシュ | shared-data (サーバーレス) インスタンス内の内部テーブルに対するクエリを高速化します。 | デフォルトで有効 | v3.1.7 / v3.2.3 |
データレイクデータキャッシュ | 外部カタログ (Hive、Iceberg、Hudi など) からの外部テーブルに対するクエリを高速化します。 | v3.3.0 以降、デフォルトで有効 | v2.5 |
インデックスキャッシュ | shared-data インスタンスのインデックスをキャッシュします。ディスク容量が不足して完全なデータセットをキャッシュできないシナリオに最適です。 | デフォルトで有効 | v3.3.13 |
v3.4.0 以降、shared-data インスタンス内の内部テーブルに対するクエリとデータレイクに対するクエリは、同じデータキャッシュインスタンスを共有するため、個別の構成は不要です。
推奨事項
Shared-data インスタンス:shared-data データキャッシュを使用します。リモートストレージからローカルキャッシュにオンデマンドでデータを自動的にロードするため、追加の構成は不要です。
データレイクの外部テーブル:データレイクデータキャッシュを使用します。Parquet や ORC などのフォーマットのリモートファイルをキャッシュでき、アドホック分析やレポートクエリなど、大規模なテーブルの繰り返しスキャンを伴うシナリオに最適です。
完全なデータセットを格納するディスク容量が不足している場合:インデックスキャッシュを有効にします。インデックスのみをキャッシュするため、低いディスクオーバーヘッドでクエリのパフォーマンスを大幅に向上させます。
ホットデータのプリロード:データキャッシュのプリヒーティング (
CACHE SELECT) を使用して、特定のデータを事前にキャッシュにロードすることで、コールドスタートによるパフォーマンスへの影響を回避します。