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


Materializált tavai nézetek Spark SQL-referencia

Ebben a cikkben megismerheti a materializált tónézetek szintaxisát a Spark SQL használatával. A materializált tónézetekről további információt a materializált tónézetek áttekintésében talál.

Anyagiasított nézet tóra létrehozása

A tóházban egy materializált tónézet bármely táblából vagy egy másik materializált tónézetből meghatározható. Az alábbiakban a Materialized Lake View Spark SQL használatával történő deklarálásának szintaxisát mutatjuk be.

CREATE MATERIALIZED LAKE VIEW [IF NOT EXISTS][workspace.lakehouse.schema].MLV_Identifier 
[( 
    CONSTRAINT constraint_name1 CHECK (condition expression1)[ON MISMATCH DROP | FAIL],  
    CONSTRAINT constraint_name2 CHECK (condition expression2)[ON MISMATCH DROP | FAIL] 
)] 
[PARTITIONED BY (col1, col2, ... )] 
[COMMENT “description or comment”] 
[TBLPROPERTIES (“key1”=”val1”, “key2”=”val2”, ... )] 
AS select_statement 

Argumentumok

Paraméter Leírás
MLV_Identifier Az anyaggá vált tókilátás neve.
KÉNYSZER Az adatminőségi korlátozás meghatározására vonatkozó kulcsszó, amelyet egy felhasználó által megadott név követ. A korlátozás a materializált tónézet szintjén érvényes.
ELLENŐRIZ A meghatározott oszlopértékek alapján definiált feltétel kényszerítésére használható. Kötelező használni a kényszer meghatározásakor.
ELTÉRÉS ESETÉN Adja meg az adott korlátozás megsértése esetén végrehajtandó műveletet. A lehetséges műveletek a DROP és a FAIL. Alapértelmezés szerint a záradék nélkül a művelet SIKERTELEN.
PARTÍCIÓ RENDELKEZÉSRE ÁLLVA Partíciók létrehozása a megadott oszlop alapján.
TBLPROPERTIES A materializált tó nézet definíciójának címkézésére használt kulcs-érték párok listája.
MEGJEGYZÉS A tó látképének leírását tartalmazó kijelentés.
AS select_utalvány Lekérdezés az adatok materializált tónézetben való feltöltéséhez select utasítással.

Az alábbi példa egy "customers_enriched" nevű materializált nézet definícióját szemlélteti azáltal, hogy összekapcsolja az ügyfelek táblát a rendelések táblával.

CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customers_enriched AS 
SELECT 
   c.customerID, 
   c.customerName, 
   c.contact, 
   CASE  
      WHEN COUNT(o.orderID) OVER (PARTITION BY c.customerID) > 0 THEN TRUE  
      ELSE FALSE  
      END AS has_orders 
FROM bronze.customers c LEFT JOIN bronze.orders o 
ON c.customerID = o.customerID; 

Az alábbi példa egy "customers_enriched" nevű anyagiasított nézetet definiál, amely "város" oszlop szerint van particionálva.

CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customers_enriched 
COMMENT "This is a sample materialzied view" 
PARTITIONED BY (city)
SELECT 
     c.customerID, 
     c.customerName, 
     c.contact, 
     CASE  
        WHEN COUNT(o.orderID) OVER (PARTITION BY c.customerID) > 0 THEN TRUE  
        ELSE FALSE  
        END AS has_orders 
FROM bronze.customers c LEFT JOIN bronze.orders o 
ON c.customerID = o.customerID; 

A materializált tónézetek listájának lekérése

A tóházban található összes materializált tónézet listájának lekéréséhez használja a következő parancsot:

Szintaxis

SHOW MATERIALIZED LAKE VIEWS <IN/FROM> Schema_Name;

Példa

SHOW MATERIALIZED LAKE VIEWS IN silver;

Materializált tónézet CREATE utasításának lekérése

A materializált tónézetet létrehozó utasítás lekéréséhez használja az alábbi parancsot:

Szintaxis

SHOW CREATE MATERIALIZED LAKE VIEW MLV_Identifier;

Példa

SHOW CREATE MATERIALIZED LAKE VIEW customers_enriched;

Materializált tónézet frissítése

A materializált tónézet definíciójának frissítéséhez először törölni kell, majd újra létre kell hozni. Az alter utasítás csak materializált tónézet átnevezése esetén támogatott.

Szintaxis

ALTER MATERIALIZED LAKE VIEW MLV_Identifier RENAME TO MLV_Identifier_New;

Példa

ALTER MATERIALIZED LAKE VIEW customers_enriched RENAME TO customers_enriched_new;

Látványos tó nézet megszüntetése

A materializált tónézet elvethető a lakehouse objektumkezelő törlési lehetőségével vagy a jegyzetfüzetben az alábbi parancs végrehajtásával.

Szintaxis

DROP MATERIALIZED LAKE VIEW MLV_Identifier;

Példa

DROP MATERIALIZED LAKE VIEW customers_enriched;

Megjegyzés:

A materializált tónézet elvetése vagy átnevezése hatással van az életút nézetre és az ütemezett frissítésre. Győződjön meg arról, hogy frissíti a hivatkozást minden kapcsolódó materializált adatnézetben.

Jelenlegi korlátozások

  • A munkamenet szintjén beállított Spark-tulajdonságok nem lesznek alkalmazva az ütemezett vonalfrissítés során.
  • A materializált tónézet létrehozása delta időutazással nem támogatott.
  • A DML-utasítások nem támogatottak materializált tónézetekkel.
  • A CTAS felhasználó által definiált függvényei nem támogatottak.
  • Az ideiglenes nézetek nem használhatók materializált tónézetek definiálására.

Ismert problémák

  • Egy materializált tónézet létrehozása CTE-vel működik, de a későbbi frissítések sikertelenek lehetnek. Ilyen esetekben hozza létre újra a nézetet CTE használata nélkül.