ALTER MATERIALIZED VIEW - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

ALTER MATERIALIZED VIEW

Modifica gli attributi di una vista materializzata.

Sintassi

ALTER MATERIALIZED VIEW mv_name { AUTO REFRESH { YES | NO } | ALTER DISTKEY column_name | ALTER DISTSTYLE ALL | ALTER DISTSTYLE EVEN | ALTER DISTSTYLE KEY DISTKEY column_name | ALTER DISTSTYLE AUTO | ALTER [COMPOUND] SORTKEY ( column_name [,...] ) | ALTER SORTKEY AUTO | ALTER SORTKEY NONE | ROW LEVEL SECURITY { ON | OFF } [ CONJUNCTION TYPE { AND | OR } ] [FOR DATASHARES] };

Parametri

mv_name

Il nome della vista materializzata da modificare.

AUTO REFRESH { YES | NO }

Una clausola che attiva o disattiva l'aggiornamento automatico di una vista materializzata. Per informazioni sull'aggiornamento automatico delle viste materializzate, consultare Aggiornamento di una vista materializzata.

ALTER DISTSTYLE ALL

Una clausola che modifica lo stile di distribuzione esistente di una relazione e lo imposta su ALL. Considera i seguenti aspetti:

  • ALTER DISTSTYLE, ALTER SORTKEY e VACUUM non possono essere eseguiti contemporaneamente per la stessa relazione.

    • Se VACUUM è attualmente in esecuzione, l'esecuzione di ALTER DISTSTYLE ALL restituisce un errore.

    • Se ALTER DISTSTYLE ALL è in esecuzione, il vacuum di background non viene avviato per una relazione.

  • Il comando ALTER DISTSTYLE ALL non è supportato per le relazioni con chiavi di ordinamento interlacciate e tabelle temporanee.

  • Se lo stile di distribuzione è stato precedentemente definito come AUTO, la tabella non è più un candidato per l’ottimizzazione automatica della tabella.

Per ulteriori informazioni su DISTSTYLE ALL, consulta CREATE MATERIALIZED VIEW.

ALTER DISTSTYLE EVEN

Una clausola che modifica lo stile di distribuzione esistente di una relazione e lo imposta su EVEN. Considera i seguenti aspetti:

  • ALTER DISTSYTLE, ALTER SORTKEY e VACUUM non possono essere eseguiti contemporaneamente per la stessa relazione.

    • Se VACUUM è attualmente in esecuzione, l'esecuzione di ALTER DISTSTYLE EVEN restituisce un errore.

    • Se ALTER DISTSTYLE EVEN è in esecuzione, il vacuum di background non viene avviato per una relazione.

  • Il comando ALTER DISTSTYLE EVEN non è supportato per le relazioni con chiavi di ordinamento interlacciate e tabelle temporanee.

  • Se lo stile di distribuzione è stato precedentemente definito come AUTO, la tabella non è più un candidato per l’ottimizzazione automatica della tabella.

Per ulteriori informazioni su DISTSTYLE EVEN, consulta CREATE MATERIALIZED VIEW.

ALTER DISTKEY column_name o ALTER DISTSTYLE KEY DISTKEY column_name

Una clausola che modifica la colonna utilizzata come chiave di distribuzione di una relazione. Considera i seguenti aspetti:

  • VACUUM e ALTER DISTKEY non possono essere eseguiti contemporaneamente per la stessa relazione.

    • Se VACUUM è già in esecuzione, ALTER DISTKEY restituisce un errore.

    • Se ALTER DISTKEY è in esecuzione, il vacuum di background non viene avviato per una relazione.

    • Se ALTER DISTKEY è in esecuzione, il vacuum in primo piano restituisce un errore.

  • Puoi eseguire solo un comando ALTER DISTKEY per una relazione alla volta.

  • Il comando ALTER DISTKEY non è supportato per le relazioni con chiavi di ordinamento interlacciate.

  • Se lo stile di distribuzione è stato precedentemente definito come AUTO, la tabella non è più un candidato per l’ottimizzazione automatica della tabella.

Quando si specifica DISTSTYLE KEY, i dati vengono distribuiti dai valori nella colonna DISTKEY. Per ulteriori informazioni su DISTSTYLE, consulta CREATE MATERIALIZED VIEW.

ALTER DISTSTYLE AUTO

Una clausola che modifica lo stile di distribuzione esistente di una relazione su AUTO.

Quando modifichi uno stile di distribuzione su AUTO, lo stile di distribuzione della relazione viene impostato come segue:

  • Una piccola relazione con DISTSTYLE ALL viene convertita in AUTO(ALL).

  • Una piccola relazione con DISTSTYLE EVEN viene convertita in AUTO(ALL).

  • Una piccola relazione con DISTSTYLE KEY viene convertita in AUTO(ALL).

  • Una relazione grande con DISTSTYLE ALL viene convertita in AUTO(EVEN).

  • Una relazione grande con DISTSTYLE EVEN viene convertita in AUTO(EVEN).

  • Una relazione grande con DISTSTYLE KEY viene convertita in AUTO(KEY) e DISTKEY viene conservato. In questo caso Amazon Redshift non apporta modifiche alla relazione.

Se Amazon Redshift determina che un nuovo stile o una nuova chiave di distribuzione migliorerà le prestazioni delle query, Amazon Redshift potrebbe modificare lo stile o la chiave di distribuzione della relazione in futuro. Ad esempio, Amazon Redshift potrebbe convertire una relazione con DISTSTYLE di AUTO(KEY) in AUTO(EVEN) o viceversa. Per ulteriori informazioni sul comportamento in caso di modifica delle chiavi di distribuzione, tra cui la ridistribuzione dei dati e i blocchi, consulta Suggerimenti di Amazon Redshift Advisor.

Per ulteriori informazioni su DISTSTYLE AUTO, consulta CREATE MATERIALIZED VIEW.

Per visualizzare lo stile di distribuzione di una relazione, esegui query sulla vista del catalogo di sistema SVV_TABLE_INFO. Per ulteriori informazioni, consulta SVV_TABLE_INFO. Per visualizzare i suggerimenti di Amazon Redshift Advisor per le relazioni, esegui query sulla vista del catalogo di sistema SVV_ALTER_TABLE_RECOMMENDATIONS. Per ulteriori informazioni, consulta SVV_ALTER_TABLE_RECOMMENDATIONS. Per visualizzare le azioni intraprese da Amazon Redshift, eseguire una query sulla vista del catalogo di sistema SVL_AUTO_WORKER_ACTION. Per ulteriori informazioni, consulta SVL_AUTO_WORKER_ACTION.

ALTER [COMPOUND] SORTKEY ( column_name [,...] )

Una clausola che modifica o aggiunge la chiave di ordinamento utilizzata per una relazione. ALTER SORTKEY non è supportato per le tabelle temporanee.

Quando si modifica una chiave di ordinamento, la codifica di compressione delle colonne nella chiave di ordinamento nuova o originale può cambiare. Se nessuna codifica è definita esplicitamente per la relazione, Amazon Redshift assegna automaticamente le codifiche di compressione come segue:

  • Le colonne definite come chiavi di ordinamento vengono assegnate alla compressione RAW.

  • Le colonne definite come tipi di dati BOOLEAN, REAL o DOUBLE PRECISION vengono assegnate alla compressione RAW.

  • Le colonne definite come SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIME, TIMETZ, TIMESTAMP o TIMESTAMPTZ sono assegnate alla compressione AZ64.

  • Le colonne definite come CHAR o VARCHAR sono assegnate alla compressione LZO.

Considera i seguenti aspetti:

  • Puoi definire un massimo di 400 colonne per una chiave di ordinamento per relazione.

  • È possibile modificare una chiave di ordinamento interlacciata in una chiave di ordinamento composta o nessuna chiave di ordinamento. È possibile modificare una chiave di ordinamento interlacciata in una chiave di ordinamento composta o nessuna chiave di ordinamento.

  • Se la chiave di ordinamento è stata precedentemente definita come AUTO, la relazione non è più un candidato per l’ottimizzazione automatica della tabella.

  • Amazon Redshift consiglia di utilizzare la codifica RAW (senza compressione) per le colonne definite come chiavi di ordinamento. Quando si modifica una colonna per sceglierla come chiave di ordinamento, la compressione della colonna viene modificata in compressione RAW (senza compressione). Ciò può aumentare la quantità di archiviazione richiesta dalla relazione. L’aumento delle dimensioni della relazione dipende dalla definizione specifica della relazione e dal contenuto della relazione. Per ulteriori informazioni sulla compressione, consulta Codifiche di compressione.

Quando i dati vengono caricati in una relazione, seguono l’ordine della chiave di ordinamento. Quando si modifica la chiave di ordinamento, Amazon Redshift riordina i dati. Per ulteriori informazioni su SORTKEY, consulta CREATE MATERIALIZED VIEW.

ALTER SORTKEY AUTO

Una clausola che modifica o aggiunge la chiave di ordinamento della relazione di destinazione ad AUTO. ALTER SORTKEY AUTO non è supportato per le tabelle temporanee.

Quando modifichi una chiave di ordinamento e la imposti su AUTO, Amazon Redshift conserva la chiave di ordinamento esistente della relazione.

Se Amazon Redshift determina che una nuova chiave di ordinamento migliorerà le prestazioni delle query, Amazon Redshift potrebbe modificare la chiave di ordinamento della relazione in futuro.

Per ulteriori informazioni su SORTKEY AUTO, consulta CREATE MATERIALIZED VIEW.

Per visualizzare la chiave di ordinamento di una relazione, esegui query sulla vista del catalogo di sistema SVV_TABLE_INFO. Per ulteriori informazioni, consulta SVV_TABLE_INFO. Per visualizzare i suggerimenti di Amazon Redshift Advisor per le relazioni, esegui query sulla vista del catalogo di sistema SVV_ALTER_TABLE_RECOMMENDATIONS. Per ulteriori informazioni, consulta SVV_ALTER_TABLE_RECOMMENDATIONS. Per visualizzare le azioni intraprese da Amazon Redshift, eseguire una query sulla vista del catalogo di sistema SVL_AUTO_WORKER_ACTION. Per ulteriori informazioni, consulta SVL_AUTO_WORKER_ACTION.

ALTER SORTKEY NONE

Una clausola che rimuove la chiave di ordinamento della tabella di relazione.

Se la chiave di ordinamento è stata precedentemente definita come AUTO, la relazione non è più un candidato per l’ottimizzazione automatica della tabella.

ROW LEVEL SECURITY { ON | OFF } [ CONJUNCTION TYPE { AND | OR } ] [ FOR DATASHARES ]

Una clausola che attiva o disattiva la sicurezza a livello di riga per una relazione.

Quando per una relazione è attivata la protezione a livello di riga, è possibile leggere solo le righe al livello di riga a cui la policy di sicurezza consente l'accesso. Quando non ci sono policy che consentono l'accesso alla relazione, non è possibile visualizzare alcuna riga dalla relazione. Solo gli utenti con privilegi avanzati e gli utenti o i ruoli che hanno il ruolo sys:secadmin possono impostare la clausola ROW LEVEL SECURITY. Per ulteriori informazioni, consulta Sicurezza a livello di riga.

  • [ CONJUNCTION TYPE { AND | OR } ]

    Una clausola che consente di scegliere il tipo di congiunzione della policy di sicurezza a livello di riga per una relazione. Quando a una relazione sono associate più policy di sicurezza a livello di riga, è possibile combinare le policy con la clausola AND oppure OR. Per impostazione predefinita, Amazon Redshift combina le policy RLS con la clausola AND. Gli utenti con privilegi avanzati, gli utenti o i ruoli che hanno il ruolo sys:secadmin possono utilizzare questa clausola per definire il tipo di combinazione della policy di sicurezza a livello di riga per una relazione. Per ulteriori informazioni, consulta Combinazione di più policy per utente.

  • FOR DATASHARES

    Una clausola che determina se è possibile accedere a una relazione protetta da RLS in un'unità di condivisione dati. Per impostazione predefinita, non è possibile accedere a una relazione protetta da RLS in un'unità di condivisione dati. Il comando ALTER MATERIALIZED VIEW ROW LEVEL SECURITY eseguito con questa clausola influisce solo sulla proprietà di accessibilità dell'unità di condivisione dati della relazione. La proprietà ROW LEVEL SECURITY non viene modificata.

    Se rendi accessibile una relazione protetta da RLS nelle unità di condivisione dati, la relazione non dispone di una sicurezza a livello di riga nel database con unità di condivisione dati sul lato consumer. La relazione mantiene la proprietà RLS sul lato producer.

Esempi

Nell'esempio seguente la vista materializzata tickets_mv viene abilitata perché possa essere aggiornata automaticamente.

ALTER MATERIALIZED VIEW tickets_mv AUTO REFRESH YES