.move extents 命令

此命令會在特定資料庫的內容中執行。 其會將指定的延伸區從來源資料表移至目的地資料表。

注意

  • 如需延伸區的詳細資訊,請參閱延伸區 (資料分區) 概觀
  • 所有來源延伸區的 .move 命令都已完成或失敗。 沒有部分結果。

權限

您至少必須具有來源和目的地數據表的數據表 管理員 許可權。

限制

  • 來源和目的地資料表都必須在內容資料庫中。
  • 來源資料表中的所有資料行都應該存在於具有相同名稱和資料類型的目的地資料表中。
  • 如果目的地數據表是 具體化檢視的源數據表,命令可能會失敗,因為具體化檢視不會處理移動範圍中的記錄。 如需詳細數據,請參閱 具體化檢視限制 頁面。 您可以在移動命令期間設定新的擷取時間,以因應此錯誤。 請參閱setNewIngestionTime支持的屬性

Syntax

移動所有範圍:

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

依識別元指定的移動範圍:

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

移動查詢結果所指定的範圍:

.move [async] extentstotableDestinationTableName [ with(PropertyName=PropertyValue [,...])] <|查詢

深入瞭解 語法慣例

參數

名稱 類型 必要 Description
async string 如果指定,命令會以異步方式執行。
SourceTableName string ✔️ 包含要移動之範圍之數據表的名稱。
DestinationTableName string ✔️ 要移動範圍之數據表的名稱。
PropertyNamePropertyValue string 一或多個 支持的屬性
查詢 string ✔️ Kusto 查詢語言 (KQL) 查詢的結果會指定要從中移動的源數據表和範圍識別碼。 應該傳回名為 「ExtentId」 和 「TableName」 資料行的記錄集。

支援的屬性

屬性名稱 類型 必要 Description
setNewIngestionTime bool 如果設定為 true,則會將新的 擷取時間 指派給移動範圍中的所有記錄。 當工作負載應該處理相依於 資料庫數據指標的記錄時,例如 具體化檢視連續數據匯出,這非常有用。
extentCreatedOnFrom datetime ✔️ 套用在此時間點之後建立的範圍。
extentCreatedOnTo datetime ✔️ 套用至在此時間點之前建立的範圍。

注意

為了提升效能,請將 和 extentCreatedOnTo 參數設定extentCreatedOnFrom為最小的可能範圍。

傳回

當命令以同步方式執行時,會傳回具有下列架構的數據表。

輸出參數 類型 描述
OriginalExtentId string 已移至目的地資料表的來源資料表中原始延伸區的唯一識別碼 (GUID)。
ResultExtentId string 已從來源資料表移至目的地資料表的結果延伸區的唯一識別碼 (GUID)。 失敗時 -「已失敗」。
詳細資料 string 如果作業失敗,則包含失敗詳細資料。

當命令以異步方式執行時,會傳回作業標識碼 (GUID) 。 使用 .show operations 命令監視作業的狀態,並使用 .show 作業詳細 數據命令擷取成功執行的結果。

範例

移動所有延伸區

將資料表 MyTable 中的所有延伸區移至資料表 MyOtherTable

.move extents all from table MyTable to table MyOtherTable

在指定的建立時間範圍內移動兩個特定範圍

將兩個特定範圍 (依其範圍識別碼) 從資料表移至資料表MyTableMyOtherTable的指定建立時間範圍:

.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)

從特定數據表移動指定建立時間範圍中的所有範圍

將指定建立時間範圍中的所有範圍從特定資料表 (MyTable1MyTable2) 移至資料表 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