REFRESH (MATERIALIZED VIEW vagy STREAMING TABLE)

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL

Streamelési táblázat vagy materializált nézet adatainak frissítése. Az adatok alapértelmezés szerint szinkron módon frissülnek. A frissítés állapotát a DESCRIBE EXTENDEDvégrehajtásával követheti nyomon.

Feljegyzés

A materializált nézeteken és streamelési táblákon végzett létrehozási és frissítési műveleteket kiszolgáló nélküli Lakeflow-folyamatok hajtják végre. A Katalóguskezelővel megtekintheti a felhasználói felületen található háttérfolyamatok részleteit. Lásd: Mi az a Katalóguskezelő?.

Feljegyzés

REFRESH MATERIALIZED VIEW a materializált metrikanézetekre is vonatkozik. Ezzel manuálisan frissítheti a metrikanézetet visszatűnő materializációkat. A metrikák nézeteit a Materialization (Anyagosítás) című témakörben tekinti meg.

Szintaxis

REFRESH { MATERIALIZED VIEW | [ STREAMING ] TABLE } table_name
  [ FULL ] [ WHERE predicate ] [ SYNC | ASYNC ]

A parancs FULLbármely részhalmazát WHEREmegadhatja, és SYNCASYNC ugyanabban a parancsban is megadható.

Paraméterek

  • table_name

    Azonosítja a frissítendő materializált nézetet vagy streamelési táblát. A név nem tartalmazhat időbeli specifikációt vagy beállításspecifikációt. Ha az objektum nem található, az Azure Databricks TABLE_OR_VIEW_NOT_FOUND hibát okoz.

  • TELE

    Teljes frissítést elvégezzen-e.

    • A materializált nézetek esetében a teljes frissítés feldolgozza a forrásban elérhető összes adatot.
    • Streamelési táblák esetén a teljes frissítés csonkolja a táblát, és a streamelési tábla legújabb definíciójával feldolgozza a forrásban elérhető összes adatot.

    Nem ajánlott teljes frissítéseket meghívni olyan forrásokra, amelyek nem őrzik meg az adatok teljes előzményeit, vagy rövid megőrzési időszakuk van (például Kafka), mivel a teljes frissítés csonkolja a meglévő adatokat. Előfordulhat, hogy nem tudja helyreállítani a régi adatokat, ha az adatok már nem érhetők el a forrásban.

  • WHERE állítmány

    Érvényes:jelölje be a záradékkal FLOW REPLACE WHERE létrehozott igen streamelési táblázatot

    Felülbírálja a folyamat predikátumát REPLACE WHERE ehhez az egyetlen frissítéshez. A frissítés csak a célnak megfelelő predicate sorokat törli, és újrafordítja őket a forrásból. A folyamat definiált predikátuma nem változik, és a következő frissítéskor újra alkalmazza, így a predikátum felülbírálása egyszeri művelet, amely nem módosítja a tábladefiníciót. Használja egyszeri visszatöltésekhez vagy javításokhoz. Az önálló streamelési táblák cserefolyamatait WHEREitt tekintheti meg.

    A WHERE záradék csak olyan streamelési táblán támogatott, amelynek a folyamata a következővel FLOW REPLACE WHERElett létrehozva: . WHERE Ha bármely más streamelési táblában vagy materializált nézetben adja meg, hibát ad vissza.

  • SYNC

    Szinkron frissítés végrehajtása. A parancs vár, míg létrejön a materializált nézet vagy streamelési tábla, és a kezdeti adatbetöltés befejeződik.

    Ez az alapértelmezett viselkedés.

  • ASZINKRON

    Az aszinkron frissítés végrehajtása, amely elindít egy háttérfeladatot a Lakeflow-folyamatokon. A parancs azonnal visszatér, még az adatbetöltés befejezése előtt, egy hivatkozással, amely a materializált nézetet vagy streamelési táblát támogató folyamatra mutat. A hivatkozásra kattintva megtekintheti a frissítés állapotát.

    Meg kell adnia ASYNC , hogy aszinkron frissítéseket szeretne-e végrehajtani. A művelet szinkron módon történik, ha nincs megadva kulcsszó.

Példák

-- Refreshes the materialized view to reflect the latest available data
> REFRESH MATERIALIZED VIEW catalog.schema.view_name;

-- Refreshes the streaming table to process the latest available data
-- The current catalog and schema will be used to qualify the table
> REFRESH STREAMING TABLE st_name;

-- Truncates the table and processes all data from scratch for the streaming table
> REFRESH STREAMING TABLE cat.db.st_name FULL;

-- Overrides the REPLACE WHERE predicate for a single asynchronous refresh.
-- Only rows matching id = 3 are recomputed. The flow's static predicate is unchanged.
> REFRESH STREAMING TABLE rep_st WHERE id = 3 ASYNC;