Delen via


ALTER MATERIALIZED VIEW

Van toepassing op:aangevinkt als ja Databricks SQL

Hiermee worden metagegevens gewijzigd die aan de weergave zijn gekoppeld.

Hiermee kunt u een van de volgende acties uitvoeren:

  • Voeg een schema toe voor het vernieuwen van een bestaande gerealiseerde weergave.
  • Een bestaand updateschema voor een materiële weergave wijzigen.
  • Verwijder het vernieuwingsschema voor een gerealiseerde weergave. Als het schema wordt verwijderd, moet het object handmatig worden vernieuwd om de meest recente gegevens weer te geven.

Als u een opmerking aan een weergave wilt toevoegen of wijzigen, gebruikt u COMMENT ON.

Syntaxis

ALTER MATERIALIZED VIEW view_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

  • view_name

    De naam van de gerealiseerde weergave om de definitie van te wijzigen. De naam mag geen tijdelijke specificatie bevatten.

  • planning

    Voeg een SCHEDULE of instructie toe aan TRIGGER of wijzig deze in de gerealiseerde weergave.

    • 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 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 de gerealiseerde weergave in om te vernieuwen 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 gerealiseerde weergave 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 gerealiseerde weergave. Alle volgende query's naar de gerealiseerde weergave ontvangen een subset van de rijen waarin de functie tot booleaanse waarde TRUE evalueert. 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.

    Hiermee wordt het rijfilter verwijderd uit de gerealiseerde weergave, 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.

    Pas tags toe op de gerealiseerde weergave. U moet gemachtigd zijn APPLY TAG om tags toe te voegen aan de gerealiseerde weergave.

    • tag_name

      Een letterlijke STRING. Binnen de gematerialiseerde weergave of kolom moet de tag_name uniek zijn.

    • tag_value

      Een letterlijke STRING.

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

    Belangrijk

    Deze functie bevindt zich in openbare preview-versie.

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

    • tag_name

      Een letterlijke STRING. Binnen de gematerialiseerde weergave of kolom moet de tag_name uniek zijn.

Voorbeelden

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