Delen via


ALTER STREAMING TABLE

Van toepassing op:vinkje als ja aan Databricks SQL

Hiermee kunt u een van de volgende acties uitvoeren:

  • Voeg een schema of trigger toe voor het vernieuwen van een bestaande streamingtabel.
  • Een bestaand vernieuwingsschema of een bestaande trigger voor een streamingtabel wijzigen.
  • Verwijder het vernieuwingsschema of de trigger voor een streamingtabel. Als er geen planning of trigger is, moet het object handmatig worden vernieuwd om de meest recente gegevens weer te geven.

Syntaxis

ALTER STREAMING TABLE table_name
  {
    { ADD | ALTER } schedule
    DROP SCHEDULE |
    ALTER 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 ] }

Parameterwaarden

  • table_name

    De naam van de streamingtabel waarvan de definitie moet worden gewijzigd. De naam mag geen tijdelijke specificatie bevatten.

  • planning

    Een of-instructie SCHEDULE aan de tabel toevoegen of wijzigenTRIGGER.

    • SCHEDULE [ REFRESH ] schedule_clause

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

        Als u een vernieuwing wilt plannen die periodiek plaatsvindt, gebruikt u EVERY syntaxis. Als de EVERY syntaxis is opgegeven, wordt de streamingtabel of gematerialiseerde weergave periodiek vernieuwd op het vastgestelde tijdsinterval aan de hand van de opgegeven waarde, zoals HOUR, HOURS, DAY, DAYS, WEEKof WEEKS. De volgende tabel bevat geaccepteerde gehele getallen voor number.

        Tijdeenheid Integerwaarde
        HOUR or HOURS 1 <= H <= 72
        DAY or DAYS 1 <= D <= 31
        WEEK or WEEKS 1 <= W <= 8

        Notitie

        De enkelvoudige en meervoudvormen van de opgenomen tijdseenheid zijn semantisch gelijkwaardig.

      • CRON cron_string [ AT TIME ZONE timezone_id ]

        Een vernieuwing plannen met behulp van een Quartz cron waarde. Geldige time_zone_values worden geaccepteerd. AT TIME ZONE LOCAL wordt niet ondersteund.

        Als AT TIME ZONE deze afwezig is, wordt de sessietijdzone gebruikt. Als AT TIME ZONE afwezig is en de sessietijdzone niet is ingesteld, wordt er een fout gegenereerd. SCHEDULE is semantisch gelijk aan SCHEDULE REFRESH.

    • TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]

      Belangrijk

      De TRIGGER ON UPDATE functie bevindt zich in de bètaversie.

      Hiermee stelt u in dat de tabel wordt vernieuwd wanneer een upstream-gegevensbron wordt bijgewerkt, maximaal één keer per minuut. Stel een waarde in om AT MOST EVERY minimaal een minimale tijd tussen vernieuwingen te vereisen.

      De upstream-gegevensbronnen moeten externe of beheerde Delta-tabellen zijn (inclusief gerealiseerde weergaven of streamingtabellen) of beheerde weergaven waarvan afhankelijkheden zijn beperkt tot ondersteunde tabeltypen.

      Door bestandsevenementen in te schakelen, kunnen triggers beter presteren en worden enkele van de limieten voor triggerupdates verhoogd.

      Dit trigger_interval is een INTERVAL-instructie die ten minste 1 minuut is.

      TRIGGER ON UPDATE heeft de volgende beperkingen

      • Niet meer dan 10 upstream-gegevensbronnen per streamingtabel met behulp van tabeltriggers.
      • Maximaal 50 streamingtabellen of gerealiseerde weergaven met behulp van tabeltriggers (door bestandsgebeurtenissen in upstream-gegevensbronnen in te schakelen, wordt deze limiet verwijderd).
      • Voor brongegevens in een externe Delta-tabel geldt een limiet van 10.000 rijen per wijzigingsset (het inschakelen van bestandsevenementen in upstream-gegevensbronnen verwijdert deze limiet).
      • De AT MOST EVERY component is standaard ingesteld op 1 minuut en mag niet kleiner zijn dan 1 minuut.
  • VERANDEREN COLUMN

    Belangrijk

    Deze functie bevindt zich in openbare preview-versie.

    Hiermee wijzigt u een eigenschap van een kolom.

  • SET ROW FILTER clausule

    Belangrijk

    Deze functie bevindt zich in openbare preview-versie.

    Hiermee voegt u een rijfilterfunctie toe aan de streamingtabel. Alle daaropvolgende query's naar de streamingtabel ontvangen een subset van de rijen waarin de functie evalueert naar een booleaanse TRUEwaarde. Dit kan handig zijn voor verfijnde toegangsbeheerdoeleinden, waarbij de functie de identiteit of groepslidmaatschappen van de aanroepende gebruiker kan inspecteren om te bepalen of bepaalde rijen moeten worden gefilterd.

  • DROP ROW FILTER

    Belangrijk

    Deze functie bevindt zich in openbare preview-versie.

    Verwijdert het rijfilter uit de streamingtabel, indien van toepassing. Toekomstige query's retourneren alle rijen uit de tabel zonder automatisch filteren.

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

    Belangrijk

    Deze functie bevindt zich in openbare preview-versie.

    Tags toepassen op de streamingtabel. U hebt APPLY TAG toestemming nodig om tags toe te voegen aan de streamingtabel.

    • tag_name

      Een letterlijke STRING. De tag_name moet uniek zijn binnen de streaming tabel of kolom.

    • tag_value

      Een letterlijke STRING.

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

    Belangrijk

    Deze functie bevindt zich in openbare preview-versie.

    Verwijder tags uit de streamingtabel. U moet gemachtigd zijn APPLY TAG om tags uit de streamingtabel te verwijderen.

    • tag_name

      Een letterlijke STRING. De tag_name moet uniek zijn binnen de streaming tabel of kolom.

Voorbeelden

-- 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;