ADVERTISEMENT

【Salesforce】一括削除してよいデータを判断したい場合の注意点

【Salesforce】一括削除してよいデータを判断したい場合の注意点
🛡️ 超解決

Salesforceでデータの一括削除を検討する際、どのデータを残し、どのデータを削除してよいか迷われることはありませんか?不要なデータを削除することでシステムのパフォーマンスが向上する一方、誤って必要なデータまで削除してしまうリスクも伴います。本記事では、一括削除してよいデータを適切に判断するための注意点を、具体的な確認手順とともに解説します。事前に確認すべき項目を押さえて、安全かつ効率的なデータ整理を実現しましょう。

【要点】この記事で確認すること

  • 最初に見る場所: 削除対象データの参照関係(子レコードの有無)と、最終更新日や所有者の情報を確認する。
  • 切り分けの軸: データの種類(マスタデータ・トランザクションデータ)、業務的重要性、他のオブジェクトとのリンク状況で判断する。
  • 注意点: 会社PCの設定変更は行わず、Sandbox環境でテストしてから本番に適用する。必ず事前にバックアップを取得する。

ADVERTISEMENT

一括削除を安全に行うための基本ルール

削除権限の確認

一括削除を実行するには、適切なユーザ権限が必要です。標準の「データ削除」権限または「すべてのデータの編集」権限が付与されているアカウントでのみ削除可能です。権限が不足している場合はエラーが発生します。事前に管理者へ権限を確認し、必要に応じて一時的に権限を付与してもらってください。特に、一般ユーザでは一括削除ができない場合が多いため、注意が必要です。

事前のバックアップ取得

削除前に必ずデータのバックアップを取得しましょう。Salesforceには「データエクスポート」機能があり、週単位または月単位でバックアップをスケジュールできます。また、Data Loaderを使ってCSV形式でエクスポートすることも可能です。バックアップがない状態で削除を実行すると、誤削除後の復旧が困難になります。特に、ごみ箱に残る期間は15日間(Enterprise Edition以上では30日間)であるため、それを過ぎると復旧できなくなることを理解しておきましょう。

Sandbox環境でのテスト

本番環境で一括削除を実行する前に、Sandbox(開発・テスト環境)で同様の操作を行い、影響を確認することを推奨します。Sandboxは本番データのコピーではない場合もあるため、テスト用のデータセットで十分に検証してください。特に、複数のオブジェクトにまたがる削除や大量レコードの削除は、予期せぬエラーを引き起こす可能性があるため、事前テストが重要です。


データの種類別・判断基準

削除してよいデータかどうかを判断するには、データの種類と業務上の重要性を考慮する必要があります。以下の表に、主な判断基準をまとめました。

判断基準 削除してよいデータの特徴 削除すべきでないデータの特徴
参照関係 他のオブジェクトから参照されていない孤立データ 子レコードを持つ親データ、または外部システムから参照されているデータ
最終更新日 数年以上更新がなく、履歴としても不要と判断できるデータ 直近の更新があるデータ、または将来の予定に関連するデータ
データの種類 テストデータ、重複データ、明らかなミスデータ マスタデータ(顧客、商品など)、過去の取引記録、コンプライアンス上必要なデータ
所有者の状況 退職者や離脱者が所有しており、引き継ぎ完了済みのデータ 現役社員が現在使用中のデータ、または共有設定が残っているデータ

マスタデータとトランザクションデータの区別

マスタデータ(顧客、商品、価格表など)は通常、長期にわたって参照されるため、削除には慎重な判断が必要です。一方、トランザクションデータ(商談、ケース、タスクなど)は過去の履歴として保存するか、一定期間後に削除しても問題ない場合があります。ただし、トランザクションデータでもレポートやダッシュボードの基盤となっている場合は、削除により集計値に影響が出るため注意しましょう。

カスタムオブジェクトのデータ

組織で作成したカスタムオブジェクトのデータは、そのオブジェクトの用途によって判断が異なります。例えば、取引先責任者に紐づくカスタムオブジェクトであれば、紐づく取引先の削除と同時に削除すべきかどうかを検討します。カスタムオブジェクトが他のオブジェクトとルックアップ関係を持つ場合、削除時に参照整合性エラーが発生しないか確認してください。


参照関係と外部キーの影響を理解する

参照整合性の確認

Salesforceでは、親レコードを削除しようとすると、子レコードの有無によってエラーになることがあります。特に、ルックアップ関係(参照関係)が設定されている場合、親レコードの削除は子レコードの参照先が失われるため、削除前に子レコードの処理を決める必要があります。子レコードも一緒に削除するか、参照を更新するかを選択します。大量データの一括削除では、このような関係を事前に洗い出すことが重要です。

カスケード削除の有無

標準オブジェクトの中には、親を削除すると子も自動的に削除されるカスケード削除が設定されているものがあります。例えば、商談と商談品目はカスケード削除されます。一方、取引先と取引先責任者はカスケード削除されません。一括削除を実行する前に、削除対象のオブジェクトにカスケード削除が設定されているかどうかを、オブジェクトマネージャで確認しておきましょう。

参照関係でよくある失敗として、親レコードだけを削除し、子レコードが孤立してしまうケースがあります。孤立した子レコードは、後で参照エラーの原因になります。事前に、削除対象データに紐づく子レコードがないかどうかをレポートで確認してください。もし子レコードがある場合は、それらも含めて一括削除するか、別途対応を検討します。


復旧可能性とバックアップの確認方法

ごみ箱の仕様を把握する

Salesforceのごみ箱には、削除されたレコードが一定期間保持されます。Editionによって期間が異なり、Professional Editionでは15日間、Enterprise Edition以上では30日間です。ごみ箱から復元可能なのは、この期間内のみです。また、大量データの一括削除では、ごみ箱の容量を超えると古いレコードから自動的に完全削除される場合もあります。重要なデータは、削除前にバックアップとしてエクスポートしておくことを強く推奨します。

データエクスポート機能の設定

Salesforceの設定メニューから「データエクスポート」を利用すると、全データまたは特定オブジェクトのデータをCSV形式でダウンロードできます。週次または月次のスケジュールエクスポートを設定しておけば、定期的なバックアップが自動化されます。一括削除を実施する前には、念のため最新のエクスポートを手動で実行し、そのデータを安全な場所に保存しておきましょう。

もし誤って削除してしまった場合、ごみ箱から復元できるかどうかをまず確認します。ごみ箱にない場合は、最後のバックアップからデータインポートで復旧する方法もあります。ただし、復旧作業には時間がかかるため、事前のバックアップが何よりも重要です。


一括削除の実施手順(Data Loaderを使用)

ここでは、Data Loaderを使って一括削除を実行する手順を説明します。この手順は管理者または適切な権限を持つユーザが行うことを前提としています。

  1. データをエクスポートする:削除対象のデータをCSV形式でエクスポートします。Data Loaderで「エクスポート」を選択し、必要なオブジェクトと条件を指定して保存します。このファイルはバックアップとしても使用します。
  2. 削除対象を絞り込むレポートを作成する:Salesforceのレポート機能を使って、削除したい条件に合致するレコードをリストアップします。例えば、「最終更新日が2019年以前」「ステータスが完了」などの条件で絞り込みます。レポート結果をCSVにエクスポートし、削除対象リストを作成します。
  3. 参考情報を確認する:手順2で作成したCSVに、レコードID(Id)が含まれていることを確認します。Data Loaderでの削除にはIDが必要です。また、親子関係がある場合は、削除順序を考慮して2つのリストに分ける必要がある場合もあります。
  4. Data Loaderで削除ジョブを設定する:Data Loaderを起動し、「削除」操作を選択します。オブジェクトを指定し、削除対象のCSVファイルをアップロードします。マッピング画面では、CSVの列とSalesforceのフィールド(主にId)を正しくマッピングします。
  5. 削除のテスト実行を行う:本番環境で実行する前に、Sandbox環境で同じデータを使用してテスト削除を実行します。エラーが発生しないか、想定通りのレコードが削除されるかを確認します。問題がなければ、本番環境で実行します。
  6. 削除結果を確認する:削除ジョブが完了したら、成功数とエラー数を確認します。エラーがあった場合は、エラーファイルをダウンロードして原因を特定します。また、削除後にレポートを再実行し、対象レコードが正しく削除されたことを確認します。

Data Loader以外にも、Salesforceの「一括削除」機能(設定>データ>一括削除のデータ)を使用する方法もあります。こちらは画面上で操作できるため、より直感的ですが、削除可能なレコード数に制限がある場合があります(通常は1ジョブあたり最大10万件)。大量データの場合は、Data Loaderの使用を検討してください。


よくある失敗パターンと回避策

誤って全レコードを削除してしまう

最も深刻な失敗は、条件指定を誤って全レコードを削除してしまうことです。これを防ぐには、削除前に必ず削除対象のレコード数を確認し、レポートで絞り込んだ結果が想定と一致するか確認します。また、Data Loaderを使用する際は、CSVファイルに含まれるレコード数と、実際に削除したいレコード数が一致していることを確認してください。

参照されているデータを削除してエラーになる

親レコードを削除しようとしたときに、子レコードが存在するためにエラーが発生することがあります。このような場合は、子レコードも含めて削除するか、子レコードの参照を別の親に変更してから削除します。また、一括削除の前に、すべての関連レコードを洗い出すレポートを作成して、影響範囲を把握しておくことが重要です。

権限不足によるエラー

Data Loaderで削除を実行する際に「権限がありません」というエラーが出る場合があります。これは、使用しているユーザが削除権限を持っていない、または共有設定で削除が制限されていることが原因です。管理者に連絡して権限を確認してもらい、必要に応じて権限セットを追加してもらいましょう。

大量データの削除でタイムアウトやガバナ制限に達する

一度に大量のレコードを削除しようとすると、Salesforceのガバナ制限(APIコール数、バッチサイズなど)に引っかかり、処理が中断されることがあります。このような場合は、削除するレコードを分割して、複数回に分けて実行します。Data Loaderでは、CSVファイルを分割するか、削除ジョブのバッチサイズを調整して対応してください。


よくある質問

Q1: 一括削除したデータは、ごみ箱から完全に復元できますか?

ごみ箱に残っている間は復元可能です。ただし、ごみ箱の保存期間(15日または30日)を過ぎると自動的に完全削除されます。また、ごみ箱の容量が上限に達した場合、古いレコードから上書きされて復元できなくなる可能性もあります。確実に復元できるとは限らないため、削除前のバックアップが重要です。

Q2: 一度に削除できるレコード数に制限はありますか?

Data Loaderを使用する場合、1回のジョブで削除できるレコード数に明確な上限はありませんが、ガバナ制限(APIリクエスト数、バッチサイズ)に依存します。一般的には、1万件から10万件程度を目安に分割して実行することを推奨します。一括削除機能(UI)では、ジョブあたり最大10万件の制限があります。

Q3: 削除を実行した後、すぐに気づいた場合はどうすればいいですか?

削除直後であれば、ごみ箱から復元できる可能性が高いです。画面右上の「ごみ箱」アイコンから復元したいレコードを選択し、「復元」ボタンをクリックします。復元できない場合は、エクスポートしておいたバックアップからData Loaderを使ってインポートすることで復旧できます。

Q4: 一般ユーザでもData Loaderを使って一括削除できますか?

一般ユーザでも、削除権限が付与されていれば可能です。ただし、多くの組織では管理者のみに削除権限を付与しているため、事前に管理者に確認し、必要に応じて一時的に権限を付与してもらってください。また、Data Loaderのインストールや設定はPCの管理者権限が必要な場合もあるため、会社のITポリシーに従いましょう。


まとめ

Salesforceで一括削除してよいデータを判断するには、参照関係、最終更新日、データの種類、所有者の状況を総合的に確認する必要があります。事前のバックアップとSandboxでのテストは、誤削除を防ぐために欠かせない手順です。削除を実行する際は、権限とガバナ制限に注意し、必要に応じてデータを分割して処理しましょう。これらの注意点を守ることで、安全かつ効率的にデータ整理を進めることができます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

ADVERTISEMENT