削除の概要
ClickHouseでデータを削除する方法はいくつかあり、それぞれ異なる利点とパフォーマンス特性があります。データモデルや削除するデータの量に基づいて、適切な方法を選択する必要があります。
方法 | 構文 | 使用するタイミング |
---|---|---|
軽量削除 | DELETE FROM [table] | 小量のデータを削除する場合に使用します。行はすぐにすべての後続の SELECT クエリからフィルターアウトされますが、最初は内部的に削除されたとマークされるだけで、ディスクからは削除されません。 |
削除ミューテーション | ALTER TABLE [table] DELETE | ディスクからデータを即座に削除する必要がある場合に使用します(例:コンプライアンスのため)。SELECT のパフォーマンスに悪影響を及ぼします。 |
テーブルのトランケート | TRUNCATE TABLE [db.table] | テーブルからすべてのデータを効率的に削除します。 |
パーティションの削除 | DROP PARTITION | パーティションからすべてのデータを効率的に削除します。 |
ClickHouseでデータを削除する異なる方法の概要は以下の通りです。
軽量削除
軽量削除は、行をすぐに削除済みとしてマークし、すべての後続の SELECT
クエリから自動的にフィルターアウトできるようにします。削除された行のその後の削除は自然なマージサイクル中に発生し、I/Oが少なくて済みます。そのため、未指定の期間、データが実際にはストレージから削除されず、削除されたとしてマークされているだけである可能性があります。データを削除したことを保証する必要がある場合は、上記のミューテーションコマンドを考慮してください。