Команда .move extents

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

Примечание

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

Разрешения

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

Ограничения

  • Как исходная, так и целевая таблицы должны находиться в контекстной базе данных.
  • Все столбцы в исходной таблице должны существовать в целевой таблице с одинаковыми именами и типами данных.
  • Если целевая таблица является исходной таблицей материализованного представления, команда может завершиться ошибкой, так как материализованное представление не будет обрабатывать записи в перемещенных экстентах. Дополнительные сведения см. на странице ограничений материализованных представлений . Эту ошибку можно обойти, задав новое время приема во время команды перемещения. См. setNewIngestionTime раздел Поддерживаемые свойства.

Синтаксис

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

.move[async] extentstableallfromsourceTableNametotableDestinationTableName [ with(PropertyName=PropertyValue [, ...])]

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

.move [async] extentsfromtableSourceTableNametotableDestinationTableName [ with(PropertyName=PropertyValue [, ...])] (GUID [, ...] )

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

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

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

Параметры

Имя Тип Обязательно Описание
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 operation details .

Примеры

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

Переместить все экстенты в таблице 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-a000-e62eb41592df