メインコンテンツまでスキップ
バージョン: 26.x

削除の概要

Apache Dorisでは、delete操作は大規模データ分析シナリオにおけるユーザーの柔軟なニーズに対応するため、データの管理とクリーニングに不可欠です。

Dorisは、DELETE文、delete sign、パーティション削除、Table全体削除、および一時パーティションを使用したatomic overwriteを含む、様々なdelete機能を提供しています。以下のセクションでは、各機能について詳しく説明します:

DELETE文

DELETE文はデータ削除で最も一般的に使用される方法で、すべてのTableモデルをサポートしています。ユーザーは特定の条件を満たすデータを削除するために使用できます。

DELETE文の構文は以下の通りです:

DELETE FROM table_name WHERE condition;

DELETE文はほとんどの削除ニーズに対応できますが、一部のシナリオでは最も効率的ではない場合があります。様々な削除要件に柔軟かつ効率的に対応するため、Dorisでは以下の方法も提供しています。

Truncate パーティション

Dorisでは、日付パーティションやその他の方法を通じてデータを管理することが一般的です。多くのユーザーは最近の期間(例:7日間)のデータのみを保持する必要があります。期限切れのデータパーティションに対しては、truncate partition機能を使用して効率的な削除を行うことができます。

DELETE文と比較して、truncate partitionは一部のパーティションメタデータの変更のみで削除を完了できるため、このシナリオにおいて最適な方法です。

パーティション削除の構文は以下の通りです:

TRUNCATE TABLE tbl PARTITION(p1, p2);

Truncate Table

Truncate tableは、オフライン分析シナリオでデータをやり直す場合など、Tableの構造を保持しながら迅速にTableをクリアするのに適しています。

完全なtruncate tableの構文は以下の通りです:

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を参照してください。

注意事項

  1. 削除操作は新しいデータバージョンを生成するため、頻繁な削除はバージョン数を増加させ、クエリパフォーマンスに影響を与える可能性があります。
  2. 削除されたデータは、マージと圧縮が完了するまでストレージを占有し続けるため、削除操作自体がストレージ使用量を即座に削減することはありません。