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 Table Amministrazione 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 devono 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 visualizzazione materializzata non elabora i record negli extent spostati. Vedere altri dettagli nella pagina 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] extentsfromalltablesourceTableName DestinationTableName[ PropertyName=totablePropertyValue [,with( ...])]

Spostare i extent specificati in base all'ID:

.move[async] extentsfromtableSourceTableName DestinationTableName[PropertyName=totablePropertyValue [,with( ...])] (GUID [, ...])

Spostare i extent specificati dai risultati della query:

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

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria 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 da esso. Deve restituire un recordset con colonne denominate "ExtentId" e "TableName".

Proprietà supportate

Nome proprietà Type Obbligatoria 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 le estensioni create dopo questo momento.
extentCreatedOnTo datetime ✔️ Applicare su extent creati prima di questo momento.

Nota

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

Restituisce

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'estensione originale nella tabella di origine, spostata nella tabella di destinazione.
ResultExtentId string Identificatore univoco (GUID) per l'extent di 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 . show operations e recuperare i risultati di un'esecuzione riuscita con il comando dettagli operazione .show .

Esempio

Spostare tutti gli extent

Spostare tutti gli extent nella tabella MyTableMyOtherTable:

.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 agli ID extent) in un intervallo di tempo di creazione specificato dalla tabella alla tabella 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)

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 il tempo di inserimento impostato

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