共用方式為


.move extents 命令

適用於: ✅Azure 數據總管

此命令會在特定資料庫的內容中執行。 它會將指定的範圍從源數據表移至目的地數據表。

注意

  • 如需範圍的詳細資訊,請參閱 範圍(數據分區)概觀
  • .move命令會針對所有來源範圍完成或失敗。 沒有部分結果。

權限

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

限制

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

語法

移動所有範圍:

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

移動識別碼指定的範圍:

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

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

.move[async] extents table to DestinationTableName [ with(PropertyName = PropertyValue [,...]] <| )查詢

深入瞭解 語法慣例

參數

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

支援的屬性

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

注意

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

傳回

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

輸出參數 類型 描述
OriginalExtentId string 源數據表中原始範圍的唯一標識碼 (GUID),已移至目的地數據表。
ResultExtentId string 已從源數據表移至目的地數據表之結果範圍的唯一標識碼 (GUID)。 失敗時 - 「失敗」。
詳細資料 string 包含失敗詳細數據,以防作業失敗。

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

範例

移動所有範圍

將資料表中的所有範圍移至資料表MyTableMyOtherTable

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

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

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