エクステント (データ シャード)
テーブルは、 データ シャードまたは データ シャードにパーティション分割されます。 各エクステントは、作成時刻やオプションのタグなどのデータとメタデータを含むテーブルの水平セグメントです。 これらすべてのエクステントの和集合には、テーブルのデータセット全体が含まれます。 エクステントはクラスター内のノード間で均等に分散され、パフォーマンスを最適化するためにローカル SSD とメモリの両方にキャッシュされます。
エクステントは不変です。つまり、クエリを実行したり、別のノードに再割り当てしたり、テーブルから削除することはできますが、変更することはできません。 データ変更は、新しいエクステントを作成し、古いエクステントを新しいエクステントとトランザクション的にスワップすることによって行われます。 エクステントの不変性は、堅牢性の向上や以前のスナップショットへの簡単な復帰などの利点を提供します。
エクステントは、列に物理的に配置されたレコードのコレクションを保持し、データの効率的なエンコードと圧縮を可能にします。 クエリの効率を維持するために、構成されたマージ ポリシーとシャーディング ポリシーに従って、より小さなエクステントが大きなエクステントにマージ。 エクステントをマージすると、管理オーバーヘッドが削減され、インデックスの最適化と圧縮の向上につながります。
一般的なエクステント のライフサイクルは次のとおりです。
- インジェスト操作によってエクステントが作成されます。
- エクステントは他のエクステントとマージされます。
- マージされたエクステント (場合によっては、その系列を他のエクステントに追跡するエクステント) は、最終的に 再入ポリシーが原因で削除されます。
エクステントの作成時間
エクステントごとに 2 つの datetime 値 ( MinCreatedOn
と MaxCreatedOn
) が追跡されます。 これらの値は、最初は同じですが、エクステントが他のエクステントとマージされるときに変更される可能性があります。 エクステントが他のエクステントとマージされると、新しい値はマージされたエクステントの元の最小値と最大値に従います。
エクステントの作成時間は、次の目的で使用されます。
- 保持: 前に作成したエクステントは、先ほど削除されます。
- キャッシュ: 最近作成されたエクステントは、 hot キャッシュに保持されます。
- サンプリング: take などのクエリ操作を使用する場合は、最近のエクステントが推奨されます。
エクステントの作成時間を上書きするには、データ インジェスト プロパティで代替creationTime
を指定。 これは、データを再読み込みするが、遅れて到着したかのように表示したくない場合など、保持目的に役立ちます。
Note
時間に基づいてエクステントを削除する計算では、マージされたエクステント内の最新のエクステントの作成時間が使用されます。