パーティションの削除
背景
パーティションは、テーブルを最初に PARTITION BY 句で定義するときに指定します。この句には任意のカラムに対する SQL 式を含めることができ、その評価結果によって各行がどのパーティションに送られるかが決まります。
データパーツはディスク上でそれぞれのパーティションに論理的に関連付けられており、個別にクエリできます。以下の例では、posts テーブルを toYear(CreationDate) という式を用いて年ごとにパーティション分割します。行が ClickHouse に挿入されると、この式が各行に対して評価され、対応するパーティションが存在すればそこに振り分けられます (その年の最初の行であれば、そのタイミングでパーティションが作成されます) 。
パーティション式の設定については、パーティション式の設定方法のセクションを参照してください。
ClickHouse では、パーティションは主としてクエリ最適化のテクニックではなく、データ管理機能として捉えるべきです。キーに基づいてデータを論理的に分割することで、各パーティションに対して (たとえば削除などの) 操作を個別に実行できます。これにより、ユーザーはパーティション、ひいてはそのサブセットを、時系列に応じて、あるいはデータの有効期限を設定する/クラスタから効率的に削除する目的で、ストレージ階層間で効率的に移動できるようになります。
パーティションの削除
ALTER TABLE ... DROP PARTITION は、パーティション全体を削除するためのコスト効率の高い方法です。
このクエリはパーティションを非アクティブとしてタグ付けし、約 10 分後にデータを完全に削除します。このクエリはレプリケーションされており、すべてのレプリカ上のデータを削除します。
次の例では、関連するパーティションをドロップすることで、先ほどのテーブルから 2008 年の投稿を削除します。