.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 |
✔️ | 要移動範圍之數據表的名稱。 |
PropertyName、 PropertyValue | 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 作業詳細數據命令擷取成功執行的結果。
範例
移動所有範圍
將資料表中的所有範圍移至資料表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 |