Megosztás a következőn keresztül:


Materializált nézetek konfigurálása a Databricks SQL-ben

Ez a cikk bemutatja, hogyan konfigurálhat materializált nézeteket a Databricks SQL-ben, beleértve az eredmények hozzáférés-vezérlését is. A legtöbb konfiguráció elvégezhető, amikor a materializált nézetet a CREATE OR REPLACE MATERIALIZED VIEW utasítással hozza létre, vagy a létrehozás után a ALTER TABLE utasítással.

Materializált nézet leírása

Egy materializált nézet oszlopainak és adattípusainak lekéréséhez használja a DESCRIBE utasítást. A materializált nézet oszlopainak, adattípusainak és metaadatainak(például tulajdonosának, helyének, létrehozási idejének és frissítési állapotának) lekéréséhez használja a következőt DESCRIBE EXTENDED: Utasítás elküldéséhez DESCRIBE használja az SQL-szerkesztőt az Azure Databricks felhasználói felületén, a Databricks SQL CLI-ben vagy a Databricks SQL API-ban.

Részletes információk a materializált nézetekről a Catalog Explorerrel

Alternatív megoldásként a Katalóguskezelővel is megtekintheti a materializált nézet részleteit.

  1. Kattintson az Adatok ikonra.Katalógus az oldalsávon.
  2. A katalógusböngésző bal oldali katalógusfában nyissa meg a katalógust, és válassza ki azt a sémát, amelyben a materializált nézet található.
  3. Nyissa meg a Táblák elemet a kiválasztott séma alatt, és kattintson a materializált nézetre.

Innen a materializált nézet neve alatti fülek segítségével megtekintheti és szerkesztheti a materializált nézetre vonatkozó információkat, többek között a következőket:

  • Frissítés állapota és ütemezése
  • A folyamat részletei között megtekintheti a frissítések előzményeit, valamint az egyes frissítések részletes naplóit. A folyamat részleteinek megtekintéséhez kattintson a Frissítés részleteinek megtekintése elemre az Áttekintés lapon.
  • A táblázatséma
  • Mintaadatok (aktív számítást igényel)
  • Permissions
  • Életút, beleértve azokat a táblákat és folyamatokat, amelyektől ez a materializált nézet függ
  • Betekintés a használatba
  • A materializált nézethez létrehozott monitorok

A táblázat néhány tulajdonsága nem érhető el a Katalóguskezelőben. Ezekhez a tulajdonságokhoz vagy az információk programozott lekéréséhez használhatja a DESCRIBE EXTENDED parancsot.

Materializált nézet definíciójának frissítése

A materializált nézetet meghatározó lekérdezés annak definícióját adja meg. A materializált nézet definíciójának módosításához szerkessze a lekérdezést, vagy hozzon létre egy új CREATE VAGY REPLACE MATERIALIZED VIEW lekérdezést ugyanazzal a nézetnévvel, majd futtassa. A rendszer teljes frissítést hajt végre a materializált nézet frissítéséhez, a további frissítések pedig az új definíciót használják.

A materializált nézetekhez való hozzáférés szabályozása

A materializált nézetek a gazdag hozzáférés-vezérlést támogatják az adatmegosztás támogatásához, miközben elkerülik a potenciálisan privát adatok felfedését. A materializált nézet tulajdonosa vagy a MANAGE jogosultsággal rendelkező felhasználók jogosultságokat adhatnak SELECT más felhasználóknak. A materializált nézethez hozzáféréssel rendelkező SELECT felhasználóknak nem kell SELECT hozzáférni a materializált nézet által hivatkozott táblákhoz. Ez a hozzáférés-vezérlés lehetővé teszi az adatmegosztást a mögöttes adatokhoz való hozzáférés szabályozása közben.

A materializált nézet tulajdonosát is módosíthatja.

Jogosultságok megadása materializált nézethez

A materializált nézethez való hozzáférés biztosításához használja a következő utasítástGRANT:

GRANT <privilege_type> ON <mv_name> TO <principal>;

A privilege_type a következő lehet:

  • SELECT - a felhasználó képes SELECT a materializált nézetre.
  • REFRESH - a felhasználó képes REFRESH a materializált nézetre. A frissítések a tulajdonos engedélyeinek használatával futnak.

Az alábbi példa egy materializált nézetet hoz létre, és kiválasztási és frissítési jogosultságokat biztosít a felhasználóknak:

CREATE MATERIALIZED VIEW mv_name AS SELECT * FROM source_table;

-- Grant read-only access:
GRANT SELECT ON mv_name TO read_only_user;

-- Grand read and refresh access:
GRANT SELECT ON mv_name TO refresh_user;
GRANT REFRESH ON mv_name TO refresh_user;

Jogosultságok visszavonása materializált nézetből

A materializált nézethez való hozzáférés visszavonásához használja a következő utasítástREVOKE:

REVOKE privilege_type ON <mv_name> FROM principal;

Ha SELECT a forrástáblán lévő jogosultságokat visszavonják a materializált nézet tulajdonosától vagy bármely más felhasználótól, akinek MANAGE vagy SELECT jogosultságokat adtak a materializált nézetben, vagy ha a forrástáblát is elvetik, a materializált nézet tulajdonosa vagy a hozzáféréssel rendelkező felhasználó továbbra is képes marad lekérdezni a materializált nézetet. A következő viselkedés azonban előfordul:

  • A materializált nézet tulajdonosa vagy azok, akik elveszítették a hozzáférést egy materializált nézethez, már REFRESH nem használhatják a materializált nézetet, és a materializált nézet elavulttá válik.
  • Ha ütemezéssel automatizálja, a következő ütemezett feladat REFRESH meghiúsul vagy nem fut.

Az alábbi példa visszavonja a SELECT jogosultságot read_only_user-től/-től.

REVOKE SELECT ON mv_name FROM read_only_user;

Materializált nézet tulajdonosának módosítása

A Databricks SQL-ben definiált materializált nézet engedélyeivel rendelkező MANAGE felhasználók új tulajdonost állíthatnak be a Katalóguskezelőn keresztül. Az új tulajdonos lehet saját maga vagy egy szolgáltatásnév, amelyen a szolgáltatásnév felhasználói szerepkörrel rendelkezik.

  1. Az Azure Databricks-munkaterületen kattintson az Adatok ikonra.Katalógus a Katalóguskezelő megnyitásához.

  2. Válassza ki a frissíteni kívánt materializált nézetet.

  3. A jobb oldali oldalsávOn, az Erről a materializált nézetről csoportban keresse meg a Tulajdonos elemet, és kattintson a Ceruza ikonra.

    Megjegyzés:

    Ha megjelenik egy üzenet, amely arra utasítja, hogy frissítse a tulajdonost a folyamatbeállításokban a Futtatás másik felhasználóként opció módosításával, akkor a materializált nézet a Lakeflow Spark Deklaratív Folyamatokban van definiálva, nem pedig a Databricks SQL-ben. Az üzenet tartalmaz egy hivatkozást a folyamat beállításaira, ahol módosíthatja a futtatás felhasználóként lehetőséget .

  4. Válasszon új tulajdonost a materializált nézethez.

    A tulajdonosoknak automatikusan van MANAGE és SELECT jogosultságuk az általuk birtokolt materializált nézetekre. Ha egy szolgáltatásazonosítót állít be egy materializált nézet tulajdonosaként, amely az ön tulajdonában van, és nem rendelkezik explicit módon SELECT vagy MANAGE jogosultságokkal a materializált nézethez, akkor ez a módosítás azt eredményezné, hogy elveszíti a materializált nézethez való teljes hozzáférését. Ebben az esetben a rendszer arra kéri, hogy explicit módon adja meg ezeket a jogosultságokat.

    Válassza mind a MANAGE, mind a GrantSELECT jogosultságokat, hogy ezeket a mentés során megadja.

  5. Kattintson a Mentés gombra a tulajdonos módosításához.

A materializált nézet tulajdonosának adatai frissülnek. Az összes jövőbeli frissítés az új tulajdonos identitásával fut.

Amikor a tulajdonos elveszíti a forrástáblákra vonatkozó jogosultságokat

Ha módosítja a tulajdonost, és az új tulajdonos nem fér hozzá a forrástáblákhoz (vagy SELECT visszavonja a jogosultságokat az alapul szolgáló forrástáblákon), a felhasználók továbbra is lekérdezhetik a materializált nézetet. Azonban:

  • Nem tudják REFRESH a materializált nézetet.
  • A materializált nézet következő ütemezett frissítése sikertelen lesz.

A forrásadatokhoz való hozzáférés elvesztése megakadályozza a frissítéseket, de nem érvényteleníti azonnal a meglévő materializált nézet olvasását.

A futtatási csatorna beállítása

Az SQL Warehouse-okkal létrehozott materializált nézetek automatikusan frissülnek egy folyamat használatával. Csővezetékek alapértelmezés szerint a current csatornában használják a futtatókörnyezetet. A kiadási folyamatról további információt a Lakeflow Spark Deklaratív folyamatok kibocsátási megjegyzései és a kiadásfrissítési folyamat című témakörben talál.

A Databricks azt javasolja, hogy a current csatornát használja éles számítási feladatokhoz. Az új funkciók először megjelennek a preview csatornán. Az új funkciók teszteléséhez beállíthat egy csövezetet az előzetes megtekintési csatornára, a preview beállítása révén, mint táblatulajdonság. Ezt a tulajdonságot a tábla létrehozásakor vagy a tábla alter utasítással történő létrehozása után adhatja meg.

Az alábbi példakód bemutatja, hogyan állíthatja be a csatornát előzetes verzióra a CREATE utasításban:

CREATE OR REPLACE MATERIALIZED VIEW sales
TBLPROPERTIES ('pipelines.channel' = 'preview')
  AS ...

A csatorna létrehozás utáni módosításához használja a következő utasítást ALTER TABLE :

ALTER TABLE <table-name> SET TBLPROPERTIES ('pipelines.channel' = 'preview');