Condividi tramite


ALTER STREAMING TABLE

Si applica a:segno di spunta sì Databricks SQL

Consente di eseguire una delle azioni seguenti:

  • Aggiungere una pianificazione o un trigger per aggiornare una tabella di streaming esistente.
  • Modificare una pianificazione o un trigger di aggiornamento esistente per una tabella di streaming.
  • Eliminare la pianificazione o il trigger di aggiornamento per una tabella di streaming. Se non è presente alcuna pianificazione o trigger, l'oggetto deve essere aggiornato manualmente per riflettere i dati più recenti.

Per aggiungere o modificare un commento in una tabella di streaming, 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 STREAMING TABLE table_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

  • table_name

    Nome della tabella di streaming di cui modificare la definizione. Il nome non deve includere una specifica temporale.

  • schedule

    Aggiungere o modificare un'istruzione SCHEDULE o TRIGGER nella tabella.

    Nota

    Non è possibile modificare la pianificazione di una tabella di streaming 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 dato 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 tabella 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 sorgenti di dati upstream per tabella di flusso dati quando si utilizza 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 un programma dalla tabella di streaming.

  • ALTER COLUMN clause

    Vedere clausola ALTERCOLUMN.

  • SET ROW FILTER clausola

    Importante

    Questa funzionalità è in Anteprima Pubblica.

    Aggiunge una funzione di filtro di riga alla tabella di streaming. Tutte le query successive alla tabella di streaming 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 tabella di streaming, se presente. Le query future restituiscono tutte le righe della tabella senza filtri automatici.

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

    Importante

    Questa funzionalità è in Anteprima Pubblica.

    Applicare tag alla tabella di streaming. È necessario disporre APPLY TAG dell'autorizzazione per aggiungere tag alla tabella di streaming.

    • tag_name

      Valore letterale STRING. Deve tag_name essere univoco all'interno della tabella di streaming.

    • tag_value

      Valore letterale STRING.

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

    Importante

    Questa funzionalità è in Anteprima Pubblica.

    Rimuovere i tag dalla tabella di streaming. È necessario disporre APPLY TAG dell'autorizzazione per rimuovere i tag dalla tabella di streaming.

    • tag_name

      Valore letterale STRING. Deve tag_name essere univoco all'interno della tabella di streaming.

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 streaming table whenever its upstream data gets updated.
> ALTER STREAMING TABLE my_st
    ADD TRIGGER ON UPDATE;

-- Alters the schedule to refresh the streaming table when its upstream data
-- gets updated, with no more than one update per hour.
> ALTER STREAMING TABLE my_st
    ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;

-- Alters the schedule to run every one hour.
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE EVERY 1 HOUR;

-- Alters the schedule to refresh the streaming table once a day
-- at midnight in Los Angeles
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Drops the schedule for a streaming table
> ALTER STREAMING TABLE my_st
  DROP SCHEDULE;

-- Adds a column comment
> ALTER STREAMING TABLE my_st
    ALTER COLUMN column_name COMMENT 'test'