パーティションを削除する
背景
パーティショニングは、PARTITION BY
句を使用してテーブルを初めて定義するときに指定されます。この句には、行が送られるパーティションを定義するSQL式を含めることができます。
データパーツは、ディスク上の各パーティションに論理的に関連付けられており、独立してクエリを実行できます。以下の例では、posts
テーブルをtoYear(CreationDate)
の式を使用して年でパーティション化しています。行がClickHouseに挿入されると、この式は各行に対して評価され、結果のパーティションが存在する場合、そのパーティションにルーティングされます(行がその年の最初のものであれば、パーティションが作成されます)。
パーティション式の設定方法については、パーティション式の設定方法のセクションをお読みください。
ClickHouseでは、ユーザーは主にパーティショニングをデータ管理機能と見なすべきであり、クエリ最適化技術としてではありません。キーに基づいてデータを論理的に分離することで、各パーティションは独立して操作でき、例えば削除することができます。これにより、ユーザーはパーティション、つまりサブセットをストレージ階層間で効率的に移動したり、データを期限切れにしたり/クラスターから効率的に削除したりすることが可能になります。
パーティションの削除
ALTER TABLE ... DROP PARTITION
は、全体のパーティションを削除するためのコスト効率の良い方法を提供します。
このクエリはパーティションを非アクティブとしてタグ付けし、約10分でデータを完全に削除します。このクエリはレプリケートされ、すべてのレプリカのデータを削除します。
以下の例では、関連するパーティションを削除することで、以前のテーブルから2008年の投稿を削除します。