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


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

Эта команда выполняется в контексте определенной базы данных. Он перемещает указанные экстенты из исходной таблицы в целевую таблицу.

Примечание.

  • Дополнительные сведения об экстентах см. в обзоре экстентов (сегментов данных).
  • Команда .move завершается или завершается сбоем для всех исходных экстентов. Нет частичных результатов.

Разрешения

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

Ограничения

Синтаксис

Перемещение всех экстентов:

.move[async] extents all table from sourceTableName DestinationTableName table to [ with(PropertyName = PropertyValue [, ...]])

Перемещение экстентов, указанных идентификатором:

.move[async] extents table from SourceTableName DestinationTableName to table [ with(PropertyName = PropertyValue [, ...]] ( )GUID [, ...])

Перемещение экстентов, указанных результатами запроса:

.move[async] extents to table DestinationTableName [ with(PropertyName = PropertyValue [,...]] <| )Запрос

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

Параметры

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

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

Имя свойства Тип Обязательно Описание
setNewIngestionTime bool Если задано значение true, новое время приема назначается всем записям в перемещаемых экстентах. Это полезно, если записи должны обрабатываться рабочими нагрузками, зависящими от курсоров базы данных, таких как материализованные представления и непрерывный экспорт данных.
extentCreatedOnFrom datetime ✔️ Применить к экстентам, созданным после этого момента времени.
extentCreatedOnTo datetime ✔️ Применяется к экстентам, созданным до этого момента времени.

Примечание.

Для повышения производительности задайте extentCreatedOnFrom и extentCreatedOnTo параметры в наименьший возможный диапазон.

Возвраты

При синхронном выполнении команды возвращается таблица со следующей схемой.

Выходной параметр Тип Описание
OriginalExtentId string Уникальный идентификатор (GUID) для исходной экстенты в исходной таблице, которая была перемещена в целевую таблицу.
ResultExtentId string Уникальный идентификатор (GUID) для области результатов, которая была перемещена из исходной таблицы в целевую таблицу. При сбое — "Сбой".
Сведения string Включает сведения о сбое, если операция завершается ошибкой.

При асинхронном выполнении команды возвращается идентификатор операции (GUID). Отслеживайте состояние операции с помощью команды .show operations и извлеките результаты успешного выполнения с помощью команды сведений о операции .show.

Примеры

Перемещение всех экстентов

Перемещение всех экстентов в таблицу MyTable MyOtherTable:

.move extents all from table MyTable to table MyOtherTable

Перемещение двух конкретных экстентов в указанном диапазоне времени создания

Перемещение двух конкретных экстентов (по их идентификаторам экстентов) в заданном диапазоне времени создания из таблицы в таблицу MyTable MyOtherTable:

.move extents from table MyTable to table MyOtherTable with (extentCreatedOnFrom=datetime(2023-03-10), extentCreatedOnTo=datetime(2023-03-12)) (AE6CD250-BE62-4978-90F2-5CB7A10D16D7,399F9254-4751-49E3-8192-C1CA78020706)

Перемещение всех экстентов в заданном диапазоне времени создания из определенных таблиц

Переместите все экстенты в заданном диапазоне времени создания из определенных таблиц (MyTable1, MyTable2) в таблицу MyOtherTable:

.move extents to table MyOtherTable with (extentCreatedOnFrom=datetime(2023-03-10), extentCreatedOnTo=datetime(2023-03-12)) <| .show tables (MyTable1,MyTable2) extents

Перемещение всех экстентов с заданным временем приема

.move extents all from table MyTable to table MyOtherTable with (setNewIngestionTime=true)

Пример полученных результатов

OriginalExtentId ResultExtentId Сведения
e133f050-a1e2-4dad-8552-1f5cf47cab69 0d96ab2d-9dd2-4d2c-a45e-b24c65aa6687
cdbeb35b-87ea-499f-b545-defbae091b57 a90a303c-8a14-4207-8f35-d8ea94ca45be
4fcb4598-9a31-4614-903c-0c67c286da8c 97aafea1-59ff-4312-b06b-08f42187872f
2dfdef64-62a3-4950-a130-96b5b1083b5a 0fb7f3da-5e28-4f09-a00-e62eb41592df