階層型ストレージの概要
階層型ストレージは、Apache Doris が提供するストレージ最適化機能です。アクセス頻度の低いコールドデータを低コストのストレージ媒体(HDD、オブジェクトストレージ、HDFS)に配置し、ホットデータは高性能なストレージに保持します。これにより、クエリ効率を損なうことなくストレージコストを大幅に削減できます。
適用シナリオ
- ストレージコストの負担が大きく、履歴データの保管コストを削減したい場合。
- データへのアクセスに明確なホット・コールドの傾向がある場合(たとえば、直近 7 日間のデータはホットデータで、それより古いデータはコールドデータ)。
- 既存のオブジェクトストレージ(S3/OSS/COS など)や HDFS のリソースを再利用できる場合。
- デプロイ方式(ストレージ・コンピュート一体型またはストレージ・コンピュート分離型)に応じて、異なるコールドデータの保存方式が必要な場合。
方式の選び方
デプロイ条件とコスト削減の目標に応じて、適切な階層化方式を選択してください。
| 利用シナリオ | 推奨方式 | 主な利点 |
|---|---|---|
| ストレージ・コンピュート分離型でデプロイでき、高い拡張性を求める | ストレージ・コンピュート分離 | データを単一レプリカで保存し、コンピュートとストレージを独立してスケールできる |
| ストレージ・コンピュート一体型で、ローカル SSD の使用量を最適化したい | ローカル階層化 | コールドデータを SSD から HDD に移し、高性能ストレージの使用量を削減できる |
| ストレージ・コンピュート一体型で、オブジェクトストレージや HDFS を使ってコストを削減したい | リモート階層化 | コールドデータをオブジェクトストレージまたは HDFS に単一レプリカで保存し、コストをさらに削減できる |
三つの階層化方式
Doris は、デプロイ条件に応じた三つのコールドデータ階層化方式を提供します。実際の環境に合わせて選択できます。
方式の比較
次の表は、三つの方式の適用条件と主な特徴を比較したものです。
| コールドデータの保存方式 | 適用条件 | 主な特徴 |
|---|---|---|
| ストレージ・コンピュート分離 | ストレージ・コンピュート分離型でデプロイできる | - すべてのデータをオブジェクトストレージに単一レプリカで保存する - ローカルキャッシュによりホットデータへのアクセスを高速化する - ストレージとコンピュートのリソースを独立してスケールでき、ストレージコストを大幅に削減できる |
| ローカル階層化 | ストレージ・コンピュート一体型で、ローカルストレージの使用量をさらに最適化したい | - コールドデータを SSD から HDD に移せる - ローカルストレージの階層を活用し、高性能ストレージのコストを抑えられる |
| リモート階層化 | ストレージ・コンピュート一体型で、低コストのオブジェクトストレージや HDFS を使ってコストをさらに削減したい | - コールドデータをオブジェクトストレージまたは HDFS に単一レプリカで保存する - ホットデータは引き続きローカルストレージを使用する - 同じテーブルでローカル階層化と併用できない |
1. ストレージ・コンピュート分離
適用シナリオ:ストレージ・コンピュート分離型でデプロイでき、柔軟なスケーリングと大幅なコスト削減を求める場合。
主な特徴:
- すべてのデータをオブジェクトストレージに単一レプリカで保存します。
- ローカルキャッシュにより、ホットデータへのアクセスを高速化します。
- ストレージとコンピュートのリソースを独立してスケールでき、ストレージコストを大幅に削減できます。
2. ローカル階層化
適用シナリオ:ストレージ・コンピュート一体型で、ローカルストレージの使用量をさらに最適化したい場合。
主な特徴:
- コールドデータを SSD から HDD に移せます。
- ローカルストレージの階層を活用し、高性能ストレージのコストを抑えられます。
詳しい設定と使い方については、ローカルディスクの階層型ストレージを参照してください。
3. リモート階層化
適用シナリオ:ストレージ・コンピュート一体型で、低コストのオブジェクトストレージや HDFS を使ってコストをさらに削減したい場合。
主な特徴:
- コールドデータをオブジェクトストレージまたは HDFS に単一レプリカで保存します。
- ホットデータは引き続きローカルストレージを使用します。
- 同じテーブルでローカル階層化と併用できません。
詳しい設定と使い方については、ローカル・リモート階層型ストレージを参照してください。
設計目標
Doris は、上記の三つの方式によってさまざまなデプロイ条件に対応し、次の目標を実現します。
- クエリ効率とストレージコストの両立:ホットデータへの高速なアクセスを維持しながら、コールドデータを低コストのストレージに保存します。
- さまざまなデプロイ方式への柔軟な対応:ストレージ・コンピュート一体型と分離型の両方に対応します。
- 既存のインフラストラクチャの再利用:オブジェクトストレージ、HDFS、ローカル HDD などのコールドデータ用ストレージ媒体を利用できます。
よくある質問
Q1:ストレージ・コンピュート分離とリモート階層化の本質的な違いは何ですか?
- ストレージ・コンピュート分離:ホットデータを含むすべてのデータをオブジェクトストレージに単一レプリカで保存し、ローカルディスクは高速化のためのキャッシュとしてのみ使用します。
- リモート階層化:コールドデータだけをオブジェクトストレージまたは HDFS に移し、ホットデータはローカルストレージに保持します。ストレージ・コンピュート一体型アーキテクチャ内での最適化方式です。
Q2:ローカル階層化とリモート階層化を同時に使用できますか?
いいえ。同じテーブルでローカル階層化とリモート階層化を併用することはできません。
Q3:どの方式を選べばよいですか?
- ストレージ・コンピュート分離型でデプロイできる場合は、ストレージ・コンピュート分離を優先してください。
- ストレージ・コンピュート一体型で、ローカルディスクのコストだけを最適化したい場合は、ローカル階層化を選んでください。
- ストレージ・コンピュート一体型で、オブジェクトストレージや HDFS を使ってコストを削減したい場合は、リモート階層化を選んでください。
Q4:コールドデータの階層化はクエリ性能に影響しますか?
媒体ごとの性能差(HDD やオブジェクトストレージは SSD よりレイテンシが高い)により、コールドデータに対するクエリはやや遅くなる可能性があります。ただし、Doris はローカルキャッシュなどの仕組みによって性能低下を最小限に抑えます。