Condividi tramite


ALTER MATERIALIZED VIEW

Si applica a:segno di spunta sì Databricks SQL

Modifica i metadati associati alla vista.

Consente di eseguire una delle azioni seguenti:

  • Aggiungere una pianificazione per aggiornare una vista materializzata esistente.
  • Modificare un programma di aggiornamento esistente per una vista materializzata.
  • Eliminare la pianificazione dell'aggiornamento per una vista materializzata. Se la pianificazione viene eliminata, l'oggetto deve essere aggiornato manualmente per riflettere i dati più recenti.

Per aggiungere o modificare un commento in una vista materializzata, usare COMMENT ON.

Nota

La modifica di un set di dati creato dalla pipeline in modi che contraddicono la definizione SQL può causare il ripristino di alcune modifiche. Vedi l'uso dei ALTER comandi con le pipeline dichiarative di Lakeflow Spark.

Sintassi

ALTER MATERIALIZED VIEW view_name
  {
    { ADD | ALTER } schedule |
    DROP SCHEDULE |
    ALTER COLUMN column_clause |
    SET ROW FILTER clause |
    DROP ROW FILTER |
    SET TAGS clause |
    UNSET TAGS clause }

  schedule
    { SCHEDULE [ REFRESH ] schedule_clause |
      TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ] }

  schedule_clause
    { EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
      CRON cron_string [ AT TIME ZONE timezone_id ] }

  column_clause
    column_identifier
    { COMMENT clause |
      SET MASK clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

Parametri

  • view_name

    Nome della vista materializzata per modificare la definizione di . Il nome non deve includere una specifica temporale.

  • schedule

    Aggiungere o modificare un'istruzione SCHEDULE o TRIGGER nella vista materializzata.

    Nota

    Non è possibile modificare la pianificazione di una vista materializzata creata con le pipeline dichiarative di Lakeflow Spark con questo comando. Usa l'editor della pipeline.

    • SCHEDULE [ REFRESH ] schedule_clause

      • EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS }

        Per pianificare un aggiornamento che si verifica periodicamente, usare la sintassi EVERY. Se viene specificata la sintassi EVERY, la tabella di streaming o la vista materializzata viene aggiornata periodicamente all'intervallo determinato dal valore indicato, ad esempio HOUR, HOURS, DAY, DAYS, WEEKo WEEKS. Nella tabella seguente sono elencati i valori integer accettati per number.

        unità di tempo Valore intero
        HOUR or HOURS 1 <= H <= 72
        DAY or DAYS 1 <= D <= 31
        WEEK or WEEKS 1 <= W <= 8

        Nota

        Le forme singolari e plurali dell'unità temporale inclusa sono semanticamente equivalenti.

      • CRON cron_string [ AT TIME ZONE timezone_id ]

        Per pianificare un aggiornamento utilizzando un valore cron . Vengono accettati time_zone_values validi. AT TIME ZONE LOCAL non è supportata.

        Se AT TIME ZONE è assente, viene usato il fuso orario della sessione. Se AT TIME ZONE è assente e il fuso orario della sessione non è impostato, viene generato un errore. SCHEDULE è semanticamente equivalente a SCHEDULE REFRESH.

    • TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]

      Importante

      La TRIGGER ON UPDATE funzionalità è in versione beta.

      Imposta la vista materializzata da aggiornare quando viene aggiornata un'origine dati upstream, al massimo una volta ogni minuto. Impostare un valore per per AT MOST EVERY per richiedere almeno un tempo minimo tra gli aggiornamenti.

      Le origini dati upstream devono essere tabelle Delta esterne o gestite (incluse viste materializzate o tabelle di streaming) o viste gestite le cui dipendenze sono limitate ai tipi di tabella supportati.

      L'abilitazione degli eventi di file può rendere i trigger più efficienti e aumenta alcuni dei limiti per gli aggiornamenti dei trigger.

      trigger_interval è un'istruzione INTERVAL di almeno 1 minuto.

      TRIGGER ON UPDATE presenta le limitazioni seguenti

      • Non più di 10 origini dati upstream per vista materializzata quando si usa TRIGGER ON UPDATE.
      • È possibile specificare un massimo di 1000 tabelle di streaming o viste materializzate con TRIGGER ON UPDATE.
      • Per impostazione predefinita, la AT MOST EVERY clausola è 1 minuto e non può essere inferiore a 1 minuto.
  • DROP SCHEDULE

    Rimuove una pianificazione dalla vista materializzata.

  • ALTER COLUMN clause

    Vedere clausola ALTERCOLUMN.

  • SET ROW FILTER clausola

    Importante

    Questa funzionalità è in Anteprima Pubblica.

    Aggiunge una funzione di filtro di riga alla vista materializzata. Tutte le query successive alla vista materializzata ricevono un subset delle righe in cui la funzione restituisce un valore booleano TRUE. Ciò può essere utile per scopi di controllo di accesso con granularità fine, in cui la funzione può esaminare l'identità o le appartenenze a gruppi dell'utente che richiama per decidere se filtrare determinate righe.

    I filtri di riga aggiunti dopo la creazione vengono propagati solo alle tabelle downstream dopo l'aggiornamento successivo. Per le pipeline continue, è necessario riavviare la pipeline.

  • DROP ROW FILTER

    Importante

    Questa funzionalità è in Anteprima Pubblica.

    Elimina il filtro di riga dalla vista materializzata, se presente. Le query future restituiranno tutte le righe dalla tabella senza alcun filtro automatico.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Importante

    Questa funzionalità è in Anteprima Pubblica.

    Applicare tag alla vista materializzata. È necessario disporre APPLY TAG dell'autorizzazione per aggiungere tag alla vista materializzata.

    • tag_name

      Valore letterale STRING. Il tag_name deve essere univoco all'interno della vista materializzata o della colonna.

    • tag_value

      Valore letterale STRING.

  • UNSET TAGS ( tag_name [, ...] )

    Importante

    Questa funzionalità è in Anteprima Pubblica.

    Rimuovere i tag dalla vista materializzata. È necessario disporre APPLY TAG dell'autorizzazione per rimuovere i tag dalla vista materializzata.

    • tag_name

      Valore letterale STRING. Il tag_name deve essere univoco all'interno della vista materializzata o della colonna.

Clausola ALTER COLUMN

Importante

Questa funzionalità è in Anteprima Pubblica.

Modifica una proprietà o la posizione di una colonna.

Sintassi

  ALTER COLUMN
    column_identifier
    { COMMENT comment |
      SET MASK mask_clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

Parametri

  • column_identifier

    Nome della colonna da modificare.

  • COMMENT comment

    Cambiare la descrizione della colonna column_name. comment deve essere un valore STRING letterale.

  • SET Clausola MASK

    Aggiunge una funzione di mascheratura delle colonne per rendere anonimi i dati sensibili. Tutte le query successive da tale colonna riceveranno il risultato della valutazione di tale funzione sulla colonna al posto del valore originale della colonna. Ciò può essere utile per scopi di controllo di accesso con granularità fine, in cui la funzione può esaminare l'identità o le appartenenze a gruppi dell'utente che richiama per decidere se revisionare il valore.

    Le maschere di colonna aggiunte dopo la creazione vengono propagate solo alle tabelle downstream dopo l'aggiornamento successivo. Per le pipeline continue, è necessario riavviare la pipeline.

  • DROP MASK

    Rimuove la maschera di colonna per questa colonna, se presente. Le future query su questa colonna otterranno i valori originali della colonna.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Applicare tag alla colonna. È necessario disporre APPLY TAG dell'autorizzazione per aggiungere tag alla colonna.

    • tag_name

      Valore letterale STRING. tag_name deve essere univoco all'interno della tabella o della colonna.

    • tag_value

      Valore letterale STRING.

  • UNSET TAGS ( tag_name [, ...] )

    Rimuovere i tag specificati dalla colonna. È necessario disporre APPLY TAG dell'autorizzazione per rimuovere i tag dalla colonna.

    • tag_name

      Valore letterale STRING. tag_name deve essere univoco all'interno della tabella o della colonna.

Esempi

-- Adds a schedule to refresh the materialized view whenever its upstream data gets updated.
> ALTER MATERIALIZED VIEW my_mv
    ADD TRIGGER ON UPDATE;

-- Alters the schedule to refresh the materialized view when its upstream data
-- gets updated, and make sure the update frequency is no more than 1 update
-- per hour.
> ALTER MATERIALIZED VIEW my_mv
    ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;

-- Alters the schedule to run every two hours for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE EVERY 2 HOURS;

-- Alters the schedule to refresh a materialized view once a day
-- at midnight in Los Angeles
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Drops the schedule for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    DROP SCHEDULE;

-- Adds a column comment
> ALTER MATERIALIZED VIEW my_mv
    ALTER COLUMN my_column_name COMMENT 'test'