削除の概要
Apache Dorisでは、大規模データ分析シナリオにおけるユーザーの柔軟なニーズを満たすために、削除操作はデータの管理とクリーニングにとって不可欠です。
Dorisは、DELETE文、delete sign、パーティション削除、全テーブル削除、および一時パーティションを使用したatomic overwriteを含む、さまざまな削除機能を提供します。以下のセクションでは、各機能について詳しく説明します:
DELETE文
DELETE文はデータを削除するために最もよく使用される方法で、すべてのテーブルモデルをサポートしています。ユーザーは特定の条件を満たすデータを削除するために使用できます。
DELETE文の構文は以下の通りです:
DELETE FROM table_name WHERE condition;
DELETE文を使用すればほとんどの削除ニーズに対応できますが、一部のシナリオでは最も効率的ではない場合があります。様々な削除要件に柔軟かつ効率的に対処するため、Dorisでは以下の方法も提供しています。
Truncate Partition
Dorisでは、日付パーティションやその他の方法を通じてデータを管理することが一般的です。多くのユーザーは最近の期間(例:7日間)のデータのみを保持する必要があります。有効期限が切れたデータパーティションについては、truncate partition機能を使用して効率的な削除が可能です。
DELETE文と比較して、truncate partitionはいくつかのパーティションメタデータを変更するだけで削除を完了できるため、このシナリオでは最適な方法です。
パーティション削除の構文は以下の通りです:
TRUNCATE TABLE tbl PARTITION(p1, p2);
テーブルの切り詰め
テーブルの切り詰めは、オフライン分析シナリオでデータを再実行する際など、テーブルの構造を保持しながら迅速にテーブルをクリアするのに適しています。
完全なテーブル切り詰めの構文は以下の通りです:
TRUNCATE TABLE table_name;
Delete Sign
データ削除は、データ更新の一種と見なすことができます。そのため、更新機能を持つプライマリキーモデル(Unique Key)では、ユーザーはdelete sign機能を使用して、データ更新として削除操作を実行できます。
例えば、CDCデータ同期シナリオでは、CDCプログラムはDELETE操作のbinlogにdelete signをマークできます。このデータがDorisに書き込まれると、対応するプライマリキーが削除されます。
この方法は、大量のプライマリキーのバッチ削除を実行でき、DELETE文よりも効率的です。
delete signは高度な機能であり、これまでの方法と比較して使用がより複雑です。詳細な使用方法については、ドキュメントBatch Deletionを参照してください。
Temporary Partitionsを使用したAtomic Overwrite
場合によっては、ユーザーはパーティションのデータを書き換えたいことがあります。しかし、データを削除してからロードする場合、データが利用できない期間が発生します。この場合、ユーザーはまず対応するtemporary partitionを作成し、新しいデータをtemporary partitionにロードしてから、元のパーティションをアトミックに置き換えることができます。詳細な使用方法については、ドキュメントAtomic Table Replacementを参照してください。
注意事項
- 削除操作は新しいデータバージョンを生成するため、頻繁な削除はバージョン数を増加させ、クエリパフォーマンスに影響を与える可能性があります。
- 削除されたデータは、マージと圧縮が完了するまでストレージを占有し続けるため、削除操作自体では即座にストレージ使用量は削減されません。