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


Команда .drop экстентов

Область применения: ✅Microsoft Fabric✅Azure Data Explorer

Удаляет экстенты из указанной базы данных или таблицы.

Эта команда имеет несколько вариантов: в одной из них удаляются экстенты, указываются запросом Kusto. В других вариантах экстенты задаются с помощью мини-языка, описанного ниже.

Примечание.

Сегменты данных называются экстентами, и все команды используют "экстент" или "экстенты" в качестве синонима. Дополнительные сведения об экстентах см. в разделе "Экстенты" (сегменты данных).

Внимание

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

Разрешения

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

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

Синтаксис

Удаление экстентов с запросом

.dropextents [whatif] <| Запрос

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

Параметры

Имя (название) Type Обязательно Описание
whatif string При указании экстенты будут сообщаться вместо удаления.
Запрос string ✔️ Результаты этого запроса язык запросов Kusto (KQL) указывают исходные таблицы и идентификаторы экстентов, которые необходимо удалить. Должен возвращать набор записей с столбцами "ExtentId" и "TableName".

Удаление определенного или нескольких экстентов

.dropextents (Имя таблицы ExtentIds) from

Параметры

Имя (название) Type Обязательно Описание
ExtentIds guid ✔️ Один или несколько уникальных идентификаторов, разделенных запятыми, для удаления экстентов.
TableName string Имя таблицы, в которой находится степень удаления.

Удаление экстентов по указанным свойствам

.dropextents [older N ()] (hours | daysTableNameall | tables) [trim by (extentsize | datasize) Size (MBGB | bytes | )] from [limit LimitCount]

Параметры

Имя (название) Type Обязательно Описание
N int ✔️ Удаление экстентов старше N дней/часов.
TableName string Имя таблицы, в которой находится степень удаления
Размер int ✔️ Обрезать данные в базе данных до тех пор, пока сумма экстентов не соответствует требуемому размеру (MaxSize).
LimitCount int ✔️ Применяется к первым экстентам LimitCount .

Команда поддерживает режим эмуляции, который создает выходные данные, как если бы команда выполнялась, но не выполняя ее. Используйте .drop-pretend вместо .drop.

Возвраты

Команда возвращает таблицу со следующими сведениями.

Выходной параметр Тип Описание
ExtentId string ExtentId, который был удален из-за команды
TableName string Имя таблицы, где принадлежит экстент
CreatedOn dateTime Метка времени, содержащая сведения о том, когда экстент был создан изначально

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

Идентификатор экстентов Имя таблицы Создано
43c6e03f-1713-4ca7-a52a-5db8a4e8b87d TestTable 2015-01-12 12:48:49.4298178

Примеры

Удаление определенной экстенты

Используйте идентификатор экстентов, чтобы удалить определенную степень.

.drop extent 609ad1e2-5b1c-4b79-90c0-1dec262e9f46 from Table1

Удаление нескольких экстентов

Используйте список идентификаторов экстентов для удаления нескольких экстентов.

.drop extents (609ad1e2-5b1c-4b79-90c0-1dec262e9f46, 310a60c6-8529-4cdf-a309-fe6aa7857e1d) from Table1

Удаление всех экстентов по времени создания

Удаление всех экстентов, созданных более 10 дней назад, из всех таблиц в базе данных MyDatabase

.drop extents <| .show database MyDatabase extents | where CreatedOn < now() - time(10d)

Удаление некоторых экстентов по времени создания

Удаление всех экстентов в таблицах Table1 и Table2 время создания которого было более 10 дней назад

.drop extents older 10 days from tables (Table1, Table2)

Удаление экстентов с помощью extent_id()

Удалите экстент из таблицы с помощью встроенной extent_id() функции.

.drop extents  <|
    StormEvents
    | where EventId == '66144'
    | summarize by ExtentId = extent_id(), TableName = "StormEvents"

Режим эмуляции: показать, какие экстенты будут удалены командой

Примечание.

Параметр идентификатора экстентов не применяется для этой команды.

.drop-pretend extents older 10 days from all tables

Удаление всех экстентов из TestTable

.drop extents from TestTable

Примечание.

Удаление всех экстентов не обязательно удаляет все данные в таблице, если включен прием потоковой передачи. Чтобы очистить все данные таблицы, используйте .clear table data TestTable.