Поделиться через


Записи таблицы .delete — команда обратимого удаления

Чтобы обратимое удаление отдельных записей без системы гарантировать, что артефакты хранилища, содержащие эти записи, также удаляются, используйте следующую команду. Эта команда помечает записи как удаленные, но не обязательно удаляет данные из артефактов хранилища. Дополнительные сведения см. в статье "Обратимое удаление".

Чтобы удалить отдельные записи с помощью системы, гарантирует, что артефакты хранилища, содержащие эти записи, также удаляются, см. в разделе "Очистка данных".

Синтаксис

.delete[async] table TableName records [with ( propertyName = propertyValue [, ...]] <| )Предикат

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
async string Если задано, указывает, что команда выполняется в асинхронном режиме.
TableName string ✔️ Имя таблицы, из которой необходимо удалить записи.
propertyName, propertyValue string Разделенный запятыми список пар свойств "ключ-значение". См . поддерживаемые свойства.
Предикат string ✔️ Предикат, возвращающий записи для удаления, который указывается в качестве запроса. См. примечание.

Примечание.

Следующие ограничения применяются к предикату:

  • Предикат должен иметь по крайней мере один where оператор.
  • Предикат может использовать только следующие операторы: extendwhere и project.
  • Предикат не может использовать externaldata.

Поддерживаемые свойства

Имя. Тип Описание
whatif bool Если trueвозвращает количество записей, которые будут удалены в каждом сегменте, без фактического удаления записей. Значение по умолчанию — false.

Возвраты

Выходные данные команды содержат сведения о том, какие экстенты были заменены.

Пример: удаление записей заданного пользователя

Чтобы удалить все записи, содержащие данные определенного пользователя, выполните следующие действия.

.delete table MyTable records <| MyTable | where UserId == 'X'

Пример. Проверьте, сколько записей будет удалено из таблицы

Чтобы определить количество записей, которые будут удалены операцией без фактического их удаления, проверьте значение в столбце RecordsMatchPredicate при выполнении команды в whatif режиме:

.delete table MyTable records with (whatif=true) <| MyTable | where UserId == 'X'

.delete материализованные записи представления — команда обратимого удаления

При выполнении обратимого удаления в материализованных представлениях применяются те же понятия и ограничения.

Синтаксис — материализованные представления

.delete[async] materialized-view MaterializedViewName [with ( propertyName records = propertyValue [, ...]] <| )Предикат

Дополнительные сведения о соглашениях синтаксиса.

Параметры — материализованные представления

Имя. Type Обязательно Описание
async string Если задано, указывает, что команда выполняется в асинхронном режиме.
MaterializedViewName string ✔️ Имя материализованного представления, из которого удаляются записи.
propertyName, propertyValue string Разделенный запятыми список пар свойств "ключ-значение". См . поддерживаемые свойства.
Предикат string ✔️ Предикат, возвращающий записи для удаления. Указан в качестве запроса.

Примечание.

Те же ограничения предиката, упомянутые для таблицы, применяются здесь. Обратимое удаление может завершиться ошибкой в случае конфликтов с процессом материализации, выполняемым в фоновом режиме. Повторная попытка операции может помочь в этом случае. Чтобы избежать конфликтов, можно отключить материализованное представление перед выполнением обратимого удаления и повторно включить его после завершения операции. Использование функции materialized_view() запрещено в предикате.

Поддерживаемые свойства — материализованные представления

Имя. Тип Описание
whatif bool Если trueвозвращает количество записей, которые будут удалены в каждом сегменте, без фактического удаления записей. Значение по умолчанию — false.

Пример — материализованные представления

Чтобы удалить все материализованные записи представления, содержащие данные заданного пользователя:

.delete materialized-view MyMaterializedView records <| MyMaterializedView | where UserId == 'X'

Пример. Проверьте, сколько записей будет удалено из материализованного представления

Чтобы определить количество записей, которые будут удалены операцией без фактического их удаления, проверьте значение в столбце RecordsMatchPredicate во время выполнения команды в whatif режиме:

.delete materialized-view MyMaterializedView records with (whatif=true) <| MyMaterializedView | where UserId == 'X'