Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime
Fontos
Ez a funkció bétaverzióban érhető el. A munkaterület rendszergazdái az Előnézetek lapon szabályozhatják a funkcióhoz való hozzáférést. Lásd: Az Azure Databricks előzetes verziójának kezelése.
Frissítési szabályzatot ad hozzá a materializált nézethez, amely meghatározza, hogy mikor kell növekményessé tenni a frissítést. Az utasításra CREATE MATERIALIZED VIEW vonatkozik.
A növekményesítésről további információt a materializált nézetek növekményes frissítése című témakörben talál. Ellenőrizheti, hogy egy SQL-lekérdezés növekményes-e az EXPLAIN CREATE MATERIALIZED VIEW utasítással. Lásd a(z) EXPLAIN CREATE MATERIALIZED VIEW.
Szemantika
REFRESH POLICY refresh_policy
refresh_policy:
AUTO | INCREMENTAL | INCREMENTAL STRICT | FULL
Paraméterek
refresh_policy
A materializált nézet frissítési szabályzatát határozza meg. Ha nincs
REFRESH POLICYmegadva,AUTOaz alapértelmezett szabályzat.A frissítési szabályzat meghatározza, hogy a frissítés hogyan kezeli a materializált nézet növekményesítését.
AUTOA rendszer automatikusan kiválasztja a növekményes vagy teljes frissítést a költségmodell alapján.
Állam Magatartás A frissítéshez növekményes érték érhető el. A költségmodell használatával határozza meg, hogy melyik az olcsóbb, a növekményes vagy a teljes. A növekményes érték nem érhető el a frissítéshez. Teljes frissítést hajt végre. Létrehozásra vagy újra inicializálásra van szükség (például sémamódosításkor) Teljes frissítést hajt végre. INCREMENTALA rendszer lehetőség szerint növekményes frissítéseket használ. Ha
CREATEa lekérdezést nem lehet növekményessé tenni, a létrehozás sikertelen lesz.Állam Magatartás A frissítéshez növekményes érték érhető el. Növekményes frissítést hajt végre. A növekményes érték nem érhető el a frissítéshez. Teljes frissítést hajt végre. Létrehozásra vagy újra inicializálásra van szükség, de a lekérdezéshez növekményesítés is lehetséges. Teljes frissítést hajt végre. Létre kell hozni vagy újra kell inicializálni a lekérdezést, és a növekményesítés nem lehetséges. A művelet meghiúsul. INCREMENTAL STRICTA rendszer növekményes frissítéseket használ. Ha
CREATEa lekérdezést nem lehet növekményessé tenni, a létrehozás sikertelen lesz.Állam Magatartás A frissítéshez növekményes érték érhető el. Növekményes frissítést hajt végre. A növekményes érték nem érhető el a frissítéshez. A frissítés sikertelen. Létrehozásra vagy újra inicializálásra van szükség, de a lekérdezéshez növekményesítés is lehetséges. Teljes frissítést hajt végre. Létre kell hozni vagy újra kell inicializálni a lekérdezést, és a növekményesítés nem lehetséges. A művelet meghiúsul. FULLA rendszer mindig teljes frissítést használ.
Állam Magatartás A frissítéshez növekményes érték érhető el. Teljes frissítést hajt végre. A növekményes érték nem érhető el a frissítéshez. Teljes frissítést hajt végre. Létrehozásra vagy újra inicializálásra van szükség. Teljes frissítést hajt végre.
Viselkedés hiba esetén
Ha egy frissítés meghiúsul, mert nem felel meg a frissítési szabályzatnak (a következőhöz): REFRESH POLICY INCREMENTAL (STRICT)a rendszer egy hibaosztályt MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE ad vissza részletes információval, amely leírja, hogy miért nem lehet növekményesen növelni. Például:
-
OPERATOR_NOT_SUPPORTED: Egy operátor, például egy összetett illesztés megakadályozza a növekményesítést. -
EXPRESSION_NOT_DETERMINSTIC: A lekérdezés egy nem determinisztikus függvényt használ, példáulRAND.
A lekérdezések növekményessé tételének megértéséhez tekintse meg a materializált nézetek növekményes frissítését.
Annak ellenőrzéséhez, hogy egy SQL-lekérdezés növekményes-e, használja az utasítást EXPLAINCREATE MATERIALIZED VIEW . Lásd a(z) EXPLAIN CREATE MATERIALIZED VIEW.
Példák
-- Create a materialized view with an incremental policy
CREATE MATERIALIZED VIEW IF NOT EXISTS my_mv
REFRESH POLICY INCREMENTAL
AS SELECT a, sum(b) FROM my_catalog.example.my_table GROUP BY a;