Condividi tramite


.alter materialized-view

Si applica a: ✅Microsoft FabricAzure Esplora dati

La modifica della vista materializzata può essere utilizzata per modificare la query di una vista materializzata, mantenendo al tempo stesso i dati esistenti nella vista.

Avviso

Prestare particolare attenzione quando si modifica una vista materializzata. L'uso non corretto può causare la perdita di dati.

Autorizzazioni

Per eseguire questo comando, è necessario disporre almeno delle autorizzazioni di amministratore visualizzazione materializzate.

Sintassi

.altermaterialized-view [ with(PropertyName = PropertyValue,...)] Query MaterializedViewName SourceTableName{ on table }

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
PropertyName, PropertyValue string Elenco di proprietà sotto forma di coppie nome e valore, dall'elenco delle proprietà supportate.
MaterializedViewName string ✔️ Nome della vista materializzata.
SourceTableName string ✔️ Nome della tabella di origine in cui è definita la vista.
Query string ✔️ Definizione di query della vista materializzata.

Proprietà supportate

Nella clausola PropertyName = PropertyValue) sono supportate le with (proprietà seguenti. Tutte le proprietà sono facoltative.

Nome Tipo Descrizione
lookback timespan Valido solo per arg_max//arg_mintake_any le viste materializzate. Limita il periodo di tempo in cui sono previsti duplicati. Ad esempio, se viene specificato un lookback di 6 ore in una arg_max vista, la deduplicazione tra i record appena inseriti e quelli esistenti prenderà in considerazione solo i record inseriti fino a 6 ore fa.

Lookback è relativo a ingestion_time. La definizione del periodo di lookback in modo errato potrebbe causare duplicati nella vista materializzata. Ad esempio, se un record per una chiave specifica viene inserito 10 ore dopo l'inserimento di un record per la stessa chiave e il lookback è impostato su 6 ore, tale chiave sarà duplicata nella visualizzazione. Il periodo di ricerca viene applicato sia durante il tempo di materializzazione che il tempo di query.
autoUpdateSchema bool Indica se aggiornare automaticamente la vista in base alle modifiche apportate alla tabella di origine. Il valore predefinito è false. Questa opzione è valida solo per le viste di tipo arg_max(Timestamp, *)//arg_min(Timestamp, *)take_any(*) (solo quando l'argomento della colonna è ).* Se questa opzione è impostata su true, le modifiche apportate alla tabella di origine verranno riflesse automaticamente nella vista materializzata.
dimensionTables array Argomento dinamico che include una matrice di tabelle delle dimensioni nella vista. Vedere Parametro di query.
cartella string Cartella della vista materializzata.
docString string Stringa che documenta la vista materializzata.

Valori restituiti

Schema di output:

Nome Tipo Descrizione
Name string Nome della vista materializzata.
SourceTable string Nome della tabella di origine in cui è definita la vista.
Query string Definizione di query della vista materializzata.
MaterializedTo datetime Timestamp massimo materializzato ingestion_time() nella tabella di origine. Per altre informazioni, vedere come funzionano le viste materializzate.
LastRun datetime Ultima esecuzione della materializzazione.
LastRunResult string Risultato dell'ultima esecuzione. Restituisce per le esecuzioni riuscite Completed ; in caso contrario Failed, .
IsHealthy bool true quando la visualizzazione è considerata integra, false in caso contrario. La vista è considerata integra se è stata materializzata correttamente fino all'ultima ora (MaterializedTo è maggiore di ago(1h)).
IsEnabled bool true quando la visualizzazione è abilitata (vedere Disabilitare o abilitare la visualizzazione materializzata).
Cartella string Cartella in cui viene creata la vista materializzata.
DocString string Descrizione assegnata alla vista materializzata.
AutoUpdateSchema bool Indica se la visualizzazione è abilitata per gli aggiornamenti automatici.
EffectiveDateTime datetime Data di validità della visualizzazione, determinata durante l'ora di creazione (vedere .create materialized-view).
Lookback timespan Intervallo di tempo che limita il periodo di tempo in cui sono previsti duplicati.

Esempi

Modificare la definizione di query di una vista materializzata

Il comando seguente modifica la definizione della query della visualizzazione materializzata MyView:

.alter materialized-view MyView on table MyTable
{
    MyTable | summarize arg_max(Column3, *) by Column1
}

Output

Nome SourceTable Query MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Cartella DocString AutoUpdateSchema EffectiveDateTime Lookback
MyView MyTable MyTable | summarize arg_max(Column3, *) per Column1 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z Completato true true false 2023-02-23T14:01:42.5172342Z

Casi d'uso

  • Aggiungere aggregazioni alla vista, ad esempio aggiungere avg aggregazioni a T | summarize count(), min(Value) by Id, modificando la query di visualizzazione in T | summarize count(), min(Value), avg(Value) by Id.
  • Operatori di modifica diversi dall'operatore summarize. Ad esempio, filtrare alcuni record modificando T | summarize arg_max(Timestamp, *) by User in T | where User != 'someone' | summarize arg_max(Timestamp, *) by User.
  • Modificare senza alcuna modifica alla query a causa di una modifica nella tabella di origine. Si supponga, ad esempio, che una visualizzazione di T | summarize arg_max(Timestamp, *) by Id, che non sia impostata su autoUpdateSchema (vedere .create materialized-view il comando ). Se una colonna viene aggiunta o rimossa dalla tabella di origine della vista, la vista viene disabilitata automaticamente. Eseguire il comando alter con la stessa query per modificare lo schema della vista materializzata in modo da allinearlo al nuovo schema della tabella. La vista deve comunque essere abilitata in modo esplicito dopo la modifica, usando il comando abilita vista materializzata.

Limiti

  • Modifiche non supportate:

    • Modifiche al gruppo di viste materializzate in base alle espressioni.
    • Modifica del tipo di colonna.
    • Ridenominazione delle colonne. Ad esempio, la modifica di una vista di T | summarize count() by Id in T | summarize Count=count() by Id elimina la colonna count_ e crea una nuova colonna Count, che inizialmente contiene solo valori Null.
  • Impatto sui dati esistenti:

    • La modifica della vista materializzata non ha alcun impatto sui dati esistenti.
    • L'aggiunta di filtri alla query si applica solo ai record appena inseriti e non modifica i record già materializzati.
      • Le nuove colonne ricevono valori Null per tutti i record esistenti fino a quando i record inseriti dopo il comando alter modificano i valori Null.
      • Ad esempio: una visualizzazione di T | summarize count() by bin(Timestamp, 1d) viene modificata in T | summarize count(), sum(Value) by bin(Timestamp, 1d). Per un particolare Timestamp=T per il quale i record sono già stati elaborati prima di modificare la vista, la sum colonna contiene dati parziali. Questa vista include solo i record elaborati dopo l'esecuzione della modifica.