Записи таблицы .delete — команда обратимого удаления
Область применения: ✅Azure Data Explorer
Чтобы обратимое удаление отдельных записей без системы гарантировать, что артефакты хранилища, содержащие эти записи, также удаляются, используйте следующую команду. Эта команда помечает записи как удаленные, но не обязательно удаляет данные из артефактов хранилища. Дополнительные сведения см. в статье "Обратимое удаление".
Чтобы удалить отдельные записи с помощью системы, гарантирует, что артефакты хранилища, содержащие эти записи, также удаляются, см. в разделе "Очистка данных".
Синтаксис
.delete
[async
] table
TableName records
[with
(
propertyName =
propertyValue [,
...]] <|
)
Предикат
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
async |
string |
Если задано, указывает, что команда выполняется в асинхронном режиме. | |
TableName | string |
✔️ | Имя таблицы, из которой необходимо удалить записи. |
propertyName, propertyValue | string |
Разделенный запятыми список пар свойств "ключ-значение". См . поддерживаемые свойства. | |
Предикат | string |
✔️ | Предикат, возвращающий записи для удаления, который указывается в качестве запроса. См. примечание. |
Примечание.
Следующие ограничения применяются к предикату:
- Предикат должен иметь по крайней мере один
where
оператор. - Предикат может использовать только следующие операторы:
extend
where
и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'