テーブルからのデータの削除は、いくつかの方法でサポートされています。 次の情報を使用して、ユース ケースに最適な削除方法を選択してください。
| ユース ケース | 考慮事項 | メソッド |
|---|---|---|
| テーブルからすべてのデータを削除します。 | .clear table data コマンドの使用 |
|
| 古いデータを定期的に削除します。 | 自動削除ソリューションが必要な場合に使用します。 | 保持ポリシーを選択する |
| エクステントごとに特定のデータを一括削除します。 | エキスパート ユーザーの場合にのみ使用します。 | .drop extents コマンドの使用 |
| レコードの内容に基づいてレコードを削除します。 | - 削除されたレコードを含むストレージ成果物は必ずしも削除されません。 - 削除されたレコードは (保持または回復可能性の設定に関係なく) 回復できません。 - レコードをすばやく削除する必要がある場合に使用します。 |
論理的な削除の使用 |
| レコードの内容に基づいてレコードを削除します。 | - 削除されたレコードを含むストレージ成果物が削除されます。 - 削除されたレコードは (保持または回復可能性の設定に関係なく) 回復できません。 - 大量のシステム リソースと完了までの時間が必要です。 |
消去の使用 |
| ユース ケース | 考慮事項 | メソッド |
|---|---|---|
| テーブルからすべてのデータを削除します。 | .clear table data コマンドの使用 |
|
| 古いデータを定期的に削除します。 | 自動削除ソリューションが必要な場合に使用します。 | 保持ポリシーを選択する |
| エクステントごとに特定のデータを一括削除します。 | エキスパート ユーザーの場合にのみ使用します。 | .drop extents コマンドの使用 |
| レコードの内容に基づいてレコードを削除します。 | - 削除されたレコードを含むストレージ成果物は必ずしも削除されません。 - 削除されたレコードは (保持または回復可能性の設定に関係なく) 回復できません。 - レコードをすばやく削除する必要がある場合に使用します。 |
論理的な削除の使用 |
以下のセクションでは、さまざまな削除方法について説明します。
テーブル内のすべてのデータを削除する
テーブル内のすべてのデータを削除するには、.clear table data コマンドを使用します。 このコマンドは、テーブルからすべてのデータを削除する最も効率的な方法です。
構文:
.clear table <TableName> data
アイテム保持ポリシーを使用してデータを削除する
保持ポリシーに基づいてデータを自動的に削除します。 データベースまたはテーブル レベルでアイテム保持ポリシーを設定できます。 削除がいつ行われるかは保証されませんが、保持期間の前に削除されることはありません。 これは、古いデータを削除するための効率的で便利な方法です。
90 日間のリテンション期間が設定されているデータベースまたはテーブルがあるとします。 60日間のデータのみが必要な場合は、次のように古いデータを削除します。
.alter-merge database <DatabaseName> policy retention softdelete = 60d
.alter-merge table <TableName> policy retention softdelete = 60d
エクステントをドロップしてデータを削除する
エクステント (データシャード)とは、データが格納される内部構造です。 各エクステントは、何百万ものレコードを保持できます。 エクステントは、個別に削除することも、ドロップ エクステントのコマンドを使用してグループとして削除することもできます。
例
テーブル内のすべての行を削除することも、特定のエクステントのみを削除することもできます。
テーブル内のすべての行を削除する:
.drop extents from TestTable特定のエクステントを削除する:
.drop extent e9fac0d2-b6d5-4ce3-bdb4-dea052d13b42
個々の行を削除する
消去と論理的な削除の両方を使用して、個々の行を削除できます。 論理的な削除では、削除するレコードを含むストレージ成果物が必ずしも削除されるとは限りません。消去では、このようなストレージ成果物がすべて削除されます。
どちらの方法でも、保持または回復性の設定に関係なく、削除されたレコードは回復されません。 削除プロセスは最終処理であり、元に戻すことはできません。
論理的な削除
soft deleteでは、データは必ずしもストレージ成果物から削除されるとは限りません。 このメソッドでは、一致するすべてのレコードが削除済みとしてマークされるため、クエリでフィルター処理され、重要なシステム リソースは必要ありません。
消去
purgeでは、1 つ以上のレコードを削除するエクステントは、それらのレコードが存在しない新しいエクステントに置き換えられます。 この削除プロセスは即時ではなく、大量のシステム リソースを必要とし、完了までに 1 日かかることがあります。
論理的な削除 を使用して、個々の行を削除できます。 データは必ずしもストレージ成果物から削除されるとは限りません。 論理的な削除は、保持または回復可能性の設定に関係なく、削除されたレコードが回復されないようにします。 削除プロセスは最終処理であり、元に戻すことはできません。 このメソッドでは、一致するすべてのレコードが削除済みとしてマークされるため、クエリでフィルター処理され、重要なシステム リソースは必要ありません。