Удаление данных в Salesforce

Чем больше база данных, тем сложнее её содержать. Чем больше записей в таблице, тем дороже (в плане ресурсов) обходится каждый отдельный запрос к ней. Да и покупка дополнительного storage у Salesforce стоит немалых денег, говорят.
Но если бизнес существует уже много лет, скорее всего далеко не все данные, хранимые в Salesforce, актуальны и нужны. Именно поэтому данные периодически можно и нужно архивировать и/или удалять.

Архивированием, в данном контексте, называется процесс переноса данным с целью освобождения места на диске, но таким образом, чтобы они оставались доступными. Наглядный пример: срок действия некоего контракта истёк и данные о нём просто лежат у вас в организации “мёртвым грузом”, но согласно законодательству эти данные необходимо хранить в течении, скажем, трёх лет. В такой ситуации имеет смысл выгрузить данные из Salesforce в файл, на другой сервер (Heroku, например) или куда-нибудь ещё, и удалить их в самой Salesforce организации, освободив место. Грамотная стратегия архивирования данных позволяет более эффективно использовать дисковое пространство, выделенное для организации, и избегать проблем с его нехваткой.

Удаление данных в Salesforce бывает двух видов: мягкое и твёрдое soft и hard. У каждой записи, независимо от объекта, есть стандартный чекбокс isDeleted. Soft-deleted запись становится тогда, когда вышеупомянутый чекбокс выставлен в true. Запись всё ещё существует и всё также занимает место. Из Salesforce UI это видно, как запись, отправленная в корзину. Она может быть удалена пользователем посредством очистки корзины. Автоматическое удаление такой записи происходит в случае переполнения корзины или через 15 дней с момента помещения записи в корзину. После полного удаления с организации, запись перестаёт существовать и не занимает дисковое пространство. Такая запись называется hard-deleted.

Для hard удаления больших объемов записей рекомендуется использовать операцию hard delete в Bulk API. Значение в передаваемом теле запроса так и называется “operation” : “hardDelete”. Ссылка на документацию.
Так, записи будут удалены без помещения в корзину. Стоит обратить внимание, что для использования данной фичи у пользователя в профиле должен быть включён Bulk API Hard Delete permission.

2 Likes