Condividi tramite


Comando .move extents

Questo comando viene eseguito nel contesto di un database specifico. Sposta gli extent specificati dalla tabella di origine alla tabella di destinazione.

Nota

Autorizzazioni

È necessario disporre almeno delle autorizzazioni di amministratore tabella per le tabelle di origine e di destinazione.

Restrizioni

  • Sia le tabelle di origine che di destinazione devono trovarsi nel database di contesto.
  • Tutte le colonne della tabella di origine dovrebbero esistere nella tabella di destinazione con lo stesso nome e tipo di dati.
  • Se la tabella di destinazione è una tabella di origine di una vista materializzata, il comando potrebbe non riuscire perché la vista materializzata non elabora i record negli extent spostati. Per altri dettagli, vedere la pagina delle limitazioni delle visualizzazioni materializzate. È possibile risolvere questo errore impostando un nuovo tempo di inserimento durante il comando di spostamento. Vedere setNewIngestionTime nelle proprietà supportate.

Sintassi

Spostare tutti gli extent:

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

Spostare gli extent specificati dall'ID:

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

Spostare gli extent specificati dai risultati della query:

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

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
async string Se specificato, il comando viene eseguito in modo asincrono.
SourceTableName string ✔️ Nome della tabella contenente gli extent da spostare.
DestinationTableName string ✔️ Nome della tabella in cui spostare gli extent.
PropertyName, PropertyValue string Una o più proprietà supportate.
Query string ✔️ I risultati di questa query Linguaggio di query Kusto (KQL) specificano la tabella di origine e gli ID extent da spostare. Deve restituire un recordset con colonne denominate "ExtentId" e "TableName".

Proprietà supportate

Nome proprietà Type Obbligatorio Descrizione
setNewIngestionTime bool Se impostato su true, viene assegnato un nuovo tempo di inserimento a tutti i record in extent spostati. Ciò è utile quando i record devono essere elaborati dai carichi di lavoro che dipendono dai cursori del database, ad esempio viste materializzate ed esportazione continua dei dati.
extentCreatedOnFrom datetime ✔️ Applicare gli extent creati dopo questo punto nel tempo.
extentCreatedOnTo datetime ✔️ Applicare gli extent creati prima di questo punto nel tempo.

Nota

Per prestazioni migliori, impostare extentCreatedOnFrom e extentCreatedOnTo parametri sull'intervallo più piccolo possibile.

Valori restituiti

Quando il comando viene eseguito in modo sincrono, viene restituita una tabella con lo schema seguente.

Parametro di output Tipo Descrizione
OriginalExtentId string Identificatore univoco (GUID) per l'extent originale nella tabella di origine, spostato nella tabella di destinazione.
ResultExtentId string Identificatore univoco (GUID) per l'extent del risultato spostato dalla tabella di origine alla tabella di destinazione. In caso di errore: "Non riuscito".
Dettagli string Include i dettagli dell'errore, nel caso in cui l'operazione non riesca.

Quando il comando viene eseguito in modo asincrono, viene restituito un ID operazione (GUID). Monitorare lo stato dell'operazione con il comando operazioni .show e recuperare i risultati di un'esecuzione riuscita con il comando .show operation details .

Esempi

Spostare tutti gli extent

Spostare tutti gli extent della tabella nella tabella MyTable MyOtherTable:

.move extents all from table MyTable to table MyOtherTable

Spostare due extent specifici in un intervallo di tempo di creazione specificato

Spostare due extent specifici (in base ai relativi ID extent) in un intervallo di tempo di creazione specificato dalla tabella MyTable alla tabella 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)

Spostare tutti gli extent in un intervallo di tempo di creazione specificato da tabelle specifiche

Spostare tutti gli extent in un intervallo di tempo di creazione specificato da tabelle specifiche (MyTable1, MyTable2) alla tabella MyOtherTable:

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

Spostare tutti gli extent con impostare il nuovo tempo di inserimento

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

Output di esempio

OriginalExtentId ResultExtentId Dettagli
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